Regressione lineare semplice Verifica di ipotesi sui coefficienti di regressione Per il momento supponiamo di muoverci nel contesto del modello gaussiano. Vogliamo capire se alcune nostre congetture sui coefficienti di regressione siano fondate o meno Poiché operiamo in condizioni di incertezza, vogliamo limitare, per quanto possibile, le probabilità prendere delle decisioni sbagliate Regressione lineare semplice Regressione lineare semplice Verifica di ipotesi sul coefficiente angolare Se H0 è vera, T = Sistema di ipotesi bilaterale: H0 : β1 = β1∗ ipotesi nulla H1 : β1 6= β1∗ ipotesi alternativa β1∗ è un valore noto che fissiamo noi, sulla base delle nostre esigenze. Fissiamo un valore α, 0 < α < 1, che chiameremo livello di significatività del test, e vogliamo che la probabilità di ritenere falsa H0 quando in realtà H0 è vera sia proprio pari ad α B1 − β1∗ ∼ tn−2 SB1 statistica test Valore osservato della statistica test: toss = b1 − β1∗ sB1 determinazione campionaria di T Se H0 è vera, P(|T | > |tn−2,1−α/2 |) = α Regressione lineare semplice Regressione lineare semplice Quindi, se decidiamo di ritenere falsa H0 quando f(t) |toss | > |tn−2,1−α/2 |, rischiamo di rifiutare H0 quando essa è vera con probabilità α Livello di significatività osservato (p-value): α̂ = P(|T | > |toss | quando è vera H0 ) αoss 2 αoss 2 0 se α̂ > α, allora |toss | < |tn−2,1−α/2 | e si accetta H0 ; se α̂ < α, allora |toss | > |tn−2,1−α/2 | e si rifiuta H0 . − tn,, 1− −α 2 − toss 0 toss − tn,, 1− −α 2 t Si vedano le Figure 10 e 11 Figura 10: Regola di decisione: quando si accetta H0 Regressione lineare semplice Regressione lineare semplice Verifica di ipotesi sul coefficiente angolare Sistema di ipotesi unilaterale: f(t) H0 : β1 = β1∗ αoss 2 0 αoss 2 − toss − tn,, 1− −α 2 0 − tn,, 1− −α 2 toss t Figura 11: Regola di decisione: quando si rifiuta H0 H1 : β1 > β1∗ (≤ β1∗ ) ipotesi nulla ipotesi alternativa β1∗ è un valore noto che fissiamo noi, sulla base delle nostre esigenze. Regressione lineare semplice Regressione lineare semplice Se H0 è vera, T = Quindi, se decidiamo di ritenere falsa H0 quando B1 − β1∗ ∼ tn−2 SB1 statistica test toss > tn−2,1−α , rischiamo di rifiutare H0 quando essa è vera con probabilità α Valore osservato della statistica test: toss b1 − β1∗ = sB1 Livello di significatività osservato (p-value): α̂ = P(T > toss quando è vera H0 ) determinazione campionaria di T se α̂ > α, allora toss < tn−2,1−α e si accetta H0 ; se α̂ < α, allora toss > tn−2,1−α e si rifiuta H0 . Se H0 è vera, P(T > tn−2,1−α ) = α Si vedano le Figure 12 e 13 f(t) Regressione lineare semplice f(t) Regressione lineare semplice αoss 0 0 αoss 0 toss tn,, 1− −α t Figura 12: Regola di decisione: quando si accetta H0 0 tn,, 1− −α toss t Figura 13: Regola di decisione: quando si rifiuta H0 Regressione lineare semplice Regressione lineare semplice Verifica di ipotesi sul coefficiente angolare Se H0 è vera, T = Sistema di ipotesi unilaterale: H0 : β1 = β1∗ H1 : β1 < β1∗ (≥ β1∗ ) ipotesi nulla statistica test Valore osservato della statistica test: ipotesi alternativa β1∗ è un valore noto che fissiamo noi, sulla base delle nostre esigenze. B1 − β1∗ ∼ tn−2 SB1 toss = b1 − β1∗ sB1 determinazione campionaria di T Se H0 è vera, P(T < tn−2,α ) = α Regressione lineare semplice Regressione lineare semplice Quindi, se decidiamo di ritenere falsa H0 quando f(t) toss < tn−2,α , rischiamo di rifiutare H0 quando essa è vera con probabilità α Livello di significatività osservato (p-value): α̂ = P(T < toss quando è vera H0 ) αoss 0 se α̂ > α, allora toss > tn−2,α e si accetta H0 ; se α̂ < α, allora toss < tn−2,α e si rifiuta H0 . tn,, α toss 0 t Si vedano le Figure 14 e 15 Figura 14: Regola di decisione: quando si accetta H0 Regressione lineare semplice Regressione lineare semplice Verifica di ipotesi sull’intercetta Si ripetono gli stessi ragionamenti che valgono per il coefficiente angolare. Sistema di ipotesi bilaterale: H0 : β0 = β0∗ ipotesi nulla f(t) H1 : β0 6= β0∗ ipotesi alternativa β0∗ è un valore noto che fissiamo noi, sulla base delle nostre esigenze. Se H0 è vera, 0 αoss toss tn,, α T = 0 B0 − β0∗ ∼ tn−2 SB0 statistica test t Figura 15: Regola di decisione: quando si rifiuta H0 Regressione lineare semplice Valore osservato della statistica test: b0 − β0∗ toss = determinazione campionaria di T sB0 Regressione lineare semplice Sistema di ipotesi unilaterale: H0 : β0 = β0∗ Al livello di significatività α, rifiutiamo H0 quando |toss | > |tn−2,1−α/2 | o, equivalentemente, quando α̂ < α, con α̂ = P(|T | > |toss | quando è vera H0 ) H1 : β0 > β0∗ (≤ β0∗ ) ipotesi nulla ipotesi alternativa β0∗ è un valore noto che fissiamo noi, sulla base delle nostre esigenze. Al livello di significatività α, rifiutiamo H0 quando toss > tn−2,1−α o, equivalentemente, quando α̂ < α, con α̂ = P(T > toss quando è vera H0 ) Regressione lineare semplice Regressione lineare semplice Riprendiamo il seguente output: Sistema di ipotesi unilaterale: H0 : β0 = β0∗ (≥ β0∗ ) ipotesi nulla H1 : β0 < β0∗ ipotesi alternativa β0∗ è un valore noto che fissiamo noi, sulla base delle nostre esigenze. Al livello di significatività α, rifiutiamo H0 quando toss < tn−2,α o, equivalentemente, quando α̂ < α, con α̂ = P(T < toss quando è vera H0 ) Regressione lineare semplice > summary(simulati1.lm) Call: lm(formula = y ~ x) Residuals: Min 1Q -26.6184 -7.0684 Median -0.3749 3Q 6.0160 Max 24.7992 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 6.6413 0.9923 6.693 1.37e-09 x 2.7205 0.5603 4.856 4.54e-06 ... Regressione lineare semplice Sulla colonna t value sono riportati i valori osservati delle statistiche test: Ti = Bi − βi∗ , SBi Supponiamo di voler saggiare, ad un livello di significatività α = 0.01, il seguente sistema di ipotesi: i = 0, 1 bi , i = 0, 1 sBi Sulla colonna Pr(>|t|) sono riportati i valori del livello di significatività osservato per i sistemi di ipotesi H0 : β1 ≤ 0 H1 : βi > 0, con βi∗ = 0, ovvero toss,i = H0 : βi = 0 H1 : βi 6= 0, Che conclusioni si possono trarre? i = 0, 1 Sappiamo che toss = 4.856. Il valore di t98,0.99 si ottene con il comando > qt(0.99,98). i = 0, 1 Abbiamo quindi che t98,0.99 = 2.365. Che conclusioni possiamo trarre? Regressione lineare semplice Regressione lineare semplice esercizio Supponiamo di voler saggiare, ad un livello di significativitá α = 0.05, il sistema di ipotesi: H0 : β1 ≤ 2 H1 : βi > 2, i = 0, 1 il valore toss si determina con il seguente comando: > toss = (coef(simulati.lm)[2] - 2)/0.5603 ottenendo toss = 1.832. Utilizzando i dati contenuti in simulati1.txt, saggiare i seguenti sistemi di ipotesi: H0 : β0 ≥ 0 contro H1 : β0 < 0, α = 0.003; H0 : β0 = 5 contro H1 : β0 6= 5, α = 0.001; H0 : β0 ≤ 1 contro H1 : β0 > 1, α = 0.05; Utilizzando la funzione qt() si ottiene che t0.95,98 = 1.661. A quali conclusioni siamo giunti? Regressione lineare semplice Regressione lineare semplice Due risultati importanti Capital Asset Pricing Model (CAPM) Gli intervalli di confidenza e i test per la verifica di ipotesi che abbiamo costruito sopra, funzionano anche quando il modello non è gaussiano, purché sussistano le assunzioni di fondo del modello di regressione lineare semplice e n sia elevato. Il metodo di previsone che abbiamo considerato richiede invece che il modello sia gaussiano. R è il rendimento di un particolare titolo azionario, al quale siamo interessati RM è il rendimento di mercato (per esempio un indice di borsa) RF è il rendimento di titoli a rischio nullo (esempio: buoni del tesoro semestrali) Il modello: E(R − RM) = βR E(RM − RF ) Regressione lineare semplice Regressione lineare semplice I dati Utilizziamo il file: venus.unive.it/stone/statcomp/capm.txt. Abbiamo 87 osservazioni mensili (Aprile 1995 - Giugno 2002) su: Y = scostamento tra rendimento azioni ordinarie Microsoft Corporation e variazione dell’indice Standard & Poor’s (in termini percentuali) X = scostamento tra variazione dell’indice Standard & Poor’s e il rendimento degli U.S. Treasury bills a 30 giorni (in termini percentuali) Carichiamo i dati: > capm=read.table("capm.txt",header=T) > attach(capm) Cerchiamo di capire se tra Y e X si possa assumere l’esistenza di una relazione lineare. Si veda la Figura 16, Possiamo quindi ipotizzare un modello del tipo: εi ∼ N(0, σ 2 ) Yi = β0 + β1 Xi + εi , Come interpretereste i parametri del modello? Regressione lineare semplice 30 ● ● ● ● 20 10 ● ● ● 0 ● ● −10 ● ● −20 Stimiamo il modello che abbiamo definito in precedenza utilizzando solo 80 osservazioni (le rimanenti le utilizzeremo per valutare le capacità previsive del modello): ● ● ● ● ● ●● ● ●● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● > summary(m0) ● −15 −10 > m0 = lm(Y~X, subset=1:80) Vediamo l’output del comando ● ● −30 Y = rendimento Microsoft − indice S & P 500 (in %) Regressione lineare semplice −5 0 5 10 X = indice S & P 500 − U.S.T. 30 gg. (in %) Figura 16: Diagramma di dispersione di Y contro X Regressione lineare semplice Regressione lineare semplice > summary(m0) L’indice di determinazione lineare (R 2 ) è pari a 0.2943: la capacità del modello di spiegare la variabilità di Y è limitata. Call: lm(formula = Y ~ X, subset = 1:80) Residuals: Min 1Q -25.7565 -4.5086 Cerchiamo ora di capire se il comportamento dei residui possa darci qualche ulteriore informazione. Median 0.1093 3Q 4.8399 Max 32.2359 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.904 1.052 1.811 0.074 X 1.192 0.209 5.704 2.01e-07 Definiamo il vettore dei residui standardizzati con il seguente comando > st.res=resid(m0)/9.28 Quando n è sufficientemente elevato i residui del modello tendono ad avere una varianza uguale a quella dei disturbi, quindi si standardizzano dividendoli per la radice quadrata della stima di σ 2 . Residual standard error: 9.28 on 78 degrees of freedom Multiple R-Squared: 0.2943, Adjusted R-squared: 0.2853 F-statistic: 32.53 on 1 and 78 DF, p-value: 2.011e-07 Regressione lineare semplice Regressione lineare semplice 3 ● Disegnamo il grafico dei residui standardizzati con il comando Le loro oscillazioni intorno allo 0 hanno ampiezza approssimativamente costante (la varianza sembra stabile). 1 0 ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ●● ● ● ● −1 I residui oscillano intorno allo 0 in modo casuale (non si riscontrano comportamenti regolari o sistematici) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● −2 (Figura 17) Residui standardizzati 2 ● ● ● ● ● ● ● ● −3 > plot(st.res,ylab="Residui standadizzati)) 0 20 40 60 80 Index Figura 17: Grafico dei residui standadizzati nel modello m0 3 2 ● ● ● ● 1 ● ● ● ● 0 Residui standardizzati È importante che non esista alcuna relazione tra i residui e la variabile esplicativa. Se ciò non accadesse, esisterebbe una relazione tra regressore e variabilità residua e quindi il modello non riuscirebbe a cogliere compiutamente le relazioni esistenti tra X e Y ● ● ● ● ● ● −1 > plot(X[1:80],st.res,ylab="Residui standardizzati", xlab="X") ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ●● ● ● ● ● ● ● ● ●● ● ● ●● ● ● ● ● ● ● ● ● ● −2 Disegnamo ora (Figura 18) il diagramma di dispersione dei residui standardizzati contro la variabile esplicativa con il seguente comando: Regressione lineare semplice ● ● ● −3 Regressione lineare semplice −15 −10 −5 0 5 10 X Figura 18: Diagramma di dispersione dei residui standardizzati contro X Regressione lineare semplice Regressione lineare semplice 25 20 Frequency 15 10 5 > hist(st.res) L’istogramma è ragionevolmente simmetrico intorno allo 0 e sembra riprodurre, in modo molto approssimativo, la funzione di densità di una normale standardizzata 0 Cerchiamo ora di capire se i disturbi si distribuiscano approssimativamente come variabili casuali normali (in altri termini, vogliamo capire se il modello sia gaussiano). Disegnamo l’istogramma dei residui standardizzati (Figura 19 con il comando 30 Histogram of st.res −3 −2 −1 0 1 2 3 4 st.res Figura 19: Istogramma dei residui standardizzati Regressione lineare semplice Regressione lineare semplice Quantile campionario di ordine p Supponiamo di disporre di n osservazioni sulla variabile quantitativa Y e di fissare un numero p, 0 < p < 1. Il numero yp tale che yp = Disegnamo il diagramma di dispersione dei quantili campionari dei residui standardizzati contro i quantili teorici, di ordine corrispondente, della normale standardizzata (Figura 20), con i comandi: > qqnorm(st.res) > qqline(st.res) # osservazioni ≤ yp =p n Se i punti giacciono approssimativamente sulla bisettrice del primo e del terzo quadrante, allora possiamo assumere che i residui standardizzati siano gaussiani Esempio: i quartili (y0.25 , y0.5 (mediana) e y0.75 ) Regressione lineare semplice Regressione lineare semplice Normal Q−Q Plot 3 ● ●● ● 1 0 −2 Se osserviamo l’output del comando > summary(m0), ci rendiamo conto che, ad un livello di significatività pari a 0.05, l’intercetta può essere posta uguale a 0. Perché? cosa significa questo? Stimiamo allora il modello Yi = βxi + εi , ● ● −3 ●● ●● ●●●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●●● ● ●● ● ●● −1 Sample Quantiles 2 ● εi ∼ N(0, σ 2 ) con il comando ● ● > m1 = lm(Y~X-1,subset=1:80) −2 −1 0 1 2 Theoretical Quantiles Figura 20: Grafico quantile-quantile dei residui standardizzati Vediamo ora l’output del comando > summary(m1) Regressione lineare semplice Regressione lineare semplice > summary(m1) Call: lm(formula = Y ~ X - 1, subset = 1:80) Residuals: Min 1Q -23.578 -2.718 Median 1.938 3Q 6.671 Ripetendo l’analisi grafica sui residui del nuovo modello mon si riscontrano particolari anomalie. Verificatelo. In Figura 21 la retta di regressione stimata è sovrapposta al diagramma di dispersione dei dati. Il grafico si costruisce con i seguenti comandi: Max 34.159 plot(X[1:80],Y[1:80],ylab = "Y = rendimento Microsoft - indice S & P 500 (in % "X = indice S & P 500 - U.S.T. 30 gg. (in %)") lines(sort(X[1:80]),fitted(m1)[order(X[1:80])]) Coefficients: Estimate Std. Error t value Pr(>|t|) X 1.2538 0.2092 5.994 5.79e-08 Residual standard error: 9.413 on 79 degrees of freedom Multiple R-Squared: 0.3126, Adjusted R-squared: 0.3039 F-statistic: 35.93 on 1 and 79 DF, p-value: 5.792e-08 Regressione lineare semplice 30 ● ● ● ● 20 ● ● ● ● ● ●● ● ●● ● ● ● ● ● ● ● ● ● ● ●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ● 0 10 ● ● −10 ● −20 ● ● ● ● ● ● ● ● ● ● ● −15 −10 −5 Vogliamo ora prevedere, al livello di fiducia 0.95, il valore assunto da Y basandoci solo sul valore di X misurato sulle unità statistiche numerate 81, . . . , 87. a tal fine utilizziamo il seguenti comando: > previsioni=predict(m1,capm[81:87,], interval="prediction",level=0.95) ● ● −30 Y = rendimento Microsoft − indice S & P 500 (in %) Regressione lineare semplice 0 5 10 X = indice S & P 500 − U.S.T. 30 gg. (in %) Figura 21: Diagramma di dispersione di Y contro X e retta di regressione stimata attraverso il secondo modello Regressione lineare semplice I cerchi rappresentano le osservazioni sulla variabile Y I triangoli rappresentano le previsioni puntuali Le curve rosse uniscono gli estremi degli intervalli di previsione 10 0 ● ● ● ● ● −20 valori osservati e previsti ● ● −30 > plot(81:87,Y[81:87],ylim=range(Y[81:87],previsioni), ylab="valori osservati e previsti", xlab = "Index") > points(81:87,previsioni[,1],pch=24,col="blue") > lines(81:87,previsioni[,2],col="red") > lines(81:87,previsioni[,3],col="red") 20 Possiamo visualizzare le previsioni (Figura 22) con i seguente comandi: −10 Regressione lineare semplice 81 82 83 84 85 86 87 Index Figura 22: Confronto tra previsioni e valori osservati della variabile risposta