回归与方差分析差异(R 中的 aov 与 lm)

机器算法验证 r 回归 方差分析
2022-01-17 10:03:54

我一直认为回归只是 ANOVA 的一种更一般的形式,结果是相同的。然而,最近,我对相同的数据进行了回归和方差分析,结果差异很大。也就是说,在回归模型中,主效应和交互作用都是显着的,而在 ANOVA 中,一个主效应不显着。我希望这与交互有关,但我不清楚这两种建模同一问题的方式有什么不同。如果它很重要,一个预测变量是分类的,另一个是连续的,如下面的模拟所示。

这是我的数据是什么样子以及我正在运行什么分析的示例,但结果中没有相同的 p 值或影响显着(我的实际结果在上面概述):

group<-c(1,1,1,0,0,0)
moderator<-c(1,2,3,4,5,6)
score<-c(6,3,8,5,7,4)

summary(lm(score~group*moderator))
summary(aov(score~group*moderator))
3个回答

summary函数根据对象的类调用不同的方法。区别不在于aovvs lm,而在于提供的有关模型的信息。例如,如果您使用anova(mod1)andanova(mod2)代替,您应该得到相同的结果。

正如@Glen 所说,关键是报告的测试是基于类型 1 还是类型 3 的平方和。当您的解释变量之间的相关性不完全为 0 时,这些会有所不同。当它们相关时,一些 SS 对一个预测变量是唯一的,而对另一个预测变量是唯一的,但一些 SS 可能归因于其中一个或两个。您可以通过想象万事达卡符号来形象化这一点——中心有一小块重叠区域。)在这种情况下没有唯一的答案,不幸的是,这是非实验数据的常态。一种方法是让分析师使用他们的判断并将重叠的 SS 分配给其中一个变量。该变量首先进入模型。第二个变量进入模型,得到看起来像一个被咬了一口的饼干的 SS。它的效果可以通过有时被称为R2改变或F改变。这种方法使用 1 型 SS。或者,您可以这样做两次,每次先进入,然后报告两个预测变量的 F 变化测试。这样,两个变量都不会因为重叠而得到 SS。这种方法使用 3 型 SS。(我还应该告诉你,后一种方法被忽视了。)

按照下面评论中@BrettMagill 的建议,我可以尝试让这一点更清楚一点。(请注意,在我的示例中,我只使用了 2 个预测变量并且没有交互,但是这个想法可以扩大到包括你喜欢的任何内容。)

类型 1:SS(A) 和 SS(B|A)

类型 3:SS(A|B) 和 SS(B|A)

aov 输出的结果为您提供基于类型 1 平方和的概率。这就是为什么交互结果相同而主效应不同的原因。

如果您使用基于类型 3 平方和的概率,那么它们将匹配线性回归结果。

library(car)
Anova(aov(score~group*moderator),type=3)

线性回归和方差分析之间的主要区别在于,在方差分析中,预测变量是离散的(即它们具有不同的水平)。而在线性回归中,预测变量是连续的。