ANALISI DELLA VARIANZA Il data set coagulation contenuto nella libreria faraway contiene i tempi di coagulazione del sangue (misurato in secondi) di 24 animali sottoposti casualmente a quattro tipi di dieta. Dopo aver caricato la libreria, si carichi il data set con il comando: data(coagulation) coagulation coag diet 1 62 A 2 60 A...etc... 23 63 D 24 59 D Si digiti help(coagulation) per avere ulteriori informazioni sul dataset. Il primo passo per osservare se il tipo di dieta ha un effetto sul tempo medio di coagulazione del sangue consiste nel costruire un boxplot: boxplot(coag~diet,data=coagulation) o aggiungendo i colori boxplot(coag~diet,data=coagulation,col=c('red','green','blue','yellow')) 60 65 70 A B C D 23
L utilità del box-plot deriva dal fatto che una sola rappresentazione grafica si evidenziano gli aspetti principali di una distribuzione di frequenza. Il primo e terzo quartile costituiscono gli estremi della scatola del box plot la cui lunghezza è quindi rappresentata dalla differenza interquartile. La linea orizzontale all interno della scatola indica la mediana, per cui a seconda di quanto questa sarà posizionata centralmente si individueranno distribuzione più o meno simmetriche. Le due linee esterne fuori dalla scatola sono anche dette baffi e sono delimitati, rispettivamente, dai valori minimo e massimo della distribuzione. Un baffo eccessivamente lungo indica la presenza di valori anomali. Rappresentazione corner point Con il comando: g <- lm(coag ~ diet, coagulation) si stima un modello lineare in cui la variabile dipendente è il tempo di coagulazione del sangue, coag, dunque quantitativa, mentre il regressore è il fattore dieta, ovvero il carattere qualitativo diet a quattro modalità: la dieta di tipo A, B, C e D. Automaticamente la rappresentazione del modello lineare adottata è quella corner point, ovvero Y ij = µ + α i + ε ij con α 1 =0 Questo lo si può verificare attraverso il comando model.matrix che contente di visualizzare la cosiddetta matrice disegno: model.matrix(g) 1 1 0 0 0 2 1 0 0 0 3 1 0 0 0 4 1 0 0 0 5 1 1 0 0 6 1 1 0 0 7 1 1 0 0 8 1 1 0 0 9 1 1 0 0 10 1 1 0 0 11 1 0 1 0 12 1 0 1 0... Per valutare la significatività del modello lineare appena costruito si utilizza il comando: summary(g) lm(formula = coag ~ diet, data = coagulation) -5.000e+00-1.250e+00-2.498e-16 1.250e+00 5.000e+00 (Intercept) 6.100e+01 1.183e+00 51.554 < 2e-16 *** 24
dietb 5.000e+00 1.528e+00 3.273 0.003803 ** dietc 7.000e+00 1.528e+00 4.583 0.000181 *** dietd 2.991e-15 1.449e+00 2.06e-15 1.000000 Residual standard error: 2.366 on 20 degrees of freedom Multiple R-Squared: 0.6706, Adjusted R-squared: 0.6212 F-statistic: 13.57 on 3 and 20 DF, p-value: 4.658e-05 Andando ad interpretare le stime dei coefficienti se ne deduce che: - la dieta B produce un effetto significativo sul tempo medio di coagulazione del sangue rispetto alla dieta A (intercetta) - la dieta C produce un effetto significativo sul tempo medio di coagulazione del sangue rispetto alla dieta A (intercetta) - la dieta D non produce un effetto significativo rispetto alla dieta A. In che direzioni? Si può affermare che rispetto alla dieta A, la dieta B produce un incremento medio del tempo di coagulazione del sangue di 5 secondi, mentre la dieta C rispetto alla dieta A provoca un incremento medio del tempo di coagulazione maggiore e pari a 7 secondi. Scomposizione della devianza Il comando anova consente di visualizzare la scomposizione della devianza in tra ed entro, nonchè tutti i calcoli necessari per il calcolo della statistica test F: anova(g) Analysis of Variance Table Response: coag Df Sum Sq Mean Sq F value Pr(>F) diet 3 228.0 76.0 13.571 4.658e-05 *** Residuals 20 112.0 5.6 Rappresentazione a intercetta nulla Verifica della normalità distributiva Un metodo per verificare se la normalità distributiva della variabile risposta è valida è quello che fa riferimento all'uso delle funzioni qq. Tale ipotesi può essere investigata osservando il comportamento dei residui, poiché essi avranno la stessa forma distributiva della variabile risposta ma a differenza di questa sono riscalati rispetto alle diverse medie nei 4 gruppi. Il comando qqnorm applicato ai residui del modello costruisce un grafico in cui riporta in ordinata il valore osservato di ciascun residuo (i quantili campionari) mentre in ascissa rappresenta i valori 25
teorici (i quantili di popolazione) che delimitano la stessa frazione percentuale nella distribuzione normale avente ugual media (nulla) e varianza di quella campionaria. qqnorm(g$res) Se la normalità distributiva è valida i punti tendono ad allinearsi lungo la bisettrice di questo grafico. Per visualizzarne la bisettrice si digita il comando: qqline(g$res) Normal Q-Q Plot Sample Quantiles -4-2 0 2 4-2 -1 0 1 2 Theoretical Quantiles Verifica dell ipotesi di omoschedasticità Per verificare l ipotesi di omoschedasticità si può utilizzare il test di Levene che si costruisce in questo modo: si considera il valore assoluto dei residui come la variabile risposta di un nuovo modello anova in cui il fattore è costituito dai 4 tipi di dieta. Un eventuale coefficiente significativo indica una varianza significativamente diversa dalle altre. Di solito si valuta questo test con un coefficiente di significatività pari allo 0,01: summary(lm(abs(g$res)~coagulation$diet)) lm(formula = abs(g$res) ~ coagulation$diet) -2.000e+00-1.000e+00-1.318e-16 6.250e-01 3.000e+00 (Intercept) 1.5000 0.7159 2.095 0.0491 * coagulation$dietb 0.5000 0.9242 0.541 0.5945 26
coagulation$dietc -0.5000 0.9242-0.541 0.5945 coagulation$dietd 0.5000 0.8768 0.570 0.5748 Residual standard error: 1.432 on 20 degrees of freedom Multiple R-Squared: 0.09559, Adjusted R-squared: -0.04007 F-statistic: 0.7046 on 3 and 20 DF, p-value: 0.5604 Analisi della varianza a due fattori Quando si hanno due fattori si deve valutare la significatività per: - l effetto del primo fattore - l effetto del secondo fattore - un possibile effetto di interazione fra i due fattori (che indica l azione sinergica dei due fattori assieme) Questi tre effetti sono additivi fra loro. Nel caso particolare in cui si abbia sempre una sola osservazione in corrispondenza dei livelli dei due fattori l effetto di interazione è nullo. Il dataset rats della libreria faraway riguarda un esperimento a cui sono stati sottoposti 48 topi per valutare l efficacia di 4 diversi trattamenti su 3 diversi agenti tossici in termini di tempo di sopravvivenza (misurato in decine di ore). Le variabili del dataset sono: 'time' survival time in tens of hours 'poison' the poison type - a factor with levels 'I' 'II' 'III' 'treat' the treatment - a factor with levels 'A' 'B' 'C' 'D' Si caricano i dati data(rats) e si effettua una analisi della varianza senza fattori di interazione: g <- lm(time ~ treat+poison, rats) summary(g) lm(formula = time ~ treat + poison, data = rats) -0.25167-0.09625-0.01490 0.06177 0.49833 (Intercept) 0.45229 0.05592 8.088 4.22e-10 *** treatb 0.36250 0.06458 5.614 1.43e-06 *** treatc 0.07833 0.06458 1.213 0.23189 treatd 0.22000 0.06458 3.407 0.00146 ** poisonii -0.07313 0.05592-1.308 0.19813 poisoniii -0.34125 0.05592-6.102 2.83e-07 *** Residual standard error: 0.1582 on 42 degrees of freedom 27
Multiple R-Squared: 0.6503, Adjusted R-squared: 0.6087 F-statistic: 15.62 on 5 and 42 DF, p-value: 1.123e-08 Invece l analisi della varianza secondo la parametrizzazione corner point con effetti di interazioni si esegue attraverso il commando: g <- lm(time ~ treat+poison+ treat*poison, rats) summary(g) lm(formula = time ~ treat + poison + treat * poison, data = rats) -0.32500-0.04875 0.00500 0.04312 0.42500 (Intercept) 0.41250 0.07457 5.532 2.94e-06 *** treatb 0.46750 0.10546 4.433 8.37e-05 *** treatc 0.15500 0.10546 1.470 0.1503 treatd 0.19750 0.10546 1.873 0.0692. poisonii -0.09250 0.10546-0.877 0.3862 poisoniii -0.20250 0.10546-1.920 0.0628. treatb:poisonii 0.02750 0.14914 0.184 0.8547 treatc:poisonii -0.10000 0.14914-0.671 0.5068 treatd:poisonii 0.15000 0.14914 1.006 0.3212 treatb:poisoniii -0.34250 0.14914-2.297 0.0276 * treatc:poisoniii -0.13000 0.14914-0.872 0.3892 treatd:poisoniii -0.08250 0.14914-0.553 0.5836 Residual standard error: 0.1491 on 36 degrees of freedom Multiple R-Squared: 0.7335, Adjusted R-squared: 0.6521 F-statistic: 9.01 on 11 and 36 DF, p-value: 1.986e-07 La verifica delle 3 ipotesi nulle associate ai 3 effetti si ritrova attraverso il comando anova(g) Analysis of Variance Table Response: time Df Sum Sq Mean Sq F value Pr(>F) poison 2 1.03301 0.51651 23.2217 3.331e-07 *** treat 3 0.92121 0.30707 13.8056 3.777e-06 *** poison:treat 6 0.25014 0.04169 1.8743 0.1123 Residuals 36 0.80072 0.02224 da cui risulta che il fattore trattamento e il fattore veleno sono significativi mentre non lo è la loro interazione. La giusta interpretazione a questi risultati allora è: il tipo di veleno o agente tossico ha una influenza significativa sul tempo di sopravvivenza dei topi; il tipo di trattamento è anch esso determinante sul tempo di sopravvivenza dei topi, verosimilmente ci sarà uno (o più) trattamenti più efficace degli altri; al contrario non esiste alcuna associazione fra veleno e trattamento che abbia una azione particolare sui tempi di sopravvivenza. 28