不同细胞中样本数量对ANOVA结果的影响

机器算法验证 方差分析 matlab 平方和
2022-03-19 14:08:06

我用 C++ 编写了一个 3-way ANOVA。我有 3 个因素,比如说 A、B 和 C,我的目标是检查所有可能的相互作用和主要影响的强度。当我使用类型 I 平方和时,我的代码的结果与 MATLAB 中的结果相同。

但是,当我更改数据以使某些单元格中的重复/样本数较高而其他单元格中的重复/样本数较低(不平衡设计)时,我得到的结果与 MATLAB 中的结果不同。(准确地说,只有 SSt、SSe 和 SSa 与 MATLAB 中的相同)。

我的问题是,是否有可能因为我的重复次数差异很大,我应该使用 III 型平方和?或者Matlab在这种情况下是否有一种特殊的方式处理数据,所以它的结果与我的不同?

1个回答

我没有 Matlab,但从我在N 路方差分析的在线帮助中读到的内容,我不清楚 Matlab 是否会type根据您的设计自动调整 (1--3)。我最好的猜测是,是的,您得到了不同的结果,因为测试的设计方式不同。

通常,对于不平衡设计,建议使用类型 III 平方和 (SS),其中每个项都在所有其他项之后进行测试(与类型 II 平方和的差异仅在存在交互项时才明显),而使用一个不完整的设计,比较 III 型和 IV 型 SS 可能会很有趣。请注意,在不平衡数据的情况下使用 III 型与 II 型需要在文献中进行讨论。

(以下内容基于我在原始网站上找不到的法语教程。这是个人副本,这是另一篇论文,讨论了在阶乘方差分析中计算 SS 的不同方法:哪些平方和在不平衡中最好方差分析?

I/II 型和 III 型(也称为 Yates 加权均方)的区别在于计算 SS 时作为参考模型的模型,以及因素是否按照它们进入模型的顺序进行处理。假设我们有两个因子 A 和 B,以及它们的交互作用 A*B,以及一个像 y ~ A + B + A:B 的模型(威尔金森符号)。

对于 I 型 SS,我们首先计算与 A 相关联的 SS,然后是 B,最后是 A*B。这些 SS 被计算为最大模型(忽略感兴趣的术语)和最小模型(包括它)之间的剩余 SS (RSS) 差异。

对于类型 II 和 III,SS 以连续方式计算,从与 A*B 关联的那些开始,然后是 B,最后是 A。对于 A*B,它只是完整模型中的 RSS 与 RSS 之间的差异在没有交互的模型中。与 B 关联的 SS 计算为省略 B 的模型和包含 B 的模型(参考模型)的 RSS 之间的差异;对于 III 型 SS,参考模型是完整模型 (A+B+A*B),而对于 I 型和 II 型 SS,它是加法模型 (A+B)。这解释了为什么当完整模型中不存在交互时,类型 II 和 III 将相同。然而,为了获得第一个 SS,我们需要使用虚拟变量来编码因子的水平,或者更准确地说,这些虚拟编码水平之间的差异(这也意味着为给定因子考虑的参考水平很重要;例如,SAS 考虑最后一级,而 R 考虑第一个,按字典顺序)。为了计算 A 项的 SS,我们遵循相同的想法:我们考虑模型 A+B+A*B 和简化模型 B+A*B(A 省略)的 RSS 之间的差异,如果III型不锈钢;对于 II 型 SS,我们考虑 A+B 与 B。

请注意,在完全平衡的设计中,所有 SS 都将相等。此外,对于 I 型 SS,无论模型中项的顺序如何,所有 SS 的总和将等于整个模型的总和。(这不适用于 II 型和 III 型 SS。)

Howell 的讲义中提供了对不同方法的详细而具体的概述:直接使用一般线性模型计算 I 型、II 型和 III 型平方和这可能会帮助您检查您的代码。您还可以将 R 与car包一起使用,John Fox 在他的教科书、应用回归分析、线性模型和相关方法(Sage Publications,1997,第 8.2.4--8.2 节)中讨论了增量平方和的使用。 6)。可以在Daniel Wollschläger网站上找到使用示例。

最后,以下论文对 III 型 SS(第 5.1 节)的使用进行了很好的讨论:

维纳布尔斯,WN(2000 年)。线性模型的注释。1998 年 10 月 8 日至 9 日在华盛顿特区的 S-PLUS 用户大会上提交的论文。

(另请参阅此R 帮助线程、其中的参考资料以及以下文章Anova – I/II/III 型 SS 解释。)