Upload
vuongkhuong
View
213
Download
0
Embed Size (px)
Citation preview
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 1/33
Regressione lineare semplice
Strumenti quantitativi per la gestioneEmanuele Taufer
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 2/33
Regressione lineare (RL)
La RL è uno degli approcci più semplici nel cd “supervisedlearning”. La RL assume che la dipendenza di da
sia lineare.
Nella pratica le “vere”" funzioni di regressione non sonomai lineari! L’assunzione di linearità va sempre intesa comeun’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 permettedi capire a fondo anche tecniche più sofisticate.
Y
, , …X1 X2 Xp
f
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 3/33
La regressione lineare per i datiAdvertising
Si considerino i dati Advertising
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 4/33
Analisi d’interesse
C’è una relazione tra budget pubblicitario e vendite?
Qual è l’intensità della relazione tra budget pubblicitariovendite?
Quali media contribuiscono alle vendite?
Come si può prevedere con precisione le vendite future?
La relazione è lineare?
C’è sinergia (o interazione) tra canali pubblicitari?
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 5/33
Regressione lineare semplice (ununico predittore )
Assumiamo un modello
e sono due costanti sconosciute che rappresentanol’intercetta e la pendenza della retta, noti anche comecoefficienti o parametri.
è il termine di errore (include tutto ciò di cui ci siamodimenticati o non possiamo misurare)
altri fattori (pubblicità su giornali e radio, …)
variabilità intrinseca al fenomeno
nonlinearità
Ad esempio, può rappresentare la pubblicità televisiva e può rappresentare le vendite. Allora possiamo regredirevendite su TV usando il modello
X
Y = + X + ε,β0 β1
β0 β1
ε
X Y
vendite ∼ + × TV .β0 β1
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 6/33
Previsione
I valori di e vengono stimati usanod i training data
Date delle stime e per i coefficenti del modello,possiamo prevedere le vendite future con
dove indica una previsione di in base a .
Il simbolo ^ denota un valore stimato.
β0 β1
β0 β1
= + x,y β0 β1
y Y X = x
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 7/33
Stima dei parametri con i minimiquadrati
Sia la previsione per in base all’ -esimovalore 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 cheminimizzano lo RSS. Le soluzioni sono
= +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 β1 x
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 8/33
Advertising dataDati sulle spese in pubblicità (in migliaia di $) e vendite (in migliaia diunità di prodotto) in 200 mercati diversi . 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
6 8.7 48.9 75.0 7.2
dai dati otteniamo
(n = 200)
= 7.03, = 0.0475β0 β1
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 9/33
Uso dei risultati
La previsione con il modello di RL semplice è
Per una spesa pubblicitaria in TV pari a 20000$ ci si aspettanovendite per un totale di
ossia unità del prodotto
Il coefficente ci indica la quantità venduta attesa in assenzadi pubblicità TV
Il coefficiente ci indica l’incremento in per unincremento di . In pratica, ogni 1000$ spesi in più inpubblicità TV, ci si aspetta un incremento di vendite di 47.5unità del prodotto.
= 7.03 + 0.0475xy
= 7.03 + 0.0475 × (20) = 7.98y
7980
β0
β1 y
x
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 10/33
Retta stimata e residui
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 11/33
Valutare la precisione delle stimedei coefficienti
Il modello
idealmente rappresenta la popolazione che vorremmoanalizzare, che include, ad esempio anche dati su vendite epubblicità in altri mercati e dati su vendite e pubblicità future.
Il modello stimato
è basato sui dati campionari che abbiamo a disposizione (itraining data)
In pratica e sono degli stimatori (ottenuti con ilmetodo dei minimi quadrati) di e e pertanto soggetti avariabilità campionaria
Y = + X + ε,β0 β1
= + x,y β0 β1
β0 β1
β0 β1
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 12/33
Rosso: retta popolazione
Blu: retta stimata
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 13/33
Proprietà di e
e sono stimatori corretti per e . Ossia non visono errori sistematici di sotto-stima o sovra-stima.
Lo standard error ci dà una misura della loro variabilitàcampionaria
dove
Tipicamente è sconosciuta e, nella RL semplice, vienestimata con
Lo SE calcolato utilizzando la stima di è un stimatoche per correttezza, dovrebbe essere indicato con , diseguito e nel testo si usa sempre la simbologia persemplicità.
β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
RSS/(n − 2)
σ2 SE
ES
SE
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 14/33
Intervalli di confidenza
Gli SE possono essere utilizzati per calcolare intervalli diconfidenza. Nel caso di ,
fornisce un IC approssimativamente di livello .
Per il data set Advertising l’intervallo di confidenza al 95% per è .
β1
± 2SE( ),β1 β1
(1 − α = 0.95)
β1 [0.042; 0.053]
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 15/33
Verifica delle ipotesi
Gli errori standard possono anche essere utilizzati pereseguire test di ipotesi sui coefficienti. Il test più comuneconsiste 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 , equindi non è associato con .
H0 X Y
HA X Y
: = 0H0 β1
: ≠ 0HA β1
= 0β1 Y = + εβ0
X Y
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 16/33
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à diosservare un valore uguale o superiore , ossia il p-value
Per il dataset Advertising:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 7.0326 0.4578 15.36 0.0000
TV 0.0475 0.0027 17.67 0.0000
Nota: rifiuto , esiste relazione tra e
t
t =− 0β1
SE( )β1
t n − 2= 0β1
|t|
: = 0H0 β1 → X Y
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 17/33
Valutare la bontà del modello
Respinta l’ipotesi nulla ( in favore dell’alternativa , è naturale voler quantificare la misura in cui il
modello si adatta ai dati.
La qualità di un modello di regressione lineare viene tipicamentevalutata utilizzando due grandezze collegate:
l’errore standard residuo (RSE)
: = 0H0 β1
: ≠ 0H0 β1
R2
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 18/33
L’errore standard residuo (RSE)
Si noti che nel modello ad ogniosservazione è associato n termine di errore .
Anche se si conoscesse la vera retta di regressione ( e conosciuti), non saremmo in grado di prevedereperfettamente da .
L’RSE è una stima della deviazione standard di ,
Nel caso dei dati Advertising, . In altre parole, levendite effettive in ogni mercato si discostano in media dallalinea di regressione vera di circa unità (in migliaia).
Che unità sia o meno un errore di previsioneaccettabile dipende dal contesto in esame.
Nel set di dati Advertising, il valore medio delle vendite sututti i mercati è di circa unità, e quindi l’errorepercentuale è
y = + x + εβ0 β1
ε
β0 β1
Y 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%
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 19/33
La statistica di bontà diadattamento
L’RSE fornisce una misura assoluta di adattamento delmodello ai dati. Ma poiché è misurata in unità di , non èsempre chiaro quale sia un buon RSE per i dati in esame.
La statistica fornisce una misura di adattamentoalternativa. Ha valore sempre compreso tra 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 inspiegatadopo aver adattato la regressione.
R2
Y
R2
Y
= = 1 −R2 TSS − RSS
RSS
RSS
TSS
TSS = ( −∑ni=1 yi y)2
Y
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 20/33
Quindi, TSS-RSS misura la quantità di variabilità in cheviene spiegata (o rimosso) eseguendo la regressione e misura la proporzione di variabilità in che può esserespiegato con .
Abbiamo dunque le seguenti regole interpretative
: tutti i punti sono allineati lungo la retta
: 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 didue terzi della la variabilità delle vendite si spiega con lapubblicità TV.
Y
R2
Y
X
= 1R2
= 0R2
0 < < 10R2
R2 β1
= 0, 61R2
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 21/33
Grafici R2
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 22/33
Esempio: DiamondsIl dataset diamond dalla libreria UsingR contiene i prezzi di unaserie di 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, inomi delle variabili del dataset e le prime righe di dati
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
48
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 23/33
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)
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 24/33
RLS con R e outputreg<‐lm(price ~ carat, data = diamond)summary(reg)
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
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 25/33
Il -test relativo a carat è significativo ( -value $<2e-16=). Ossia i carati hanno capacità predittiva sul
prezzo
In media ci si aspetta un aumento di prezzo pari a 3721.02(SIN) dollari per ogni incremento di un carato del diamante
con gradi di libertà. I gradi di libertà nelleregressione corrsipondono a - parametri della retta, inquesto caso 2 (intercetta e pendenza). Da questo ad esempioricaviamo che ci sono dati nei training* data
; l’adattamento dei punti alla retta è moltobuono, come si vede anche dal grafico.
-corretto e statistica F: si discuteranno nelle prossimelezioni
t p
2 × (10)−16
RSE = 31.84 46n
48
= 0.9783R2
R2
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 26/33
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)
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 27/33
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
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 28/33
Come ottenere un’intercetta piùinterpretabile
L’intercetta è il prezzo atteso (dal modello) di undiamante di carati!
L’intercetta negativa non ha interpretazione nel contesto inesame, poichè non esistono diamanti a carati
il valore ci permette comunque di fare una previsionecorretta per diamanti in un range di carati simile a quellopresente nei training data.
se si desidera ottenere qualcosa interpretabile nel contestoin esame è possibile traslare l’asse in una zona dove ci sonodati. Questo si può fare semplicemente calcolando laregressione di su
−259.630
0
y
y x − x
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 29/33
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) didimensione media (0.2042 carati).
500.1
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 30/33
InterpolazionePer calcolare i valori interpolati dalla retta stimata per i training data,ci basta semplicemente (si ricordi che abbiamo chiamato regl’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
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 31/33
PrevisioniPer fare le previsioni sulla base di un predittore non presente neitraining data è necessario creare un data.frame che contiene ivalori 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 - fornisconoun range di valori per il prezzo medio, dato il valore del predittorecarat
Se nell’intervallo vogliamo considerare anche la variabilità data daltermine di errore (ossia la parte irriducibile) è necessariospecificare 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 aiprecedenti
x0
ε
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 32/33
3/3/2015 Regressione lineare semplice (1)
file:///C:/Users/emanuele.taufer/Dropbox/3%20SQG/Classes/3a_RLS.html#(1) 33/33
Riferimenti bibliograficiAn Introduction to Statistical Learning, with applications in R.(Springer, 2013)
Alcune delle figure in questa presentazione sono tratte dal testo conil permesso degli autori: G. James, D. Witten, T. Hastie e R.Tibshirani