aov和t.test的结果不同

问题描述 投票:0回答:1

根据我的知识,当应用于有一个解释变量的数据时,t检验的结果应该和方差分析的结果相同(相同的p值)。为了测试这一点,我进行了下面的测试来比较结果。

df <- structure(list(y = c(1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1), x = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("FP", "WP" ), class = "factor")), class = "data.frame", row.names = c(NA,-11L))

summary(aov(y ~ x, data = df))
             Df Sum Sq Mean Sq F value Pr(>F)
x            1 0.3068  0.3068   1.473  0.256
Residuals    9 1.8750  0.2083               

t.test(y ~ x, data = df)

Welch Two Sample t-test

data:  y by x
t = -2.0494, df = 7, p-value = 0.0796
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.80768193  0.05768193
sample estimates:
mean in group FP mean in group WP 
           1.000            1.375 

大家可以看到,在方差分析的情况下,p值是: 0.2560.0796 的情况下,进行t检验。

为了了解这种偏差的原因,我自己计算了检验统计量,用公式对一个? 检验 而对于 方差分析. 看起来当组的大小不同时,t-test函数给出了错误的结果。

是否有一个设置可以使t检验在不同组别规模下正确工作?

r anova
1个回答
7
投票

结果没有错,该 t-test 函数只是应用了 韦尔奇校正 如果两组的方差不相等。你可以像这样抑制它。

t.test(y ~ x, data = df, var.equal = TRUE)

    Two Sample t-test

data:  y by x
t = -1.2136, df = 9, p-value = 0.2558
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.0740253  0.3240253
sample estimates:
mean in group FP mean in group WP 
           1.000            1.375 

这就得到了与anova相同的p值(同时注意输出的标题现在不是 "Welch双样本t检验 "而是 "双样本t检验")。

© www.soinside.com 2019 - 2024. All rights reserved.