为什么两个独立的样本t检验和双向ANOVA在相同的数据集上给出不同的结果?

时间:2015-09-12 15:04:05

标签: r statistics anova

我在两种不同的治疗方法中收集了两份数据样本:

sam.a <- c( 0.1333333, 0.2258065, 0.1944444, 0.2894737)
sam.b <- c(0.137931, 0.093750, 0, 0)

我首先在R:

尝试了t.test
t.test(sam.a,sam.b)

我的结果如下(p < 0.05)

    Welch Two Sample t-test

data:  sam.a and sam.b
t = -4.1497, df = 5.8602, p-value = 0.006329
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.27151717 -0.06935361
sample estimates:
mean of x mean of y 
0.1994576 0.3698930 

当我在R中使用anova尝试相同的数据时:

aov(sam.a ~ sam.b)

结果变得微不足道(p > 0.05):

            Df   Sum Sq  Mean Sq F value Pr(>F)
sam.b        1 0.005970 0.005970   1.778  0.314
Residuals    2 0.006714 0.003357               

有人可以帮我解决这个问题吗?非常感谢!

1 个答案:

答案 0 :(得分:6)

如果你想进行等效的方差分析,你必须以不同的方式进行设置。

samples <- c(sam.a, sam.b)
fac <- c(rep("a", length(sam.a)),
         rep("b", length(sam.b)))

summary(aov(samples ~ fac))[[1]]$"Pr(>F)"[1]
#[1] 0.01819264

您需要构造一个变量,该变量描述值所属的向量:

samp.a

您使用samp.b作为依赖,aov作为独立,并且基本上在它们之间做了回归,这根本不相同。 (请注意,{{1}}内部始终进行OLS回归,并根据回归结果计算相关的平方和。)

如果你假设t检验中的方差不一致(默认情况下)并进行Welch检验,标准方差分析不会准确地再现p值。