3 / 46 2 / 46 4 / 46 Faculty of Health Sciences Indhold dag 2 Variansanalyse (ANOVA) Ulla B Mogensen Biostatistisk Afd., SUND, KU. Mail: ulmo@sund.ku.dk T-testet fra dag 1 Ensidet variansanalyse. Modelkontrol. Tosidet variansanalyse. Additiv model Interaktions model Modelkontrol. T-test fra dag 1 T-test antagelser 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 bestemt værdi. Two-sample t-test: To stikprøver, hvor vi kan teste om middelværdien i de to stikprøver er ens. Hvis de to stikprøver er to samples for samme observationer (f.eks. test af hæmoglobin niveau før og efter epo indtagelse) taler vi om parret data og test. Fælles for one-sample og two-sample: Observationerne indenfor en stikprøve skal være uafhængige. Responsvariablen skal være normalfordelt.! Måske en log-transformation af variablen kan afhjælpe.! Wilcoxon test har ingen normalfordelingsantagelser. For two-sample t-test skal der yderligere gælde: Variansen i de to stikprøver skal være ens.! Welch t-test kan benyttes. For brug af parret t-test skal observationerne i de to stikprøver være parret.
5 / 46 7 / 46 6 / 46 8 / 46 Kategoriske variable med 2 eller flere grupper Eksempel I I two-sample t-test sammenlignes to grupper fra en faktor variabel, f.eks. sammenligningen af fødselsvægt for børn af rygere versus ikke-rygere. Hvis faktoren (den kategoriske variabel) har mere end to grupper, f.eks. nuværende rygere, tidligere rygere, ikke-rygere, har vi tre eller flere sammenligninger. Her er parvise t-test ikke godt pga massesignifikans. Festing and Weigler i Handbook of Laboratory Animal Science...... betragter resultaterne af et ekseperiment med fuldstændig randomiseret design hvor mus var randomiseret til en af fire grupper med forskellig doser af et hormon. Livmodervægten blev målt efter et passende tidsinterval. Eksempel 1 Eksempel 1
9 / 46 11 / 46 10 / 46 12 / 46 Eksempel 1 Eksempel 1 Konklusioner fra figurene 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? Ensidet variansanalyse (one-way anova) Eksempel: Hæmoglobin niveau i seglcelleanæmi Ensidet (one-way): Der opdeles kun efter en faktor, men 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 Yij = µi + εij, ε N (0, σ 2 ) hvor µi er gennemsnittet i den i te gruppe og εij er den j te observations individuelle afvigelse fra µi. Seglcelleanænemi er en gruppe af arvelig 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 (µ) 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
13 / 46 15 / 46 14 / 46 16 / 46 Hypotese H0 Nul hypotese Niveauet af hæmoglobin afhænger ikke af sygdomstypen H1 Alternativ hypotese Niveauet af hæmoglobin afhænger af sygdomstypen Det vil sige, vi tester mod H0 : µgruppe I = µgruppe II = µgruppe III H1 : µgruppe I µgruppe II eller µgruppe III µgruppe II eller µgruppe I µgruppe III Varians og kvadratsummer (sum-of-squares) Definitionen på varians for en stikprøve med n observationer, Y1,..., Yn med gennemsnit Ȳ er Var = = = 1 (Yi n 1 Ȳ )2 i 1 n 1 {(Y1 Ȳ )2 + + (Yn Ȳn)2 } 1 {(Y1 n 1 Ȳ )2 + + (Yn Ȳ )2 } } {{ } } {{ } sum of squares degrees of freedom hvor µ er middelværdi. Dekomposition af variationen Variansanalyse Afvigelsen fra det total gennemsnit (Yij Ȳ ), kan dekomponeres i to termer: (Yij Ȳ ) = (Yij Ȳi) + (Ȳi Ȳ ) Dermed kan variationen, (Yij Ȳ )2, dekomponeres SStotal = (Yij Ȳ )2 =...teori om lineær normale modeller... = (Yij Ȳi)2 + (Ȳi Ȳ )2 Sammenligning af variansen mellem grupper med variansen indenfor grupper. Variansen indenfor gruppen er en biologisk varians. Variansen mellem grupperne er en tilfældig varians. = SSwithin + SSbetween SSwithin kaldes også residual variationen.
17 / 46 19 / 46 18 / 46 20 / 46 F-test ANOVA tabel F-test sammenligner variansen mellem grupper i forhold til variansen indenfor grupperne. SSbetween/(k 1) F = F(k 1, n k) SSwithin/(n k) Hvis variationen mellem grupperne er stor relativ til indenfor grupperne bidrager grupperings faktoren til en systematisk del af variationen af responsvariablen. Variation Degrees Sum of freedom of squares Mean squares Mellem k 1 SSb SSb/(k-1) MSb/MSw P(F(k-1,n-k)> F) grupper Indenfor n k SSw SSw/(n-k) grupper Total n 1 SStotal hvor MSb = 1 k 1 SSbetween og MSw = 1 n k SSwithin F P Et F-test for 2 grupper er ækvivalent med et two-sample t-test. Eksempel 2: F-test Eksempel 2: Parameter estimater Model for hæmoglobin niveaus afhængighed af gruppe > 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æmoglobin niveauet afhænger signifikant af sygdomsgruppen. Estimaterne fra de forskellige grupper. I R er første gruppe 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 + 1917 Middelværdi estimatet i gruppe III: 8.713 + 3.587
21 / 46 23 / 46 22 / 46 24 / 46 Eksempel 2: Konfidensinterval Eksempel 2: Sammenligning af alle tre grupper Konfidensintervaller for parameter estimaterne fås ved > confint(model) 2.5 % 97.5 % (Intercept) 8.206678 9.218322 gruppeii 1.101886 2.733114 gruppeiii 2.860335 4.314665 Parvise sammenligninger justeret for multiple 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 Antagelser for ensidet variansanalyse Modelkontrol for ensidet variansanalyse For at anvende ensidet variansanalyse skal følgende kriterier være opfyldt: Tjek af varianshomogenitet: Residual plot: Plot af residualer mod predikterede værdier. 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 inden for grupperne. 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. Hvis data ikke er normalfordelt og en transformation ikke kan afhjælpe: Brug Kruskal-Wallis test.
25 / 46 27 / 46 26 / 46 28 / 46 Test af varianshomogenitet: Residualer vs fittede værdier Varianshomogenitet i hæmoglobin model. > plot(model$residuals ~ model$fitted.values, xlab = "Predikteret vaerdi af haemoglobin", ylab = "Residual") Test for normal fordelte 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) Residual 2 1 0 1 9.0 9.5 10.0 10.5 11.0 11.5 12.0 Density 0.0 0.1 0.2 0.3 0.4 Predikteret vaerdi af haemoglobin 3 2 1 0 1 2 3 Residual Test af normal fordelte 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 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 Normal quantiles
29 / 46 30 / 46 29 / 46 31 / 46 Tosidet variansanalyse (two-way anova) 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. 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 forskellig antal observationer i (mindst to af) grupperne. Balanceret design: Alle grupper har samme antal observationer. Der er overordnet to typer: Ubalanceret design: Der er forskellig 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. 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 Yijk = µ + αi + βj + εijk, εijk N (0, σ 2 ) Variationen kan igen dekomponeres - nu i 3 led: SStotal = SSfaktor 1 + SSfaktor 2 + SSresidual 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: Kvinderne udgør en faktor med 10 grupper/niveauer. Sidste menstruationsperiode Vaginal eksamination Dato for første livstegn (quickening). Ultralydsskanning Diamin oxidase blodprøve
32 / 46 34 / 46 33 / 46 35 / 46 Hypotese og F-test Vi tester nu to hypoteser: 1. H0: Der er ingen forskel på kvinderne 2. H0: Der er ingen forskel på teknikkerne Vi udfører derfor to F-test: F1 = SSkvinder/(k 1) F(k 1, n k m) SSresidual/(n k m) F2 = SSteknik/(m 1) SSresidual/(n k m) F(m 1, n k m) Eksempel 3: F-test Tosidet variansanalyse for balanceret design uden replikationer (hver kvinde udgør en gruppe/niveau). > 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 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"? 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 / 46 36 / 46 37 / 46 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. 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. Balanceret design med replikationer Tilsvarende for rækkerne. F.eks: Forskellen mellem række w1 og række w2: α1. 35 / 46 Forskellen mellem række w3 og række w9: α2 α8. Interaktion I et tosidet balanceret design med replikationer er der flere observationer per celle i krydstabellen mellem to faktorer. Ingen interaktion De to faktorer kan her have en interaktion hvor forskellen i respons mellem grupperne i en faktor ikke er den samme ved alle grupper i den anden faktor. Interaktion kaldes også effekt modifikantion. Response 0 1 2 3 4 5 Gruppe1 faktor1 Gruppe2 faktor1 0 1 2 3 4 Faktor 2
37 / 46 39 / 46 38 / 46 40 / 46 Interaktion 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. Response: Vækst. Response 0 1 2 3 4 5 Ingen interaktion 0 1 2 3 4 Faktor 2 Gruppe1 faktor1 Gruppe2 faktor1 Response 0 1 2 3 4 5 Interaktion Gruppe1 faktor1 Gruppe2 faktor1 0 1 2 3 4 Faktor 2 > 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 Interaktionsmodel Tosidet variansanalyse model med interaktion Yijl = µ + αi + βj + γij + εijl, εijl N (0, σ 2 ) hvor γij er effekten af interaktionen (effekt modifikationen). Variationen kan igen dekomponeres : SStotal = SSfaktor 1 + SSfaktor 2 + SSinteraktion + SSresidual df=k-1 df=m-1 df=(k-1)(m-1) df=n-k-m-1 Residual variationen er i eksemplet forskellen mellem rotterne inden for hver gruppe af antibiotika og vitamin. Eksempel 4: Fit af interaktionsmodel Interaktionsmodellen kan fittes på to ækvivalente måder > model1 <- lm(growth ~ antibiotics*vitamins, data=ratgrowth) > 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
41 / 46 42 / 46 41 / 46 43 / 46 Eksempel 4: Parameter estimater Eksempel 4: Parameter estimater > summary(model) > 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 *** 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 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 Parameter estimater i interaktionsmodel Modelkontrol for tosidet variansanalyse 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. Yijl = µ + αi + βj + γij +εijl, εijl N (0, σ 2 ) }{{} =0 Tilbage er en additiv model. 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 / 46 46 / 46 45 / 46 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 0.10 0.00 0.10 Residuals vs Fitted 1 4 3 1.1 1.2 1.3 1.4 1.5 Fitted values Standardized residuals 2 0 1 2 3 Normal Q Q 4 1.5 0.5 0.5 1.5 Theoretical Quantiles 1 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 Et par afsluttende bemærkninger om anova Variationen af data kan dekomponeres i en systematisk og en tilfældig del. For en faktor med 2 grupper er et F-test ækvivalent med et two-sample t-test. For en faktor med 3 eller flere grupper fejler t-test og wilcoxon test grundet masse-significans. Anova bliver derfor aktuelt. Anova viser sig at være et special tilfælde af lineær regression! men mere om det dag 3 og 4.