如何证明阶乘方差分析中的误差项?

机器算法验证 方差分析 线性模型
2022-03-09 10:19:04

关于多因素方差分析的一个可能非常基本的问题。假设我们测试主效应 A、B 和交互作用 A:B 的双向设计。当用 I 型 SS 测试 A 的主效应时,效应 SS 计算为差值RSS(1)RSS(A), 在哪里RSS(1)是仅具有截距的模型的残差平方和,并且RSS(A)添加了因子 A 的模型的 RSS。我的问题涉及错误术语的选择:

您如何证明此检验的误差项通常是根据包含主效应和交互作用的完整模型 A + B + A:B 的 RSS 计算得出的?

FA=(RSS1RSSA)/(dfRSS1dfRSSA)RSSA+B+A:B/dfRSSA+B+A:B

...而不是从实际比较中获取无限制模型中的误差项(RSS 仅来自上述情况下的主效应 A):

FA=(RSS1RSSA)/(dfRSS1dfRSSA)RSSA/dfRSSA

这会有所不同,因为在比较中,来自完整模型的误差项可能经常(并非总是)小于来自不受限制模型的误差项。似乎误差项的选择有些武断,仅通过添加/删除并不真正感兴趣的因素来为所需的 p 值变化创造空间,但无论如何都要更改误差项。

在以下示例中,A 的 F 值会根据完整模型的选择而发生显着变化,即使效果 SS 的实际比较保持不变。

> DV  <- c(41,43,50, 51,43,53,54,46, 45,55,56,60,58,62,62,
+          56,47,45,46,49, 58,54,49,61,52,62, 59,55,68,63,
+          43,56,48,46,47, 59,46,58,54, 55,69,63,56,62,67)

> IV1 <- factor(rep(1:3, c(3+5+7, 5+6+4, 5+4+6)))
> IV2 <- factor(rep(rep(1:3, 3), c(3,5,7, 5,6,4, 5,4,6)))
> anova(lm(DV ~ IV1))                           # full model = unrestricted model (just A)
          Df  Sum Sq Mean Sq F value Pr(>F)
IV1        2  101.11  50.556  0.9342 0.4009
Residuals 42 2272.80  54.114

> anova(lm(DV ~ IV1 + IV2))                     # full model = A+B
          Df  Sum Sq Mean Sq F value   Pr(>F)    
IV1        2  101.11   50.56  1.9833   0.1509    
IV2        2 1253.19  626.59 24.5817 1.09e-07 ***
Residuals 40 1019.61   25.49                     

> anova(lm(DV ~ IV1 + IV2 + IV1:IV2))           # full model = A+B+A:B
          Df  Sum Sq Mean Sq F value    Pr(>F)    
IV1        2  101.11   50.56  1.8102    0.1782    
IV2        2 1253.19  626.59 22.4357 4.711e-07 ***
IV1:IV2    4   14.19    3.55  0.1270    0.9717    
Residuals 36 1005.42   27.93

相同的问题适用于 II 型 SS,通常适用于一般线性假设,即完整模型中受限模型和非受限模型之间的模型比较。(对于 III 型 SS,无限制模型始终是完整模型,因此问题不存在)

3个回答

这是一个非常古老的问题,我相信@gung 的回答非常好(+1)。但由于它对@caracal 来说并不完全令人信服,而且我也没有完全理解它的所有复杂性,所以我想提供一个简单的数字来说明我是如何理解这个问题的。


考虑一个双向方差分析(因子 A 具有三个水平,因子 B 具有两个水平),这两个因素显然都非常显着:

阶乘方差分析平方和

因素 A 的 SS 是巨大的。因子 B 的 SS 要小得多,但从上图中可以清楚地看出,因子 B 仍然非常重要。

包含这两个因素的模型的误差 SS 由六个高斯之一表示,当将因素 B 的 SS 与此误差 SS 进行比较时,测试将得出结论,因素 B 是显着的。

然而,仅包含因子 B 的模型的误差 SS 是巨大的!将因子 B 的 SS 与这个巨大的误差 SS 进行比较肯定会导致 B 显得不重要。显然不是这样。

这就是为什么使用完整模型中的错误 SS 是有意义的。

更新:为了澄清我在这里传递的一些观点,我添加了一些链接,指向我更全面地讨论相关想法的地方。


F 检验检查与某个因素相关的变异性(特别是均方)是否比偶然预期的更多。从平方误差的总和估计我们可能偶然预期的变化有多少,也就是说,有多少变化是由于(与)未知因素有关。这些是你的残差,在考虑了你所知道的一切之后剩下的。在你的例子中,RSSA它不仅包含残差,还包含由于已知因素导致的可变性。虽然SSA理论上会在一定程度上偶然反弹,但理论上不认为该数量是由其他已知因素驱动的1因此,不适合使用MSA作为 F 检验中的分母。此外,使用MSA+B+AB给你更多的权力,降低第二类错误的概率,不应该夸大第一类错误。

你的问题还有一些问题。你提到RSSfull并不总是最低的,在你的例子中,MSA+B+AB>MSA+B. 这是因为交互实际上与它自身的任何可变性无关。SSAB=14.19似乎只是偶然。有一个精确但有些复杂的公式可以指定如果模型中包含或排除不同的因素,功率将如何变化。我没有触手可及,但它的要点很简单:当你包含另一个因素时,RSS 会减少(给你更多的力量),但是dfR也会下降(产生更少的功率)。这种权衡的平衡主要取决于与该因素相关的 SS 是真实的,还是仅由于偶然性,在实践中,这由该因素是否显着2松散地表明。但是,从模型中消除不重要的因素以获得正确的错误项在逻辑上等同于自动模型搜索过程,即使您没有让您的软件为您自动执行此操作。你应该知道这样做有很多问题。这些问题和替代程序在 CV 3的其他地方进行了讨论。

最后一个主题涉及不同类型的 SS。首先,使用不同类型的 SS 并不会让您摆脱对分析的逻辑论证的需要。但此外,I-III 型 SS 与不同的问题有关。在您的示例中,我收集您的因素是正交的,即您进行了一个实验,您将等于 n 分配给因素水平的每个组合。但是,如果您进行观察性研究,或者如果您有辍学问题,您的因素将是相关的。这意味着没有唯一的方法来划分 SS,因此您的分析没有唯一的答案可以产生。换句话说,当您的因子相关4时,各种类型的 SS 与您的 F 检验的不同可能分子有关。

1. 请注意,对于多级模型,一个因素可以理论化为包括来自其他因素的可变性,具体取决于模型的指定方式。我在这里讨论的是普通的方差分析,这就是你所要问的。
2. 请参阅:添加第 2 个 IV 如何使第 1 个 IV 显着?
3. 参见:自动模型选择算法
4. 请参阅:如何解释 I 型(顺序)ANOVA 和 MANOVA?

理由是,与 A 模型相比,因子 A 解释了 A+B 模型中更大百分比的无法解释的变化,因为因子 B 解释了很大一部分(因此将其从分析中“移除”)。