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 Verifica di ipotesi sul coefficiente angolare Sistema di ipotesi bilaterale: T = B1 β 1 tn 2 SB1 statistica test H0 : β1 = β 1 H1 : β1 β 1 ipotesi nulla 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 α Valore osservato della statistica test: toss = b1 β 1 determinazione campionaria di T sb1 P( T > t n 2,1 α/2 ) = α
0 0 Quindi, se decidiamo di ritenere falsa H0 quando toss > t n 2,1 α/2, rischiamo di rifiutare H0 quando essa è vera con probabilità α Livello di significatività osservato (p-value): f(t) ˆα = P( T > toss quando è vera H0) se ˆα > α, allora toss < t n 2,1 α/2 e si accetta H0; se ˆα < α, allora toss > t n 2,1 α/2 e si rifiuta H0. Si vedano le Figure 10 e 11 α oss 2 α oss 2 t n, 1 α 2 t oss 0 t oss t n, 1 α 2 t Figura 10: Regola di decisione: quando si accetta H0 Verifica di ipotesi sul coefficiente angolare Sistema di ipotesi unilaterale: f(t) H0 : β1 = β1 ( β1 ) ipotesi nulla α oss 2 α oss 2 H1 : β1 > β 1 ipotesi alternativa t oss t n, 1 α 2 0 t n, 1 α 2 t oss β 1 è un valore noto che fissiamo noi, sulla base delle nostre esigenze. t Figura 11: Regola di decisione: quando si rifiuta H0
0 0 T = B1 β 1 tn 2 statistica test SB1 Valore osservato della statistica test: toss = b1 β 1 determinazione campionaria di T sb1 P(T > tn 2,1 α) = α Quindi, se decidiamo di ritenere falsa H0 quando toss > tn 2,1 α, rischiamo di rifiutare H0 quando essa è vera con probabilità α Livello di significatività osservato (p-value): ˆα = P(T > toss quando è vera H0) se ˆα > α, allora toss < tn 2,1 α e si accetta H0; se ˆα < α, allora toss > tn 2,1 α e si rifiuta H0. Si vedano le Figure 12 e 13 f(t) f(t) α oss α oss 0 t oss t n, 1 α 0 t n, 1 α t oss t t Figura 12: Regola di decisione: quando si accetta H0 Figura 13: Regola di decisione: quando si rifiuta H0
0 Verifica di ipotesi sul coefficiente angolare Sistema di ipotesi unilaterale: T = B1 β 1 tn 2 SB1 statistica test H0 : β1 = β1 ( β1 ) ipotesi nulla H1 : β1 < β 1 ipotesi alternativa β1 è un valore noto che fissiamo noi, sulla base delle nostre esigenze. Valore osservato della statistica test: toss = b1 β 1 determinazione campionaria di T sb1 P(T < tn 2,α) = α Quindi, se decidiamo di ritenere falsa H0 quando toss < tn 2,α, rischiamo di rifiutare H0 quando essa è vera con probabilità α Livello di significatività osservato (p-value): f(t) ˆα = P(T < toss quando è vera H0) α oss se ˆα > α, allora toss > tn 2,α e si accetta H0; se ˆα < α, allora toss < tn 2,α e si rifiuta H0. Si vedano le Figure 14 e 15 t n, α t oss 0 t Figura 14: Regola di decisione: quando si accetta H0
0 Verifica di ipotesi sull intercetta f(t) α oss Si ripetono gli stessi ragionamenti che valgono per il coefficiente angolare. Sistema di ipotesi bilaterale: H0 : β0 = β 0 H1 : β0 β 0 ipotesi nulla ipotesi alternativa β0 è un valore noto che fissiamo noi, sulla base delle nostre esigenze. t oss t n, α 0 Figura 15: Regola di decisione: quando si rifiuta H0 t T = B0 β 0 tn 2 statistica test SB0 Valore osservato della statistica test: toss = b0 β 0 determinazione campionaria di T sb0 Sistema di ipotesi unilaterale: Al livello di significatività α, rifiutiamo H0 quando toss > t n 2,1 α/2 o, equivalentemente, quando ˆα < α, con ˆα = P( T > toss quando è vera H0) 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,1 α o, equivalentemente, quando ˆα < α, con ˆα = P(T > toss quando è vera H0)
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) Riprendiamo il seguente output: > summary(simulati1.lm) Call: lm(formula = y ~ x) Residuals: Min 1Q Median 3Q Max -26.6184-7.0684-0.3749 6.0160 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... Sulla colonna t value sono riportati i valori osservati delle statistiche test: Ti = Bi β i, i = 0, 1 SBi con βi = 0, ovvero toss,i = bi, i = 0, 1 sbi Sulla colonna Pr(> t ) sono riportati i valori del livello di significatività osservato per i sistemi di ipotesi H0 : βi = 0 H1 : βi 0, i = 0, 1 Supponiamo di voler saggiare, ad un livello di significatività α = 0.01, il seguente sistema di ipotesi: H0 : β1 0 H1 : βi > 0, i = 0, 1 Sappiamo che toss = 4.856. Il valore di t98,0.99 si ottene con il comando > qt(0.99,98). Abbiamo quindi che t98,0.99 = 2.365. Che conclusioni possiamo trarre? Che conclusioni si possono trarre?
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 la funzione qt() si ottiene che t0.95,98 = 1.661. A quali conclusioni siamo giunti? 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 5, α = 0.001; H0 : β0 1 contro H1 : β0 > 1, α = 0.05; 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) = βre(rm RF )
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) Possiamo quindi ipotizzare un modello del tipo: 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, Yi = β0 + β1xi + εi, εi N(0, σ 2 ) Come interpretereste i parametri del modello? Y = rendimento Microsoft indice S & P 500 (in %) 30 20 10 0 10 20 30 Stimiamo il modello che abbiamo definito in precedenza utilizzando solo 80 osservazioni (le rimanenti le utilizzeremo per valutare le capacità previsive del modello): > m0 = lm(y~x, subset=1:80) Vediamo l output del comando > summary(m0) 15 10 5 0 5 10 X = indice S & P 500 U.S.T. 30 gg. (in %) Figura 16: Diagramma di dispersione di Y contro X
> summary(m0) Call: lm(formula = Y ~ X, subset = 1:80) Residuals: Min 1Q Median 3Q Max -25.7565-4.5086 0.1093 4.8399 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 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 L indice di determinazione lineare (R 2 ) è pari a 0.2943: la capacità del modello di spiegare la variabilità di Y è limitata. Cerchiamo ora di capire se il comportamento dei residui possa darci qualche ulteriore informazione. 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. Disegnamo il grafico dei residui standardizzati con il comando > plot(st.res,ylab="residui standadizzati)) (Figura 17) I residui oscillano intorno allo 0 in modo casuale (non si riscontrano comportamenti regolari o sistematici) Le loro oscillazioni intorno allo 0 hanno ampiezza approssimativamente costante (la varianza sembra stabile). Residui standardizzati 3 2 1 0 1 2 3 0 20 40 60 80 Index Figura 17: Grafico dei residui standadizzati nel modello m0
Disegnamo ora (Figura 18) il diagramma di dispersione dei residui standardizzati contro la variabile esplicativa con il seguente comando: > plot(x[1:80],st.res,ylab="residui standardizzati", xlab="x") È 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 Residui standardizzati 3 2 1 0 1 2 3 15 10 5 0 5 10 X Figura 18: Diagramma di dispersione dei residui standardizzati contro X Histogram of st.res 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 > 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 Frequency 0 5 10 15 20 25 30 3 2 1 0 1 2 3 4 st.res Figura 19: Istogramma dei residui standardizzati
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 # osservazioni yp yp = = p n Esempio: i quartili (y0.25, y0.5 (mediana) e y0.75) 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) Se i punti giacciono approssimativamente sulla bisettrice del primo e del terzo quadrante, allora possiamo assumere che i residui standardizzati siano gaussiani Sample Quantiles 3 2 1 0 1 2 3 Normal Q Q Plot 2 1 0 1 2 Theoretical Quantiles Figura 20: Grafico quantile-quantile dei residui standardizzati 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 con il comando Yi = βxi + εi, εi N(0, σ 2 ) > m1 = lm(y~x-1,subset=1:80) Vediamo ora l output del comando > summary(m1)
> summary(m1) Call: lm(formula = Y ~ X - 1, subset = 1:80) Residuals: Min 1Q Median 3Q Max -23.578-2.718 1.938 6.671 34.159 Coefficients: Estimate Std. Error t value Pr(> t ) X 1.2538 0.2092 5.994 5.79e-08 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: 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])]) 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 Y = rendimento Microsoft indice S & P 500 (in %) 30 20 10 0 10 20 30 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) 15 10 5 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
Possiamo visualizzare le previsioni (Figura 22) con i seguente comandi: > 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") I cerchi rappresentano le osservazioni sulla variabile Y I triangoli rappresentano le previsioni puntuali Le curve rosse uniscono gli estremi degli intervalli di previsione valori osservati e previsti 30 20 10 0 10 20 81 82 83 84 85 86 87 Index Figura 22: Confronto tra previsioni e valori osservati della variabile risposta