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