Чому t-тест та ANOVA дають різні р-значення для порівняння у двох групах?


18

У статті Вікіпедії про ANOVA про це йдеться

У своїй найпростішій формі ANOVA проводить статистичний тест на те, наскільки рівними є засоби декількох груп, і тому узагальнює t-тест на більш ніж дві групи.

Я розумію це в тому, що ANOVA - це те саме, що і t-тест, коли мова йде про двогрупове порівняння.

Однак у моєму простому прикладі, наведеному нижче (в R), ANOVA та t-тест дають подібні, але дещо інші p-значення. Хтось може пояснити, чому?

x1=rnorm(100,mean=0,sd=1)
x2=rnorm(100,mean=0.5,sd=1)

y1=rnorm(100,mean=0,sd=10)
y2=rnorm(100,mean=0.5,sd=10)

t.test(x1,x2)$p.value  # 0.0002695961
t.test(y1,y2)$p.value  # 0.8190363

df1=as.data.frame(rbind(cbind(x=x1,type=1), cbind(x2,type=2)))
df2=as.data.frame(rbind(cbind(x=y1,type=1), cbind(y2,type=2)))

anova(lm(x~type,df1))$`Pr(>F)`[1]  # 0.0002695578
anova(lm(x~type,df2))$`Pr(>F)`[1]  # 0.8190279

Відповіді:


28

За замовчуванням аргументу var.equalпро t.test()рівних FALSE. В результаті lm(), залишки повинні мати постійну дисперсію. Таким чином, встановивши var.equal = TRUEв t.test(), ви повинні отримати той же результат.

var.equalsвказує, чи слід розглядати ці дві дисперсії як рівні. Якщо ІСТИНА, то об'єднана дисперсія використовується для оцінки дисперсії, інакше використовується наближення Вельха (або Саттертвейта) до ступенів свободи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.