pdf2

annuncio pubblicitario
10/5/2015
Regressione lineare semplice
Regressione lineare semplice
Strumenti quantitativi per la gestione
Emanuele Taufer
Regressione lineare (RL)
La regressione lineare per i dati Advertising
Analisi d’interesse
Regressione lineare semplice (un unico predittore X)
Previsione
Stima dei parametri con i minimi quadrati
Advertising data
Uso dei risultati
Retta stimata e residui
Valutare la precisione delle stime dei coefficienti
Proprietà di β^0 e β^1
Intervalli di confidenza
Verifica delle ipotesi
Valutare la bontà del modello
L’errore standard residuo (RSE)
La statistica di bontà di adattamento R2
Grafici R2
Esempio: Diamond
Alcune statistiche e plot
RLS con R e output
Retta stimata e IC
IC per la retta
Come ottenere un’intercetta più interpretabile
Interpolazione
Previsioni
Riferimenti bibliografici
Regressione lineare (RL)
La RL è uno degli approcci più semplici nel cd “supervised learning”. La RL assume che la
dipendenza di Y da X1 , X2 , … Xp sia lineare.
Nella pratica le “vere”" funzioni di regressione f non sono mai lineari! L’assunzione di linearità
va sempre intesa come un’approssimazione della verità.
Anche se può sembrare troppo semplicistico, il modello di RL è estremamente utile sia
concettualmente che praticamente.
è di facile interpretazione
è estremamente flessibile
molti metodi moderni sono estensioni della RL: capirla a fondo ci permette di capire a
fondo anche tecniche più sofisticate.
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
1/14
10/5/2015
Regressione lineare semplice
La regressione lineare per i dati Advertising
Si considerino i dati Advertising
Analisi d’interesse
C’è una relazione tra budget pubblicitario e vendite?
Qual è l’intensità della relazione tra budget pubblicitario vendite?
Quali media contribuiscono alle vendite?
Come si può prevedere con precisione le vendite future?
La relazione è lineare?
C’è sinergia (o interazione) tra canali pubblicitari?
Regressione lineare semplice (un unico
predittore X )
Assumiamo un modello
Y = β 0 + β 1 X + ε,
e β 1 sono due costanti sconosciute che rappresentano l’intercetta e la pendenza della
retta, noti anche come coefficienti o parametri.
β0
è il termine di errore (include tutto ciò di cui ci siamo dimenticati o non possiamo misurare)
altri fattori (pubblicità su giornali e radio, …)
variabilità intrinseca al fenomeno
nonlinearità
Ad esempio, X può rappresentare la pubblicità televisiva e Y può rappresentare le vendite.
Allora possiamo regredire vendite su TV usando il modello
ε
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
2/14
10/5/2015
Regressione lineare semplice
vendite ∼ β 0 + β 1 × T V .
Previsione
I valori di β 0 e β 1 vengono stimati usando i training data
Date delle stime β^0 e β^1 per i coefficenti del modello, possiamo prevedere le vendite future
con
^
^
^ = β
y
+ β 1 x,
0
^ indica una previsione di Y in base a X
dove y
= x
.
Il simbolo ^ denota un valore stimato.
Stima dei parametri con i minimi quadrati
^
Sia y
i
^
^
= β 0 + β 1 xi
^
ei = yi − y
i
la previsione per Y in base all’i ­esimo valore di X.
rappresenta il residuo i ­esimo.
Si definisca la somma dei quadrati dei residui (RSS) come
RS S = e
2
1
+ e
2
2
2
+ ⋯ + en ,
o equivalentemente
2
2
^
^
^
^
RS S = (y1 − β 0 − β 1 x 1 ) + ⋯ + (yn − β 0 − β 1 x n )
L’approccio dei minimi quadrati sceglie i valori β^0 e β^1 che minimizzano lo RSS. Le soluzioni
sono
^
β1 =
∑
n
i=1
(x i − x̄ )(yi − ȳ )
∑
n
i=1
(x i − x̄)
2
,
^
^
β 0 = ȳ − β 1 x̄
Advertising data
Dati sulle spese in pubblicità (in migliaia di $) e vendite (in migliaia di unità di prodotto) in 200 mercati
diversi (n = 200) . Alcuni dati:
X
TV
Radio
Newspaper
Sales
1
230.1
37.8
69.2
22.1
2
44.5
39.3
45.1
10.4
3
17.2
45.9
69.3
9.3
4
151.5
41.3
58.5
18.5
5
180.8
10.8
58.4
12.9
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
3/14
10/5/2015
Regressione lineare semplice
6
8.7
48.9
75.0
7.2
dai dati otteniamo
^
β 0 = 7.03,
^
β 1 = 0.0475
Uso dei risultati
La previsione con il modello di RL semplice è
^ = 7.03 + 0.0475x
y
Per una spesa pubblicitaria in TV pari a 20000$ ci si aspettano vendite per un totale di
^ = 7.03 + 0.0475 × (20) = 7.98
y
ossia 7980 unità del prodotto
Il coefficente β 0 ci indica la quantità venduta attesa in assenza di pubblicità TV
^ per un incremento di x . In pratica, ogni 1000$
Il coefficiente β^1 ci indica l’incremento in y
spesi in più in pubblicità TV, ci si aspetta un incremento di vendite di 47.5 unità del prodotto.
Retta stimata e residui
Valutare la precisione delle stime dei coefficienti
Il modello
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
4/14
10/5/2015
Regressione lineare semplice
Y = β 0 + β 1 X + ε,
idealmente rappresenta la popolazione che vorremmo analizzare, che include, ad esempio
anche dati su vendite e pubblicità in altri mercati e dati su vendite e pubblicità future.
Il modello stimato
^
^
^ = β
y
+ β 1 x,
0
è basato sui dati campionari che abbiamo a disposizione (i training data)
In pratica β^0 e β^1 sono degli stimatori (ottenuti con il metodo dei minimi quadrati) di β 0 e β 1 e
pertanto soggetti a variabilità campionaria
Rosso: retta popolazione
Blu: retta stimata
^ e β
^
Proprietà di β
0
1
^
β0
e β^1 sono stimatori corretti per β 0 e β 1 . Ossia non vi sono errori sistematici di sotto­stima
o sovra­stima.
Lo standard error ci dà una misura della loro variabilità campionaria
−
−−−−−−−−−−−
2
σ
,
^
S E(β 1 ) = √
∑
n
i=1
(x i − x̄)
2
−
−−−−−−−−−−−−−−−−−−−
2
1
x̄
2
^
]
S E(β 0 ) = √ σ [
+
n
2
n
∑
(x i − x̄)
i=1
dove σ2
= V ar(ε)
2
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
/(
− 2)
5/14
10/5/2015
Regressione lineare semplice
Tipicamente σ2 è sconosciuta e, nella RL semplice, viene stimata con RS S /(n − 2)
Lo SE calcolato utilizzando la stima di σ2 è un S E stimato che per correttezza, dovrebbe
^
essere indicato con S
E , di seguito e nel testo si usa sempre la simbologia S E per semplicità.
Intervalli di confidenza
Gli SE possono essere utilizzati per calcolare intervalli di confidenza. Nel caso di β 1 ,
^
^
β 1 ± 2S E(β 1 ),
fornisce un IC approssimativamente di livello (1 − α
= 0.95)
.
Per il data set Advertising l’intervallo di confidenza al 95% per β 1 è [0.042; 0.053] .
Verifica delle ipotesi
Gli errori standard possono anche essere utilizzati per eseguire test di ipotesi sui coefficienti. Il
test più comune consiste nel verificare il set di ipotesi
H0
: Non vi è alcuna relazione tra X e Y
HA
: Vi è relazione tra X e Y
Matematicamente, ciò corrisponde a testare
H0 : β 1 = 0
HA : β 1 ≠ 0
poiché se β 1
= 0
allora il modello si riduce a Y
= β0 + ε
, e quindi X non è associato con Y .
Per verificare l’ipotesi nulla, si calcola la statistica test t
t =
^
β1 − 0
^
S E(β 1 )
che ha distribuzione t con n − 2 gradi di libertà, sotto ipotesi che β 1
= 0
.
L’ouput di R, fornisce automaticamente probabilità di osservare un valore uguale o superiore |t| , ossia il p­value
Per il dataset Advertising:
## Warning: package 'xtable' was built under R version 3.2.2
EstimateStd. Errort valuePr(>|t|)
(Intercept) 7.0326 0.4578 15.360.0000
TV 0.0475 0.0027 17.670.0000
Nota: rifiuto H0 : β 1 = 0 , → esiste relazione tra X e Y
Valutare la bontà del modello
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
6/14
10/5/2015
Regressione lineare semplice
Respinta l’ipotesi nulla ( H0 : β 1 = 0 in favore dell’alternativa H0
quantificare la misura in cui il modello si adatta ai dati.
: β1 ≠ 0
, è naturale voler
La qualità di un modello di regressione lineare viene tipicamente valutata utilizzando due
grandezze collegate:
l’errore standard residuo (RSE)
R
2
L’errore standard residuo (RSE)
Si noti che nel modello y
errore ε .
= β0 + β1 x + ε
ad ogni osservazione è associato n termine di
Anche se si conoscesse la vera retta di regressione ( β 0 e β 1 conosciuti), non saremmo in
grado di prevedere perfettamente Y da X.
−
−−
−
−
−
L’RSE è una stima della deviazione standard di ε , √V ar(ε)
−
−−−−−−
−−−−−−−−−
−
−−−−
−−−−
n
1
1
2
^ )
∑ (yi − y
RS E = √
RS S = √
i
n − 2
n − 2
i=1
Nel caso dei dati Advertising, RS E = 3.26 . In altre parole, le vendite effettive in ogni mercato
si discostano in media dalla linea di regressione vera di circa 3.26 unità (in migliaia).
Che 3260 unità sia o meno un errore di previsione accettabile dipende dal contesto in esame.
Nel set di dati Advertising, il valore medio delle vendite su tutti i mercati è di circa 14000 unità,
e quindi l’errore percentuale è 3260/14000 = 23%
La statistica di bontà di adattamento R2
L’RSE fornisce una misura assoluta di adattamento del modello ai dati. Ma poiché è misurata in
unità di Y , non è sempre chiaro quale sia un buon RSE per i dati in esame.
La statistica R2 fornisce una misura di adattamento alternativa. Ha valore sempre compreso
tra 0 e 1, ed è indipendente dalla scala di Y .
R
2
T S S − RS S
=
RS S
= 1 −
RS S
dove T S S
= ∑
n
i=1
(yi − ȳ )
T SS
2
TSS misura la varianza totale nella variabile risposta Y ,
RSS misura la quantità di variabilità che rimane inspiegata dopo aver adattato la regressione.
Quindi, TSS­RSS misura la quantità di variabilità in Y che viene spiegata (o rimossa)
eseguendo la regressione e R2 misura la proporzione di variabilità in Y che può essere
spiegata con X.
Abbiamo dunque le seguenti regole interpretative
2
R = 1 : tutti i punti sono allineati lungo la retta
2
= 0
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
7/14
10/5/2015
Regressione lineare semplice
: non vi è alcuna relazione lineare (punti sparsi in modo casuale)
0 < R < 10 nei casi intermedi
2
R non dice nulla sull’intensità della relazione (valore di β 1 ).
R
2
= 0
2
Nel set di dati Advertising R2 = 0.61, e quindi poco meno di due terzi della variabilità delle
vendite si spiega con la pubblicità TV.
Grafici R2
## Warning: package 'ggplot2' was built under R version 3.2.2
Esempio: Diamond
Il dataset diamond dalla libreria UsingR contiene i prezzi di una serie di 48 diamanti (in dollari di
Singapore) ed il loro peso in carati.
Per caricare i dati è necessario installare prima il pacchetto UsingR . Con i comandi names e head è
possibile vedere, rispettivamente, i nomi delle variabili del dataset e le prime righe di dati
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
8/14
10/5/2015
Regressione lineare semplice
library(UsingR)
data(diamond)
names(diamond)
head(diamond)
[1] "carat" "price"
carat
price
0.17
355
0.16
328
0.17
350
0.18
325
0.25
642
0.16
342
Alcune statistiche e plot
summary(diamond)
carat price Min. :0.12 Min. : 223 1st Qu.:0.16 1st Qu.: 338 Median :0.18 Median : 428 Mean :0.20 Mean : 500 3rd Qu.:0.25 3rd Qu.: 657 Max. :0.35 Max. :1086 plot(diamond$price,diamond$carat,
xlab = "Massa (carati)", ylab = "Prezzo (SIN $)",
bg = "red", col = "black", cex = 1.5, pch = 21,
frame = FALSE)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
9/14
10/5/2015
Regressione lineare semplice
RLS con R e output
reg<‐lm(price ~ carat, data = diamond)
summary(reg)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
10/14
10/5/2015
Regressione lineare semplice
Call:
lm(formula = price ~ carat, data = diamond)
Residuals:
Min 1Q Median 3Q Max ‐85.16 ‐21.45 ‐0.87 18.97 79.37 Coefficients:
Estimate Std. Error t value Pr(>|t|) (Intercept) ‐259.6 17.3 ‐15.0 <2e‐16 ***
carat 3721.0 81.8 45.5 <2e‐16 ***
‐‐‐
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 32 on 46 degrees of freedom
Multiple R‐squared: 0.978, Adjusted R‐squared: 0.978 F‐statistic: 2.07e+03 on 1 and 46 DF, p‐value: <2e‐16
Il t ­test relativo a carat è significativo (p ­value <
hanno capacità predittiva sul prezzo
2e − 16 = 2 × (10)
−16
). Ossia i carati
In media ci si aspetta un aumento di prezzo pari a 3721.02 dollari per ogni incremento di un
carato del diamante
con 46 gradi di libertà. I 46 gradi di libertà corrispondono a n ­ parametri della
retta , in questo caso 2 (intercetta e pendenza). Da questo ad esempio ricaviamo che ci sono 48 dati nei training data
RS E = 31.84
R
2
= 0.9783
; l’adattamento dei punti alla retta è molto buono, come si vede anche dal
grafico.
R
2
­corretto e statistica F: si discuteranno nelle prossime lezioni
Retta stimata e IC
plot(diamond$carat, diamond$price,
xlab = "Massa (carati)",
ylab = "Prezzo (SIN $)",
bg = "red",
col = "black", cex = 1.1, pch = 21,frame = FALSE)
abline(reg, lwd = 2)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
11/14
10/5/2015
Regressione lineare semplice
IC per la retta
Per ottenere gli IC al 95% per i parametri della retta
confint(reg)
2.5 % 97.5 %
(Intercept) ‐294 ‐225
carat 3556 3886
Come ottenere un’intercetta più interpretabile
L’intercetta −259.63 è il prezzo atteso (dal modello) di un diamante di 0 carati!
L’intercetta negativa non ha interpretazione nel contesto in esame, poichè non esistono
diamanti a 0 carati
il valore ci permette comunque di fare una previsione corretta per diamanti in un range di carati
simile a quello presente nei training data.
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
12/14
10/5/2015
Regressione lineare semplice
se si desidera ottenere qualcosa interpretabile nel contesto in esame è possibile traslare l’asse y in una zona dove ci sono dati. Questo si può fare semplicemente calcolando la regressione
di y su x − x̄
reg2 <‐ lm(price ~ I(carat ‐ mean(carat)), data = diamond)
summary(reg2)
## ## Call:
## lm(formula = price ~ I(carat ‐ mean(carat)), data = diamond)
## ## Residuals:
## Min 1Q Median 3Q Max ## ‐85.16 ‐21.45 ‐0.87 18.97 79.37 ## ## Coefficients:
## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 500.1 4.6 108.8 <2e‐16 ***
## I(carat ‐ mean(carat)) 3721.0 81.8 45.5 <2e‐16 ***
## ‐‐‐
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## ## Residual standard error: 32 on 46 degrees of freedom
## Multiple R‐squared: 0.978, Adjusted R‐squared: 0.978 ## F‐statistic: 2.07e+03 on 1 and 46 DF, p‐value: <2e‐16
Così 500.1 dollari è il prezzo per un diamante (dei training data) di dimensione media (0.2042
carati).
Interpolazione
Per calcolare i valori interpolati dalla retta stimata per i training data, ci basta semplicemente (si
ricordi che abbiamo chiamato reg l’oggetto che contiene i risultati della procedura lm )
interp<‐predict(reg)
attach(diamond)
df<‐data.frame("Prezzo"=price, "Carati"=carat,"Prezzo modello"=interp)
head(df)
Prezzo Carati Prezzo.modello
1 355 0.17 373
2 328 0.16 336
3 350 0.17 373
4 325 0.18 410
5 642 0.25 671
6 342 0.16 336
Previsioni
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
13/14
10/5/2015
Regressione lineare semplice
Per fare le previsioni sulla base di un predittore x0 non presente nei training data è necessario
creare un data.frame che contiene i valori dei predittori
Proviamo a prevedere il prezzo per dei diamanti di 1, 2 e 3 carati
dfP<‐data.frame("carat"=c(1,2,3))
predict(reg,dfP)
1 2 3 3461 7182 10903 E’ possibile ottenere gli IC per il valor medio previsto con
predict(reg,dfP,interval="confidence")
fit lwr upr
1 3461 3330 3593
2 7182 6887 7478
3 10903 10443 11364
In questo caso gli intervalli ( lwr , upr ) ­ di livello 0.95 ­ forniscono un range di valori per il prezzo
medio, dato il valore del predittore carat
Se nell’intervallo vogliamo considerare anche la variabilità data dal termine di errore ε (ossia la parte
irriducibile) è necessario specificare l’opzione prediction
predict(reg,dfP,interval="prediction")
fit lwr upr
1 3461 3315 3608
2 7182 6880 7485
3 10903 10439 11368
Si noti che gli intervalli così ottenuti sono più ampi rispetto ai precedenti
Riferimenti bibliografici
An Introduction to Statistical Learning, with applications in R. (Springer, 2013)
Alcune delle figure in questa presentazione sono tratte dal testo con il permesso degli autori: G.
James, D. Witten, T. Hastie e R. Tibshirani
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html
14/14
Scarica