Upload
vuongmien
View
225
Download
0
Embed Size (px)
Citation preview
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 1/14
Regressione lineare sempliceStrumenti quantitativi per la gestioneEmanuele Taufer
Regressione lineare (RL)La regressione lineare per i dati AdvertisingAnalisi d’interesseRegressione lineare semplice (un unico predittore )PrevisioneStima dei parametri con i minimi quadratiAdvertising dataUso dei risultatiRetta stimata e residuiValutare la precisione delle stime dei coefficientiProprietà di e Intervalli di confidenzaVerifica delle ipotesiValutare la bontà del modelloL’errore standard residuo (RSE)La statistica di bontà di adattamento Grafici Esempio: DiamondAlcune statistiche e plotRLS con R e outputRetta stimata e ICIC per la rettaCome ottenere un’intercetta più interpretabileInterpolazionePrevisioniRiferimenti bibliografici
Regressione lineare (RL)La RL è uno degli approcci più semplici nel cd “supervised learning”. La RL assume che ladipendenza di da sia lineare.
Nella pratica le “vere”" funzioni di regressione 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 siaconcettualmente che praticamente.
è di facile interpretazioneè estremamente flessibilemolti metodi moderni sono estensioni della RL: capirla a fondo ci permette di capire afondo anche tecniche più sofisticate.
X
β0 β1
R2
R2
Y , , …X1 X2 Xp
f
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 2/14
La regressione lineare per i dati AdvertisingSi considerino i dati Advertising
Analisi d’interesseC’è 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 unicopredittore )
Assumiamo un modello
e sono due costanti sconosciute che rappresentano l’intercetta e la pendenza dellaretta, noti anche come coefficienti o parametri.
è 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 fenomenononlinearità
Ad esempio, può rappresentare la pubblicità televisiva e può rappresentare le vendite.Allora possiamo regredire vendite su TV usando il modello
X
Y = + X + ε,β0 β1
β0 β1
ε
X Y
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 3/14
PrevisioneI valori di e vengono stimati usando i training data
Date delle stime e per i coefficenti del modello, possiamo prevedere le vendite futurecon
dove indica una previsione di in base a .
Il simbolo ^ denota un valore stimato.
Stima dei parametri con i minimi quadratiSia la previsione per in base all’ esimo valore di X.
rappresenta il residuo esimo.
Si definisca la somma dei quadrati dei residui (RSS) come
o equivalentemente
L’approccio dei minimi quadrati sceglie i valori e che minimizzano lo RSS. Le soluzionisono
Advertising dataDati sulle spese in pubblicità (in migliaia di $) e vendite (in migliaia di unità di prodotto) in 200 mercatidiversi . 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
vendite ∼ + × TV .β0 β1
β0 β1
β0 β1
= + x,y β0 β1
y Y X = x
= +y i β0 β1xi Y i
= −ei yi y i i
RSS = + + ⋯ + ,e21 e2
2 e2n
RSS = ( − − + ⋯ + ( − −y1 β0 β1x1)2 yn β0 β1xn)2
β0 β1
= ,β1( − )( − )∑n
i=1 xi x yi y
( −∑ni=1 xi x)2
= −β0 y β1x
(n = 200)
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 4/14
6 8.7 48.9 75.0 7.2
dai dati otteniamo
Uso dei risultatiLa previsione con il modello di RL semplice è
Per una spesa pubblicitaria in TV pari a 20000$ ci si aspettano vendite per un totale di
ossia unità del prodotto
Il coefficente ci indica la quantità venduta attesa in assenza di pubblicità TV
Il coefficiente ci indica l’incremento in per un incremento di . In pratica, ogni 1000$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 coefficientiIl modello
= 7.03, = 0.0475β0 β1
= 7.03 + 0.0475xy
= 7.03 + 0.0475 × (20) = 7.98y
7980
β0
β1 y x
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 5/14
idealmente rappresenta la popolazione che vorremmo analizzare, che include, ad esempioanche dati su vendite e pubblicità in altri mercati e dati su vendite e pubblicità future.
Il modello stimato
è basato sui dati campionari che abbiamo a disposizione (i training data)
In pratica e sono degli stimatori (ottenuti con il metodo dei minimi quadrati) di e epertanto soggetti a variabilità campionaria
Rosso: retta popolazione
Blu: retta stimata
Proprietà di e e sono stimatori corretti per e . Ossia non vi sono errori sistematici di sottostima
o sovrastima.
Lo standard error ci dà una misura della loro variabilità campionaria
dove
Y = + X + ε,β0 β1
= + x,y β0 β1
β0 β1 β0 β1
β0 β1β0 β1 β0 β1
SE( ) = ,β1σ2
( −∑ni=1 xi x)2
− −−−−−−−−−−−√
SE( ) =β0 [ + ]σ2 1n
x2
( −∑ni=1 xi x)2
− −−−−−−−−−−−−−−−−−−−√= V ar(ε)σ2
2 /( − 2)
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 6/14
Tipicamente è sconosciuta e, nella RL semplice, viene stimata con
Lo SE calcolato utilizzando la stima di è un stimato che per correttezza, dovrebbeessere indicato con , di seguito e nel testo si usa sempre la simbologia per semplicità.
Intervalli di confidenzaGli SE possono essere utilizzati per calcolare intervalli di confidenza. Nel caso di ,
fornisce un IC approssimativamente di livello .
Per il data set Advertising l’intervallo di confidenza al 95% per è .
Verifica delle ipotesiGli errori standard possono anche essere utilizzati per eseguire test di ipotesi sui coefficienti. Iltest più comune consiste nel verificare il set di ipotesi
: Non vi è alcuna relazione tra e
: Vi è relazione tra e
Matematicamente, ciò corrisponde a testare
poiché se allora il modello si riduce a , e quindi non è associato con .
Per verificare l’ipotesi nulla, si calcola la statistica test
che ha distribuzione con gradi di libertà, sotto ipotesi che .
L’ouput di R, fornisce automaticamente probabilità di osservare un valore uguale o superiore , ossia il pvalue
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.0000Nota: rifiuto , esiste relazione tra e
Valutare la bontà del modello
σ2 RSS/(n − 2)
σ2 SE
ES SE
β1
± 2SE( ),β1 β1
(1 − α = 0.95)
β1 [0.042; 0.053]
H0 X Y
HA X Y
: = 0H0 β1
: ≠ 0HA β1
= 0β1 Y = + εβ0 X Y
t
t =− 0β1
SE( )β1
t n − 2 = 0β1
|t|
: = 0H0 β1 → X Y
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 7/14
Respinta l’ipotesi nulla ( in favore dell’alternativa , è naturale volerquantificare la misura in cui il modello si adatta ai dati.
La qualità di un modello di regressione lineare viene tipicamente valutata utilizzando duegrandezze collegate:
l’errore standard residuo (RSE)
L’errore standard residuo (RSE)Si noti che nel modello ad ogni osservazione è associato n termine dierrore .
Anche se si conoscesse la vera retta di regressione ( e conosciuti), non saremmo ingrado di prevedere perfettamente da .
L’RSE è una stima della deviazione standard di ,
Nel caso dei dati Advertising, . In altre parole, le vendite effettive in ogni mercatosi discostano in media dalla linea di regressione vera di circa unità (in migliaia).
Che 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 unità,e quindi l’errore percentuale è
La statistica di bontà di adattamento L’RSE fornisce una misura assoluta di adattamento del modello ai dati. Ma poiché è misurata inunità di , non è sempre chiaro quale sia un buon RSE per i dati in esame.
La statistica fornisce una misura di adattamento alternativa. Ha valore sempre compresotra 0 e 1, ed è indipendente dalla scala di .
dove
TSS misura la varianza totale nella variabile risposta ,
RSS misura la quantità di variabilità che rimane inspiegata dopo aver adattato la regressione.
Quindi, TSSRSS misura la quantità di variabilità in che viene spiegata (o rimossa)eseguendo la regressione e misura la proporzione di variabilità in che può esserespiegata con .
Abbiamo dunque le seguenti regole interpretative : tutti i punti sono allineati lungo la retta
: = 0H0 β1 : ≠ 0H0 β1
R2
y = + x + εβ0 β1ε
β0 β1Y X
ε V ar(ε)− −−−−−√
RSE = =RSS1
n − 2
− −−−−−−−−√ ( −1
n − 2∑i=1
n
yi y i)2
− −−−−−−−−−−−−−−−√RSE = 3.26
3.26
3260
140003260/14000 = 23%
R2
Y
R2
Y
= = 1 −R2 TSS − RSS
RSS
RSS
TSS
TSS = ( −∑ni=1 yi y)2
Y
Y
R2 Y
X
= 1R2
= 02
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 8/14
: non vi è alcuna relazione lineare (punti sparsi in modo casuale) nei casi intermedi
non dice nulla sull’intensità della relazione (valore di ).
Nel set di dati Advertising , e quindi poco meno di due terzi della variabilità dellevendite si spiega con la pubblicità TV.
Grafici ## Warning: package 'ggplot2' was built under R version 3.2.2
Esempio: DiamondIl dataset diamond dalla libreria UsingR contiene i prezzi di una serie di diamanti (in dollari diSingapore) 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
= 0R2
0 < < 10R2
R2 β1
= 0.61R2
R2
48
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 9/14
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 plotsummary(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)
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 10/14
RLS con R e outputreg<‐lm(price ~ carat, data = diamond)summary(reg)
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 11/14
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 freedomMultiple R‐squared: 0.978, Adjusted R‐squared: 0.978 F‐statistic: 2.07e+03 on 1 and 46 DF, p‐value: <2e‐16
Il test relativo a carat è significativo ( value ). Ossia i caratihanno capacità predittiva sul prezzo
In media ci si aspetta un aumento di prezzo pari a 3721.02 dollari per ogni incremento di uncarato del diamante
con gradi di libertà. I gradi di libertà corrispondono a parametri dellaretta , in questo caso 2 (intercetta e pendenza). Da questo ad esempio ricaviamo che ci sono
dati nei training data
; l’adattamento dei punti alla retta è molto buono, come si vede anche dalgrafico.
corretto e statistica F: si discuteranno nelle prossime lezioni
Retta stimata e ICplot(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)
t p < 2e − 16 = 2 × (10)−16
RSE = 31.84 46 46 n
48
= 0.9783R2
R2
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 12/14
IC per la rettaPer ottenere gli IC al 95% per i parametri della retta
confint(reg)
2.5 % 97.5 %(Intercept) ‐294 ‐225carat 3556 3886
Come ottenere un’intercetta più interpretabileL’intercetta è il prezzo atteso (dal modello) di un diamante di carati!
L’intercetta negativa non ha interpretazione nel contesto in esame, poichè non esistonodiamanti a carati
il valore ci permette comunque di fare una previsione corretta per diamanti in un range di caratisimile a quello presente nei training data.
−259.63 0
0
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 13/14
se si desidera ottenere qualcosa interpretabile nel contesto in esame è possibile traslare l’asse in una zona dove ci sono dati. Questo si può fare semplicemente calcolando la regressione
di su
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ì dollari è il prezzo per un diamante (dei training data) di dimensione media (0.2042carati).
InterpolazionePer calcolare i valori interpolati dalla retta stimata per i training data, ci basta semplicemente (siricordi 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.modello1 355 0.17 3732 328 0.16 3363 350 0.17 3734 325 0.18 4105 642 0.25 6716 342 0.16 336
Previsioni
y
y x − x
500.1
10/5/2015 Regressione lineare semplice
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html 14/14
Per fare le previsioni sulla base di un predittore non presente nei training data è necessariocreare 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 upr1 3461 3330 35932 7182 6887 74783 10903 10443 11364
In questo caso gli intervalli ( lwr , upr ) di livello 0.95 forniscono un range di valori per il prezzomedio, dato il valore del predittore carat
Se nell’intervallo vogliamo considerare anche la variabilità data dal termine di errore (ossia la parteirriducibile) è necessario specificare l’opzione prediction
predict(reg,dfP,interval="prediction")
fit lwr upr1 3461 3315 36082 7182 6880 74853 10903 10439 11368
Si noti che gli intervalli così ottenuti sono più ampi rispetto ai precedenti
Riferimenti bibliograficiAn 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
x0
ε