Esercitazione Statistica Computazionale B Modelli di regressione lineare semplice Verifica di ipotesi - Analisi della varianza 3 maggio 2005 Esercizio 1 Consideriamo l esempio del libro di testo Annette Dobson (1990) An Introduction to Generalized Linear Models, pagina 9: Plant Weight Data. In questo esempio si considerano due gruppi di piante, tutti di numerosità uguale a 10. Piante appartenenti a gruppi diversi sono cresciute in condizioni diverse; piante appartenenti al medesimo gruppo si sono sviluppate nelle stesse condizioni di crescita. In particolare: - ctl indica il peso di piante cresciute in condizioni normali (gruppo 0); - trt indica il peso delle piante che hanno subito un trattamento. ctl=c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt=c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) Definiamo la variabile group: essa rappresenta una variabile factor, definita attraverso la funzione gl, e costituirà l insieme di variabili indicatrici nel modello di regressione. group=gl(2,10,20, labels=c("ctl","trt")) La variabile group, di tipo factor, ci dice che le prime 10 unità statistiche appartengono al gruppo 0, le seconde 10 al gruppo 1. Se si stampa a video la variabile group, con il comando print(group), 1
3.5 4.0 4.5 5.0 5.5 6.0 Ctl Trt Figura 1: Data frame piante si possono osservare tutti i valori che essa assume sul campione, in questo caso stringhe uguali alle etichette che vengono utilizzate. Oltre a questo sul monitor compare una scritta che in questo caso sarà: labels: Ctl Trt. Quest ultima ci ricorda che non si tratta di un semplice vettore di stringhe, ma di una variabile di tipo factor caratterizzata dalle etichette Ctl, Trt. Definiamo inoltre la variabile weight, la variabile risposta nel modello di regressione weight=c(ctl,trt) Attenzione: essa deve essere definita coerentemente con la costruzione della variabile factor, quindi i primi 10 elementi devono appartenere al gruppo di controllo, i secondi 10 al gruppo 1, individuato dall etichetta Trt nella variabile group. (Le etichette di una variabile factor possono anche essere costituite da numeri. Non bisogna però dimenticare che, anche in quel caso, essa sarà una variabile qualitativa e non quantitativa.) Definiamo un data frame, e diamo uno sguardo ai nostri dati, figura 1. plant=data.frame(weight,group) plot(group,weight,col="red",range=0) Il boxplot della variabile weight contro la variabile group costituisce un utile analisi preliminare atta a descrivere le differenze esistenti fra i diversi gruppi di unità statistiche. Il boxplot è basato su cinque valori che sintetizzano 2
3.5 4.0 4.5 5.0 5.5 6.0 Ctl Trt Figura 2: Data frame piante la distribuzione: il valore più basso, il primo quartile, la mediana, il terzo quartile e il valore più alto (li possiamo ricavare velocemente con il comando summary). La base e l altezza del rettangolo rappresentano il primo ed il terzo quartile, mentre gli estremi dei baffi rappresentano il valore più basso ed il valore più alto. Dall osservazione del boxplot sembrerebbe emergere una differenza tra i due gruppi, ma teniamo presente che abbiamo a disposizione soltanto 10 osservazioni per gruppo. (IMPORTANTE: R ordina le etichette di una variabile factor alfabeticamente, se esse sono stringhe di caratteri, o in senso crescente se esse sono numeri. Il gruppo di controllo sarà costituito da quelle unità statistiche su cui si osserva il valore più piccolo della variabile factor. In questo esempio si tratta delle unità statistiche su cui si osserva group = Ctl.) Definiamo il modello seguente: Y i = β 0 + β 1 x i + e i, dove x i = 0 se la i-esima unità statistica non è stata trattata, x i = 1 altrimenti. Il coefficiente di regressione β 0 rappresenta la media generale comune a tutte le unità, mentre il coefficiente β 1 rappresenta l effetto del trattamento sulla media del gruppo di piante che hanno subito un trattamento. Stimiamo il modello e con il comando points andiamo a sovrapporre i punti corrispondenti ai fitted-values al boxplot, figura 2. L effetto stimato del trattamento sul peso delle piante è pari a -0.37. points(group,lm.1$fitted.values) 3
Supponiamo di voler verificare l effetto del trattamento sul peso delle piante. A tale scopo effettuiamo una analisi della varianza. Consideriamo il sistema di ipotesi: { H0 : β 1 = β 1 H 1 : β 1 β 1 con β1 = 0, e definiamo la statistica T = b 1 β1. Sappiamo che se H s.e.(b 1 ) 0 è vera, T t n 2. Guardiamo il valore della statistica T fornito dal comando summary, ed il relativo p value. Avendo fissato un livello di significatività pari a 0.05, e avendo ottenuto un valore del p value pari a 0.249, siamo indotti ad accettare l ipotesi nulla. Quindi al livello di significatività 0.05, siamo indotti a ritenere che le condizioni di crescita non influenzino il peso delle piante. Allo stesso modo potevamo osservare il valore della statistica n i=1 F = (Ŷi Ȳi) 2 ˆσ 2 Sappiamo che sotto l ipotesi nulla F F 1,n 2. La statistica test F può essere espressa come rapporto tra la devianza spiegata D REG e la devianza residua D RES, divise per i rispettivi gradi di libertà. summary(lm.1) anova(lm.1) Call: lm(formula = weight ~ group) Residuals: Min 1Q Median 3Q Max -1.0710-0.4938 0.0685 0.2462 1.3690 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 5.0320 0.2202 22.850 9.55e-15 *** grouptrt -0.3710 0.3114-1.191 0.249 --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 Residual standard error: 0.6964 on 18 degrees of freedom Multiple R-Squared: 0.07308, Adjusted R-squared: 0.02158 F-statistic: 1.419 on 1 and 18 DF, p-value: 0.249 4
Normal Q Q Plot Sample Quantiles 1.0 0.5 0.0 0.5 1.0 2 1 0 1 2 Theoretical Quantiles Figura 3: Q-Q Plot residui Osserviamo che il valore della statistica F che si legge nella tabella dell analisi della varianza, coincide con quello fornito dal comando summary(lm.1). Analysis of Variance Table Response: weight Df Sum Sq Mean Sq F value Pr(>F) group 1 0.6882 0.6882 1.4191 0.249 Residuals 18 8.7292 0.4850 È importante tenere presente che il modello che abbiamo stimato si basa su delle ipotesi, ed è pertanto importante verificarne che i dati non esibiscano un comportamento palesemente difforme, come abbiamo visto in parte nella prima esercitazione. Ma in questo esercizio abbiamo effettuato un altra ipotesi sugli errori, ipotesi che ci ha consentito di effettuare la verifica di ipotesi sui coefficienti di regressione: abbiamo ipotizzato che gli errori abbiano distribuzione normale. Al fine di valutare la fondatezza di questa ipotesi possiamo rappresentare il qqplot: ad ogni osservazione associamo un punto avente come coordinate il quantile rispetto alla distribuzione di riferimento, e il quantile empirico. qqnorm(lm.1$residuals) qqline(lm.1$residuals) Il grafico suggerisce una violazione dell ipotesi di normalità. Tuttavia è importante osservare e fare attenzione al fatto che abbiamo poche osservazioni, non è detto che i residui siano gaussiani. 5
Hwt 6 8 10 12 14 16 18 20 2.0 2.5 3.0 3.5 Bwt Figura 4: Data frame gatti1 - modello con intercetta Esercizio 2 Il file gatti1.dat contiene le misurazioni del peso corporeo in chilogrammi (tale variabile è chiamata Bwt ) e del peso del cuore misurato in grammi (il nome di questa variabile è Hwt ) rilevate su 144 gatti. Stimare la regressione lineare di Hwt su Bwt e verificare che i coefficienti siano significativamente diversi da 0 ad un livello pari a 0.05. Commentare i risultati, con particolare riguardo alla bontà di adattamento del modello. Carichiamo il dataset gatti=read.table("gatti2.dat"), e andiamo a rappresentarlo graficamente. La rappresentazione grafica suggerisce una relazione lineare tra le variabili, pertanto proviamo ad adattare un modello di regressione lineare semplice: y = β 0 + β 1 x + e. La variabile risposta y è il peso del cuore, mentre la variabile x rappresenta il peso corporeo. Dopo aver stimato il modello (i dati e la retta di regressione sono rappresentati nella figura 4), andiamo a verificare la significatività dei coefficienti di regressione. Consideriamo il sistema di ipotesi: 6
{ H0 : β j = β j H 1 : β j β j con βj = 0, j = 0, 1. Definiamo la statistica T = b j βj s.e.(b j. Sappiamo che se ) H 0 è vera, T t n 2. Osserviamo quanto segue: - Coefficiente β 0. Il p-value è pari a 0.607: avendo fissato α = 0.05, accettiamo l ipotesi nulla. Pertanto concludiamo che, ad un livello di significatività pari a 0.05, il coefficiente di regressione β 0 non è significativamente diverso da 0. - Coefficiente β 1. Il p-value è < 2e 16: avendo fissato α = 0.05, rifiutiamo l ipotesi nulla. Pertanto concludiamo che, ad un livello di significatività pari a 0.05, il coefficiente di regressione β 1 è significativamente diverso da 0. Call: lm(formula = Hwt ~ Bwt) Residuals: Min 1Q Median 3Q Max -3.56937-0.96341-0.09212 1.04255 5.12382 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) -0.3567 0.6923-0.515 0.607 Bwt 4.0341 0.2503 16.119 <2e-16 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 Residual standard error: 1.452 on 142 degrees of freedom Multiple R-Squared: 0.6466, Adjusted R-squared: 0.6441 F-statistic: 259.8 on 1 and 142 DF, p-value: 0 La non significatività del coefficiente β 0 ci induce a proporre un modello senza intercetta: y = β 1 x 1 + e. Per stimare con R un modello senza intercetta è necessario aggiugere -1 quando si utilizza il comando lm: 7
Hwt 6 8 10 12 14 16 18 20 2.0 2.5 3.0 3.5 Bwt Figura 5: Data frame gatti 1 - modello senza intercetta lm2fit_lm(hwt~bwt-1) La retta di regressione stimata, e i dati, sono rappresentati nella figura 5. Al fine di valutare la bontà di adattamento del modello ai dati possiamo per prima cosa osservare il valore assunto dal coefficiente di determinazione lineare. Osserviamo che elimando l intercetta il il valore del coefficiente di determinazione lineare R 2 passa da 0.64 a 0.98. Call: lm(formula = Hwt ~ Bwt - 1) Residuals: Min 1Q Median 3Q Max -3.4563-0.9980-0.1003 1.0044 5.2623 Coefficients: Estimate Std. Error t value Pr(> t ) Bwt 3.90711 0.04364 89.53 <2e-16 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 Residual standard error: 1.449 on 143 degrees of freedom Multiple R-Squared: 0.9825, Adjusted R-squared: 0.9823 F-statistic: 8015 on 1 and 143 DF, p-value: 0 8
gatti1 lm2fit$residuals 4 2 0 2 4 0 20 40 60 80 100 120 140 Index lm2fit$residuals 4 2 0 2 4 8 10 12 14 lm2fit$fitted.values Figura 6: Residui e valori stimati contro residui Al fine di valutare la bontà del modello possiamo anche condurre una analisi dei residui. Osserviamo, vedi figura 6, che i residui sono compresi in una banda orizzontale. Non emerge pertanto un palese conflitto tra l evidenza empirica e le ipotesi effettuate (media nulla, incorrelazione, omoschedasticità, indipendenza con i regressori). L ipotesi di normalità non è contraddetta dal Q-Q plot, figura 7. 9
Normal Q Q Plot Sample Quantiles 2 0 2 4 2 1 0 1 2 Theoretical Quantiles Figura 7: Q-Q Plot residui 10
2.0 2.5 3.0 3.5 F M Figura 8: Data frame gatti2 Esercizio 3 Il file gatti2.dat contiene le misurazioni del peso corporeo in chilogrammi e l indicazione del sesso di 144 gatti. Utilizzando il modello di regressione lineare, verificare l ipotesi che il sesso sia influente sul peso dei gatti ad un livello di significatività uguale a 0.05. Qualora tale ipotesi fosse confermata, dire quale sia il valore della stima puntuale dell effetto sesso sul peso. Proponiamo un modello di regressione lineare semplice: y i = β 0 + β 1 x i + e i, e lo andiamo a stimare. Il boxplot e la stima dei coefficienti di regressione sono rappresentati nella figura 8. Call: lm(formula = Bwt ~ Sex) Residuals: Min 1Q Median 3Q Max -0.90000-0.25957-0.05957 0.30000 1.00000 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 2.35957 0.06051 38.997 < 2e-16 *** SexM 0.54043 0.07372 7.331 1.59e-11 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 11
Residual standard error: 0.4148 on 142 degrees of freedom Multiple R-Squared: 0.2745, Adjusted R-squared: 0.2694 F-statistic: 53.74 on 1 and 142 DF, p-value: 1.59e-011 Il valore della stima puntuale dell effetto sesso sul peso è pari a 0.54. Avendo cura di introdurre un opportuno sistema di ipotesi, come visto nell esercizio 1, è possibile osservare che il sesso ha influenza sul peso corporeo. La bontà di adattamento del modello ai dati può essere analizzata come di consueto attraverso l analisi dei residui. 12
Dati 1 y1 4 5 6 7 8 9 10 11 4 6 8 10 12 14 x1 Figura 9: Dati Dati1.dat e retta di regressione stimata Esercizio 4 Considerato un file dati esterno, dati1.dat, individuare e stimare un modello, verificare la significatività dei coefficienti di regressione, ed analizzare la bontà di adattamento del modello ai dati. Dopo aver osservato i dati, stimiamo un modello di regressione lineare semplice, figura 9. Cosa possiamo concludere sulla significatività dei coefficienti di regressione? Per rispondere a questa domanda dobbiamo introdurre un sistema di ipotesi, definire una statistica test, e confrontare i valori del p-value con il livello di significatività richiesto. Call: lm(formula = y1 ~ x1) Residuals: Min 1Q Median 3Q Max -1.92127-0.45577-0.04136 0.70941 1.83882 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 3.0001 1.1247 2.667 0.02573 * x1 0.5001 0.1179 4.241 0.00217 ** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 13
Dati 1 x1y1fit$residuals 5 0 5 5 10 15 20 Index x1y1fit$residuals 5 0 5 10 5 0 5 10 x1y1fit$fitted.values Figura 10: Residui e valori stimati contro residui Residual standard error: 1.237 on 9 degrees of freedom Multiple R-Squared: 0.6665, Adjusted R-squared: 0.6295 F-statistic: 17.99 on 1 and 9 DF, p-value: 0.002170 Ad un livello α = 0.05, entrambi i coefficienti risultano essere significativamente diversi da zero. Possiamo valutare la bontà di adattamento del modello ai dati osservando il coefficiente di determinazione lineare, che assume un valore pari a 0.66. Proponiamo inoltre un analisi dei residui come visto in precedenza. Osserviamo in particolare, figura 10-11, che i residui stimati non sembrano supportare l ipotesi di incorrelazione, l ipotesi di indipendenza con i regressori, di normalità. Ripetere l esercizio con riferimento al file dati dati2.dat. 14
Normal Q Q Plot Sample Quantiles 5 0 5 2 1 0 1 2 Theoretical Quantiles Figura 11: QQ-plot dati1 15