Introduktion til Statistik Forelæsning 10: Envejs variansanalyse, ANOVA Peder Bacher DTU Compute, Dynamiske Systemer Bygning 303B, Rum 017 Danmarks Tekniske Universitet 2800 Lyngby Danmark e-mail: pbac@dtu.dk enote 8: Envejs variansanalyse (envejs ANOVA) k UAFHÆNGIGE grupper Test om middelværdi for mindst en gruppe er forskellig fra de andre gruppers middelværdi Model Y ij = µ + α i + ε ij Specifikke metoder, envejs variansanalyse: ANOVA-tabel: SST = SS(Tr) + SSE F-test Post hoc test(s): Parvise t-test med poolet varians estimat Hvis planlagt på forhånd, så uden Bonferroni korrektion Hvis alle sammenligninger udføres, så med Bonferroni korrektion DTU Compute Introduktion til Statistik Forår 2016 1 / 29 DTU Compute Introduktion til Statistik Forår 2016 2 / 29 enote 8: One-way Analysis of Variance Oversigt k INDEPENDENT samples (s) Test if the mean of at least one of the samples is different from the mean of the other s Model Y ij = µ + α i + ε ij Specific methods, one-way analysis of variance: ANOVA-table: SST = SS(Tr) + SSE F-test Post hoc test(s): pairwise t-test with pooled variance estimate If planned on beforehand, then without Bonferroni correction If all samples are compared, then with Bonferroni correction 1 Intro eksempel 2 Model og hypotese 3 4 5 Post hoc sammenligninger 6 Model kontrol DTU Compute Introduktion til Statistik Forår 2016 3 / 29 DTU Compute Introduktion til Statistik Forår 2016 4 / 29
Intro eksempel Envejs variansanalyse - eksempel Intro eksempel Envejs variansanalyse - eksempel Gruppe A Gruppe B Gruppe C 2.8 5.5 5.8 3.6 6.3 8.3 3.4 6.1 6.9 2.3 5.7 6.1 Er der forskel (i middel) på grupperne A, B og C? Variansanalyse (ANOVA) kan anvendes til analysen såfremt observationerne i hver gruppe kan antages at være normalfordelte (vigtigt når man har få observationer, men jo flere man observationer man har des mindre vigtigt med CLT) Observationer y <- c(2.8, 3.6, 3.4, 2.3, 5.5, 6.3, 6.1, 5.7, 5.8, 8.3, 6.9, 6.1) Grupper (behandlinger) treatm <- factor(c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3)) Plot par(mfrow=c(1,2)) plot(as.numeric(treatm), y, xlab="treatment", ylab="y") plot(treatm, y, xlab="treatment", ylab="y") DTU Compute Introduktion til Statistik Forår 2016 6 / 29 DTU Compute Introduktion til Statistik Forår 2016 7 / 29 Model og hypotese Envejs variansanalyse, model Model og hypotese Envejs variansanalyse, hypotese Opstil en model Y ij = µ + α i + ε ij hvor det antages, at ε ij N(0,σ 2 ) µ er samlet middelværdi α i angiver effekt af gruppe (behandling) i j tæller målinger i grupperne, fra 1 til n i i hver gruppe Vi vil nu sammenligne (flere end to) middelværdier µ + α i i modellen Y ij = µ + α i + ε ij, ε ij N(0,σ 2 ) dvs. vi kan specificere hypotesen H 0 : α i = 0 for alle i H 1 : α i 0 for mindst et i DTU Compute Introduktion til Statistik Forår 2016 9 / 29 DTU Compute Introduktion til Statistik Forår 2016 10 / 29
y y Envejs variansanalyse, opspaltning og ANOVA tabellen y Formler for kvadratafvigelsessummer Kvadratafvigelsessum ( den totale varians ) y Med modellen Y ij = µ + α i + ε ij, ε ij N(0,σ 2 ) kan den totale variation i data opspaltes SST = SS(Tr) + SSE Envejs hentyder til, at der kun er én faktor i forsøget, på i alt k nivauer Metoden kaldes variansanalyse, fordi testningen foregår ved at sammenligne varianser SST = k n i i=1 j=1 (y ij ȳ) 2 Kvadratafvigelsessum af residualer ( Varians tilbage efter model ) SSE = k n i i=1 j=1 (y ij ȳ i ) 2 Kvadratafvigelsessum af behandling ( Varians forklaret af model ) SS(Tr) = k i=1 n i (ȳ i ȳ) 2 = SST SSE DTU Compute Introduktion til Statistik Forår 2016 12 / 29 DTU Compute Introduktion til Statistik Forår 2016 13 / 29 Spørgsmål den totale varians (SST) Socrative.com, room: PBAC Spørgsmål: residual variansen (SSE) Socrative.com, room: PBAC DATA 1 DATA 2 DATA 1 DATA 2 ȳ SST: 392.5 ȳ SST: 57.99 ȳ 1 ȳ 2 SSE: 37.9 ȳ 3 ȳ 1 ȳ 2 ȳ 3 SSE: 38.12 For hvilken data er SST (totale variation) størst? A: DATA1 B: DATA2 C: Omtrent lige stor D: Ved ikke Svar A: Det er afstandene til ȳ (i anden og summeret) DTU Compute Introduktion til Statistik Forår 2016 14 / 29 For hvilken data er SSE (residual variationen) størst? A: DATA1 B: DATA2 C: Omtrent lige stor D: Ved ikke Svar C: Det er afstandene til ȳ i (i anden og summeret) DTU Compute Introduktion til Statistik Forår 2016 15 / 29
Envejs variansanalyse, F-test F-fordeling Vi har altså og kan finde teststørrelsen hvor SST = SS(Tr) + SSE F = k er antal nivauer af faktoren n er antal observationer SS(Tr)/(k 1) SSE/(n k) Signifikansniveau α vælges og teststørrelsen F beregnes Husk, dette er under H0 (altså vi regner som om H0 er sand): Antal grupper k <- 3 Antal punkter n <- 12 Sekvens til plot xseq <- seq(0, 10, by=0.1) Plot F fordelingens tæthedsfunktion plot(xseq, df(xseq, df1=k-1, df2=n-k), type="l", xlab='x', ylab='f(x)') Kritisk værdi for signifikans niveau 5 % cr <- qf(0.95, df1=k-1, df2=n-k) Tegn den i plottet abline(v=cr, col="red") Test statistikkens værdi: Værdien (Fobs <- (SSTr/(k-1)) / (SSE/(n-k))) p-værdien er da (1 - pf(fobs, df1=k-1, df2=n-k)) Teststørrelsen sammenlignes med en fraktil (percentile) i F fordelingen F F α (k 1,n k) DTU Compute Introduktion til Statistik Forår 2016 17 / 29 DTU Compute Introduktion til Statistik Forår 2016 18 / 29 F-fordeling Variansanalysetabel f (x) 0.0 0.2 0.4 0.6 0.8 1.0 Critical level for α = 0.05 0 2 4 6 8 10 Variations- Friheds- Kvadrat- Gns. kvadratafv. Test- p- kilde grader afvig. sum sum størrelse F værdi Source of Deg. of Sums of Mean sum of Test- p- variation freedom squares squares statistic F value Behandling k 1 SS(Tr) MS(Tr) = SS(Tr) k 1 Residual n k SSE MSE = n k SSE Total n 1 SST Alt dette beregnes med lm() og anova() Analysis of Variance Table Response: y Df Sum Sq Mean Sq F value Pr(>F) treatm 2 30.8 15.40 26.7 0.00017 *** Residuals 9 5.2 0.58 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 F obs = MS(Tr) MSE P(F > F obs ) x DTU Compute Introduktion til Statistik Forår 2016 19 / 29 DTU Compute Introduktion til Statistik Forår 2016 20 / 29
Spørgsmål ANOVA table Socrative.com, room: PBAC Spørgsmål ANOVA table Socrative.com, room: PBAC Analysis of Variance Table Response: y Df Sum Sq Mean Sq F value Pr(>F) treatm 3 37.6 12.54 4.51 0.024 * Residuals 12 33.3 2.78 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Hvad er den totale variation SST? A: 12.54 B: 37.6 C: 71 D: Ved ikke Svar C: 71. Det er summen af Sum Sq kolonnen Analysis of Variance Table Response: y Df Sum Sq Mean Sq F value Pr(>F) treatm 3 37.6 12.54 4.51 0.024 * Residuals 12 33.3 2.78 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Husk antagelsen om normalfordelte afvigelser ε ij N(0,σ 2 ) Hvad er ˆσ 2? A: 33.3 12 B: 37.6 3 C: 4.51 D: Ved ikke Svar A: ˆσ 2 = MSE = n k SSE = 33.8 12 = 2.78 DTU Compute Introduktion til Statistik Forår 2016 21 / 29 DTU Compute Introduktion til Statistik Forår 2016 22 / 29 Spørgsmål ANOVA table Socrative.com, room: PBAC Post hoc sammenligninger Post hoc konfidensinterval Analysis of Variance Table Response: y Df Sum Sq Mean Sq F value Pr(>F) treatm 3 37.6 12.54 4.51 0.024 * Residuals 12 33.3 2.78 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Hvad er konklusionen på testen af: H 0 : α i = 0 for alle i? A: H 0 accepteres B: H 0 afvises C: Ved ikke Svar B: H 0 afvises da p-value < α: P(F > F obs ) = 0.024 < α = 0.05 En enkelt forudplanlagt sammenligning af forskelle på behandling i og j findes ved ( 1 ȳ i ȳ j ± t 1 α/2 MSE + 1 ) n i n j hvor t 1 α/2 er fra t-fordelingen med n k frihedsgrader. Læg mærke til færre frihedsgrader, da der er estimeret flere parametre i beregningen af MSE = SSE/(n k) = s 2 p (i.e. pooled varians estimat) Hvis alle M = k(k 1)/2 kombinationer af parvise konfidensintervaller udregnes brug formlen M gange, men hver gang med α Bonferroni = α/m DTU Compute Introduktion til Statistik Forår 2016 23 / 29 DTU Compute Introduktion til Statistik Forår 2016 25 / 29
Post hoc sammenligninger Model kontrol Post hoc parvis hypotesetest Varians homogenitet En enkelt forudplanlagt hypotesetest på α signifikansniveau om forskel af behandling i og j H 0 : µ i = µ j, H 1 : µ i µ j udføres ved ȳ i ȳ j t obs = ( ) MSE 1ni + 1 nj Se på box-plot om spredning ser meget forskellig ud for hver gruppe Box plot plot(treatm,y) og p-value = 2P(t > t obs ) hvor t-fordelingen med n k frihedsgrader anvendes Hvis alle M = k(k 1)/2 kombinationer af hypotesetests, bruges det korrigerede signifikansniveau α Bonferroni = α/m DTU Compute Introduktion til Statistik Forår 2016 26 / 29 DTU Compute Introduktion til Statistik Forår 2016 28 / 29 Model kontrol Normalfordelingsantagelse Se på qq-normal plot qq-normal plot af residualer fit1 <- lm(y ~ treatm) qqnorm(fit1$residuals) qqline(fit1$residuals) Eller med et Wally plot require(mess) qqwrap <- function(x, y,...) {qqnorm(y, main="",...); qqline(y)} Kan vi se et afvigende qq-norm plot? wallyplot(fit1$residuals, FUN = qqwrap) DTU Compute Introduktion til Statistik Forår 2016 29 / 29