33
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 gestione Emanuele Taufer

R ropbo lineare semplicetaufer/Slide-pdf/3a RLS.pdf · 2015-03-03 · Per il data set Advertising l’intervallo di confidenza al 95% per è . D D?e D? ... La qualità di un modello

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