Faculty of Health Sciences Variansanalyse (ANOVA) Ulla B Mogensen Biostatistisk Afd., SUND, KU. Mail: ulmo@sund.ku.dk
Indhold dag 3 T-test kort opsummering Ensidet variansanalyse Modelkontrol Tosidet variansanalyse Additiv model Interaktionsmodel Modelkontrol 2 / 47
T-test genopfriskning Kontinuert normalfordelte variable fra en eller to stikprøver. One-sample t-test: En stikprøve hvor vi kan teste om middelværdien har en specifik værdi. Two-sample t-test: To stikprøver hvor vi kan teste om middelværdierne i de to stikprøver er ens. Hvis de to stikprøver stammer fra samme individer, f.eks. test af hæmoglobin niveau før og efter epo indtagelse, taler vi om parret data og test. 3 / 47
T-test antagelser Fælles for one-sample og two-sample: Observationerne indenfor en stikprøve skal være uafhængige. Responsvariablen skal helst være normalfordelt. Normal fordelingen kan evt opnås efter en transformation. Ellers brug Wilcoxon test. For two-sample t-test skal der yderligere gælde: Variansen i de to stikprøver skal være ens. Ellers benyt Welch t-test For brug af parret t-test skal observationerne i de to stikprøver være parret. 4 / 47
Kategoriske variable med 2 eller flere grupper I two-sample t-test sammenlignes to grupper fra en faktor variabel, f.eks. sammenlignes fødselsvægt for børn af rygere versus ikke-rygere. Hvis faktoren (den kategoriske variabel) har mere end 2 grupper, f.eks. nuværende rygere, tidligere rygere, ikke-rygere, har vi to eller flere sammenligninger. Her er parvise t-test ikke godt pga massesignifikans. 5 / 47
Eksempel I Festing and Weigler i Handbook of Laboratory Animal Science...... betragter resultaterne af et eksperiment med fuldstændigt randomiseret design hvor mus var randomiseret til en af 4 grupper med forskellig doser af et hormon. Livmodervægten blev målt efter et passende tidsinterval. 6 / 47
Eksempel 1 7 / 47
Eksempel 1 8 / 47
Eksempel 1 9 / 47
Eksempel 1 Konklusioner fra figurerne Livmodervægten afhænger af dosis. Variationen af data øges, når dosis øges. Spørgsmål: Hvorfor kunne disse første konklusioner være forkerte? 10 / 47
Ensidet variansanalyse (one-way anova) Ensidet (one-way): Der opdeles kun efter en faktor, som kan have 2 eller flere grupper (levels). f.eks. dosis er faktor variabel med 5 grupper Den j te observation i gruppe i beskrives ved Y ij = µ i + ε ij, ε ij N (0, σ 2 ) hvor µ i er middelværdien i den i te gruppe og ε ij er den j te observations individuelle afvigelse fra µ i. 11 / 47
Eksempel: Hæmoglobinniveau i seglcelleanæmi Seglcelleanæmi er en gruppe af arvelige sygdomme, som primært forekommer hos personer med negroide gener. Sygdommene er karakteriseret ved dominans af hæmoglobin S (Hb S) i de røde blodlegemer. Sammenligning af hæmoglobinniveau (g/dl) hos 41 patienter med 3 typer af seglcelleanæmi. Gruppe Typer N Mean ( X) Sd I Hb SS 16 8.71 0.84 II Hb S/β 10 10.63 1.28 III Hb SC 15 12.3 0.94 12 / 47
Hypotese H 0 Nulhypotese Niveauet af hæmoglobin afhænger ikke af sygdomstypen H 1 Alternativ hypotese Niveauet af hæmoglobin afhænger af sygdomstypen Det vil sige, vi tester mod H 0 : µ gruppe I = µ gruppe II = µ gruppe III H 1 : µ gruppe I µ gruppe II og/eller µ gruppe III µ gruppe II og/eller µ gruppe I µ gruppe III 13 / 47
Varians og kvadratsummer (sum-of-squares) Definitionen på varians for en stikprøve med n observationer, Y 1,..., Y n med gennemsnit Ȳ er Var = = = 1 (Y i n 1 Ȳ )2 i 1 n 1 {(Y 1 Ȳ )2 + + (Y n Ȳ )2 } 1 {(Y 1 n 1 Ȳ )2 + + (Y n Ȳ )2 } } {{ } } {{ } sum of squares degrees of freedom 14 / 47
Dekomposition af variationen Afvigelsen fra det totale gennemsnit, (Y ij Ȳ ), kan dekomponeres i to led: (Y ij Ȳ ) = (Y ij Ȳi) + (Ȳi Ȳ ) Dermed kan variationen, (Y ij Ȳ )2, dekomponeres SS total = (Y ij Ȳ )2 =...teori om lineære normale modeller... = (Y ij Ȳi) 2 + (Ȳi Ȳ )2 = SS within + SS between SS within kaldes også residual variationen. 15 / 47
Variansanalyse Sammenligning af variansen mellem grupper med variansen indenfor grupper. Variansen mellem grupperne er den systematiske/biologiske varians. Variansen indenfor gruppen er den tilfældige varians. 16 / 47
F-test F-test sammenligner variansen mellem grupper i forhold til variansen indenfor grupper. F = SS between/(k 1) SS within /(n k) F(k 1, n k) Hvis variationen mellem grupperne er stor relativt til indenfor grupperne bidrager grupperingsfaktoren til en systematisk del af variationen af responsvariablen. Et F-test for 2 grupper er ækvivalent med et two-sample t-test. 17 / 47
ANOVA tabel Variation Degrees of freedom Sum of squares MS F P Mellem k 1 SS b SS b /(k-1) MS b /MS w P(F(k-1,n-k)> F) grupper Indenfor n k SS w SS w /(n-k) grupper Total n 1 SS total hvor MS b = 1 k 1 SS between og MS w = 1 n k SS within 18 / 47
Eksempel 2: F-test Model for hæmoglobinniveaus afhængighed af gruppe > data(haem.data) > model <- lm(haemoglobin ~ gruppe,data=haem.data) > ftest <- aov(model) > summary(ftest) Df Sum Sq Mean Sq F val Pr(>F) gruppe 2 99.89 49.94 50 <0.0001 *** Residuals 38 37.96 1.00 Konklusion: Niveauet af hæmoglobinniveauet afhænger af sygdomsgruppen. 19 / 47
Eksempel 2: Parameter estimater Estimaterne fra de forskellige grupper. I R er laveste niveau i en faktor altid referencegruppe. > model Call: lm(formula = haemoglobin ~ gruppe, data = haem.data) Coefficients: (Intercept) gruppeii gruppeiii 8.713 1.917 3.587 Middelværdi estimatet i gruppe I: 8.713. Middelværdi estimatet i gruppe II: 8.713 + 1.917 Middelværdi estimatet i gruppe III: 8.713 + 3.587 20 / 47
Eksempel 2: Konfidensinterval Konfidensintervaller for parameterestimaterne fås ved > confint(model) 2.5 % 97.5 % (Intercept) 8.206678 9.218322 gruppeii 1.101886 2.733114 gruppeiii 2.860335 4.314665 21 / 47
Eksempel 2: Sammenligning af alle tre grupper Parvise sammenligninger justeret for multipel testning: > TukeyHSD(ftest) Tukey multiple comparisons of means 95% family-wise confidence level Fit: aov(formula = model) $gruppe diff lwr upr p adj II-I 1.9175 0.9349148 2.900085 0.0000819 III-I 3.5875 2.7114704 4.463530 0.0000000 III-II 1.6700 0.6748973 2.665103 0.0006147 22 / 47
Antagelser for ensidet variansanalyse For at anvende ensidet variansanalyse skal følgende kriterier være opfyldt: De enkelte observationer skal være uafhængige. Residualerne skal være normalfordelte. Variansen i grupperne skal være ens (varianshomogenitet). Husk: Residualerne er variationen indenfor grupperne. 23 / 47
Modelkontrol for ensidet variansanalyse Tjek af varianshomogenitet: Residualplot: Plot af residualer mod predikterede værdier. Tjek at residualerne er normalfordelte: Histogram af residualerne.? Er de normalfordelt?. Hvis ikke, prøv evt transformation. Probability plot af residualerne (QQ-plot)? Ligger de på den skrå linje. Hvis data ikke er normalfordelt og en transformation ikke kan hjælpe: Brug Kruskal-Wallis test. 24 / 47
Test af varianshomogenitet: Residualer vs fittede værdier Varianshomogenitet i hæmoglobinmodel. > names(model) > plot(model$residuals ~ model$fitted.values, xlab = "Predikteret vaerdi af haemoglobin", ylab = "Residual") Residual 2 1 0 1 25 / 47 9.0 9.5 10.0 10.5 11.0 11.5 12.0 Predikteret vaerdi af haemoglobin
Test for normalfordelte residualer: Histogram > hist(model$residuals,freq = FALSE,breaks=seq(-3,3,1), main = "",xlab = "Residual") > box() > curve(dnorm(x,mean = mean(model$residuals), sd = sd(model$residuals)),add = TRUE) Density 0.0 0.1 0.2 0.3 0.4 3 2 1 0 1 2 3 26 / 47 Residual
Test af normalfordelte residualer: Quantile-Quantile plot > qqnorm(model$residuals,xlab = "Normal quantiles", ylab = "Residual",main = "") > abline(0, sqrt(var(model$residuals)), lty = "21") Residuals 2 1 0 1 2 1 0 1 2 Normal quantiles 27 / 47
Kruskal-Wallis test Kruskal-Wallis test er en ikke-parametrisk ensidet variansanalyse baseret på rangsummer. Test af nulhypotesen: Grupperne har samme median. Mod alternativet: Mindst to af grupperne har ikke samme median. > kruskal.test(haemoglobin ~ gruppe, data=haem.data) Kruskal-Wallis rank sum test data: haemoglobin by gruppe Kruskal-Wallis chi-squared = 28.4982, df = 2, p-value = 0.0000006482 28 / 47
Tosidet variansanalyse (two-way anova) Tosidet variansanalyse anvendes, når der er 2 faktorer, der påvirker en respons. Hvis både aldersgruppe og køn påvirker en repons. Der er overordnet to typer: Ubalanceret design: Der er forskelligt antal observationer i (mindst to af) grupperne. Balanceret design: Alle grupper har samme antal observationer. 29 / 47
Tosidet variansanalyse (two-way anova) Tosidet variansanalyse anvendes, når der er 2 faktorer, der påvirker en respons. Hvis både aldersgruppe og køn påvirker en repons. Der er overordnet to typer: Ubalanceret design: Der er forskelligt antal observationer i (mindst to af) grupperne. Balanceret design: Alle grupper har samme antal observationer. med replikationer: Der er flere observationer i en faktor. uden replikationer: Der kun er en observation i en faktor. 29 / 47
Additiv model To faktorer påvirker responsvariablen additivt. Dette er en model med struktur... Den k te observation som er i gruppe i i faktor 1 og i gruppe j i faktor 2 beskrives ved Y ijk = µ + α i + β j + ε ijk, ε ijk N (0, σ 2 ) Variationen kan igen dekomponeres nu i 3 led: SS total = SS faktor 1 + SS faktor 2 + SS residual 30 / 47
Eksempel III Længden af graviditet målt i dage blev estimeret ved 5 forskellige teknikker for 10 kvinder. > gest.data lmp ve doq us dao woman.1 275 273 288 273 244 woman.2 292 283 284 285 329 woman.3 281 274 298 270 252 woman.4 284 275 271 272 258 woman.5 285 294 307 278 275 woman.6 283 279 301 276 279 woman.7 290 265 298 291 295 woman.8 294 277 295 290 271 woman.9 300 304 293 279 271 woman.10 284 297 352 292 284 lmp: ve: doq: us: dao: Sidste menstruationsperiode Vaginal eksamination Dato for første livstegn (quickening). Ultralydsskanning Diamin oxidase blodprøve Kvinderne udgør en faktor med 10 grupper/niveauer. 31 / 47
Hypotese og F-test Vi tester nu to hypoteser: 1. H 0 : Der er ingen forskel på kvinderne 2. H 0 : Der er ingen forskel på teknikkerne Vi udfører derfor to F-test: F 1 = SS kvinder/(k 1) SS residual /(n k m) F 2 = SS teknik /(m 1) SS residual /(n k m) F(k 1, n k m) F(m 1, n k m) 32 / 47
Eksempel 3: F-test Tosidet variansanalyse for balanceret design uden replikationer (hver kvinde udgør en gruppe/niveau). > names(gestation) > model <- lm(days ~ woman + tech, data=gestation) > ftest <- anova(model) > ftest Analysis of Variance Table Response: days Df Sum Sq Mean Sq F value Pr(>F) woman 9 4437.6 493.07 2.4312 0.02831 * tech 4 3031.4 757.85 3.7368 0.01211 * Residuals 36 7301.0 202.81 33 / 47
Eksempel 3: Parameter estimater > summary(model) Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 261.600 7.536 34.715 < 2e-16 *** woman2 24.000 9.007 2.665 0.011461 * woman3 4.400 9.007 0.489 0.628144 woman4 1.400 9.007 0.155 0.877344 woman5 17.200 9.007 1.910 0.064169. woman6 13.000 9.007 1.443 0.157566 woman7 17.200 9.007 1.910 0.064169. woman8 14.800 9.007 1.643 0.109048 woman9 18.800 9.007 2.087 0.044000 * woman10 31.200 9.007 3.464 0.001392 ** techdoq 22.900 6.369 3.596 0.000963 *** techlmp 11.000 6.369 1.727 0.092707. techus 4.800 6.369 0.754 0.455943 techve 6.300 6.369 0.989 0.329166 Referencegruppe: Kvinde 1 målt med teknik "dao" hvorfor nu "dao"? 34 / 47
Struktur i additiv to-faktor model For to faktorer, her f.eks kvinder W med parametrene α inddelt efter teknik T der har parametrene β, har vi følgende tabel: t1 t2... t5 w1 µ µ + β 1... µ + β 4 w2 µ + α 1 µ + α 1 + β 1... µ + α 1 + β 4 w3 µ + α 2 µ + α 2 + β 1... µ + α 2 + β 4....... w9 µ + α 8 µ + α 8 + β 1... µ + α 8 + β 4 35 / 47
Struktur i additiv to-faktor model For to faktorer, her f.eks kvinder W med parametrene α inddelt efter teknik T der har parametrene β, har vi følgende tabel: t1 t2... t5 w1 µ µ + β 1... µ + β 4 w2 µ + α 1 µ + α 1 + β 1... µ + α 1 + β 4 w3 µ + α 2 µ + α 2 + β 1... µ + α 2 + β 4....... w9 µ + α 8 µ + α 8 + β 1... µ + α 8 + β 4 Forskellen mellem søjle t1 og søjle t2: β 1. Forskellen mellem søjle t1 og søjle t5: β 4. Forskellen mellem søjle t2 og søjle t5: β 1 β 4. 35 / 47
Struktur i additiv to-faktor model For to faktorer, her f.eks kvinder W med parametrene α inddelt efter teknik T der har parametrene β, har vi følgende tabel: t1 t2... t5 w1 µ µ + β 1... µ + β 4 w2 µ + α 1 µ + α 1 + β 1... µ + α 1 + β 4 w3 µ + α 2 µ + α 2 + β 1... µ + α 2 + β 4....... w9 µ + α 8 µ + α 8 + β 1... µ + α 8 + β 4 Forskellen mellem søjle t1 og søjle t2: β 1. Forskellen mellem søjle t1 og søjle t5: β 4. Forskellen mellem søjle t2 og søjle t5: β 1 β 4. Tilsvarende for rækkerne. F.eks: Forskellen mellem række w1 og række w2: α 1. 35 / 47 Forskellen mellem række w3 og række w9: α 2 α 8.
Balanceret design med replikationer I et tosidet balanceret design med replikationer er der flere observationer per celle i krydstabellen mellem to faktorer. De to faktorer kan her have en interaktion, hvor forskellen i respons mellem grupperne i en faktor ikke er den samme for alle grupper i den anden faktor. Interaktion kaldes også effektmodifikation. 36 / 47
Interaktion Ingen interaktion Response 0 1 2 3 4 5 Gruppe1 faktor1 Gruppe2 faktor1 0 1 2 3 4 Faktor 2 37 / 47
Interaktion Ingen interaktion Interaktion Response 0 1 2 3 4 5 Gruppe1 faktor1 Gruppe2 faktor1 Response 0 1 2 3 4 5 Gruppe1 faktor1 Gruppe2 faktor1 0 1 2 3 4 Faktor 2 0 1 2 3 4 Faktor 2 37 / 47
Eksempel 4 12 rotter blev randomiseret på to måder: 6 rotter fik antibiotika og 3 ud af 6 rotter i hver antibiotikagruppe fik vitaminer. Respons: Vækst. > ratgrowth ratid antibiotics vitamins growth 1 1 no no 1.30 2 2 no no 1.19 3 3 no no 1.08 4 4 no yes 1.26 5 5 no yes 1.21 6 6 no yes 1.19 7 7 yes no 1.05 8 8 yes no 1.00 9 9 yes no 1.05 10 10 yes yes 1.52 11 11 yes yes 1.56 12 12 yes yes 1.55 38 / 47
Interaktionsmodel Tosidet variansanalyse model med interaktion Y ijl = µ + α i + β j + γ ij + ε ijl, ε ijl N (0, σ 2 ) hvor γ ij er effekten af interaktionen (effektmodifikationen). Variationen kan igen dekomponeres : SS total = SS faktor 1 + SS faktor 2 + SS interaktion + SS residual df=k-1 df=m-1 df=(k-1)(m-1) df=n-k-m-1 Residualvariationen er i eksemplet forskellen mellem rotterne indenfor hver gruppe af antibiotika og vitamin. 39 / 47
Eksempel 4: Fit af interaktionsmodel Interaktionsmodellen kan fittes på to ækvivalente måder > model <- lm(growth ~ antibiotics + vitamins + antibiotics:vitamins, data=ratgrowth) > ftest <- anova(model) > ftest Analysis of Variance Table Response: growth Df Sum Sq Mean Sq F value Pr(>F) antibiotics 1 0.020833 0.020833 5.6818 0.044292 * vitamins 1 0.218700 0.218700 59.6455 0.00005622 *** antibiotics:vitamins 1 0.172800 0.172800 47.1273 0.000129 *** Residuals 8 0.029333 0.003667 40 / 47
Eksempel 4: Parameter estimater > summary(model) Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 1.19000 0.03496 34.039 0.000000000606 *** antibioticsyes -0.15667 0.04944-3.169 0.013220 * vitaminsyes 0.03000 0.04944 0.607 0.560818 antibioticsyes:vitaminsyes 0.48000 0.06992 6.865 0.000129 *** Referencegruppen: Rotter uden antibiotika og uden vitaminer. Rotte antibiotics=no, vitamin=no: 1.19 41 / 47
Eksempel 4: Parameter estimater > summary(model) Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 1.19000 0.03496 34.039 0.000000000606 *** antibioticsyes -0.15667 0.04944-3.169 0.013220 * vitaminsyes 0.03000 0.04944 0.607 0.560818 antibioticsyes:vitaminsyes 0.48000 0.06992 6.865 0.000129 *** Referencegruppen: Rotter uden antibiotika og uden vitaminer. Rotte antibiotics=no, vitamin=no: 1.19 Rotte antibiotics=yes, vitamin=no: 1.19 + (-0.15667) Rotte antibiotics=no, vitamin=yes: 1.19 + 0.03 Rotte antibiotics=yes, vitamin=yes: 1.19 + (-0.15667) + 0.03 + 0.48 41 / 47
Interaktionsplot > plotmeans(growth ~ interaction(vitamin,antibiotics), + connect=list(c(1,3),c(2,4)), + main="interaction between vitamin and antibioti Interaction between vitamin and antibiotics growth 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 n=3 n=3 n=3 n=3 vita.no.anti.no vita.yes.anti.no vita.no.anti.yes vita.yes.anti.yes interaction(vita, anti) 42 / 47
Parameterestimater i interaktionsmodel I en interaktionsmodel er der ikke en struktur som i den additive model uden interaktion. vitamin no vitamin yes antib. no µ µ + β 1 antib. yes µ + α 1 µ + α 1 + β 1 + γ Hvis interaktionsparameteren γ ikke er signifikant, kan vi modficere modellen ved at sætte γ = 0. Y ijl = µ + α i + β j + γ ij +ε ijl, ε ijl N (0, σ 2 ) }{{} =0 Tilbage er en additiv model. 43 / 47
Modelkontrol for tosidet variansanalyse Tjek af varianshomogenitet: Residual plot: Plot af predikterede værdier mod residualerne. Residual plot: Plot af residualerne mod grupperne.? Fordeler punkter sig ens om linien. Hvis ikke, prøv evt transformation. Tjek af normalitet for residualer: Histogram af residualerne.? Er de normalfordelt. Hvis ikke, prøv evt transformation. Probability plot af residualerne (QQ-plot)? Ligger de på den skrå linie. 44 / 47
Eksempel 4: Modelkontrol Modelkontrol kan fås ved at plotte model-objektet i R. > par(mfrow=c(2,1)) > plot(model,which=1:2) Residuals vs Fitted Normal Q Q Residuals 0.10 0.00 0.10 1 4 3 Standardized residuals 2 0 1 2 3 4 1 1.1 1.2 1.3 1.4 1.5 Fitted values 1.5 0.5 0.5 1.5 Theoretical Quantiles 45 / 47
Anova metoder oversigt Uafhængige observationer t-test for to grupper (dag 1) Ensidet variansanalyse for flere grupper (en faktor) Tosidet variansanalyse for to grupperings variable (to faktorer) Afhængige observationer Gentagne målinger (repeated measurements) Mixed effekt modeller Ikke-normalfordelte data Ikke-parametrisk anova (Kruskal-Wallis test) Mix af kategoriske og kontinuerte faktorer Varianskomponentmodeller (ancova) Model sammenligning og model selektion 46 / 47
Et par afsluttende bemærkninger om anova Variationen af data kan dekomponeres i en systematisk og en tilfældig del. Et F-test for en faktor med 2 grupper er ækvivalent med et two-sample t-test. Anova er aktuelt for en faktor med 3 eller flere grupper, da parvise sammenligninger via t-test eller Wilxcoxon test fører til massesignifikans. Anova er et special tilfælde af lineær regression. 47 / 47