R 中的方差分析(AOV 函数):误导性 p_value 报告等值

ANOVA (AOV function) in R: Misleading p_value reported on equal values

我将不胜感激以下方面的任何指导:我是 运行 方差分析 (aov) 来检索 p_value 一个较大数据集的多个子集。所以我碰到了一个子集,其中我的数字 variables/values 同样是 36。因为它是循环的一部分,方差分析仍在执行,同时报告看似无限小的 p_value 1.2855e-134-- > 如果我错了请纠正我,但 p_value 越小,因子之间的差异显着不同的概率越高?

为简单起见,这是子集: sUBSET_FOR_ANOVA

这是我计算方差分析和检索 p_value 的方法,其中 TEMP_DF2 只是您看到的子集:

#

anova_sweep <- aov(TEMP_DF2$GOOD_PTS~TEMP_DF2$MACH,data = TEMP_DF2)
p_value <- summary(anova_sweep)[[1]][["Pr(>F)"]]  
p_value <- p_value[1]

#

非常感谢您的指导,

我无法复制您的发现。让我们生成一个所有值为 36 的示例数据集:

df <- data.frame(gr = rep(letters[1:2], 100),
                 y = 36)
summary(aov(y~gr, data = df))

给出:

             Df    Sum Sq   Mean Sq F value Pr(>F)
gr            1 1.260e-27 1.262e-27       1  0.319
Residuals   198 2.499e-25 1.262e-27               

基本上,根据样本量,我们获得了大约 0.3 左右的 p 值。 F 统计量(根据定义)始终为 1,因为组间方差和组内方差相等。

是否有结果误导?在某种程度上,是的。估计SS和MS应该是0,aov计算出来的非常非常小。 R 和一些包中的一些其他统计测试检查零方差并会产生错误,但 aov 显然不会。

但是,更重要的是,我想说您的数据违反了方差分析的假设,因此任何结果都不能作为结论的依据。当涉及到统计测试时,R 中的期望通常是用户在正确的情况下使用测试。