【问题标题】:Different Contrasts Results for Aov and lm in RR中Aov和lm的不同对比结果
【发布时间】:2013-07-02 22:56:39
【问题描述】:

我无法让我的 aov() 和 lm() 对比在 R 中匹配。我很确定这是因为我不完全了解发生了什么或如何指定适当的对比,但我想我还是会问。

R 默认情况下对 lm() 和 aov() 都使用处理对比,这意味着它将因子的每个水平与基线水平进行对比。我可以在 lm() 的结果中看到这一点:

data(InsectSprays)

lmMod <- lm(count ~ spray, data=InsectSprays)
summary(lmMod)

将截距添加到每个系数会得到与 tapply() 计算的相同的平均值。但是,尝试使用 aov() 重现这些对比会得到不同的结果。

model1 <- aov(count ~ spray, data = InsectSprays)

summary(model1, split=list(spray=list("Cont1"=1, "Cont2"=2, 
        "Cont3" = 3,  "Cont4" = 4, "Cont5" = 5)))

这里,最后一个 p 值与 lm 中的对比度相同(p = 0.181),但 aov() 对比表明喷雾 B 与喷雾 A 不同(p

我尝试使用归零效应自己重新编码对比:

c1 <- c(-1, 1, 0, 0, 0, 0)
c2 <- c(-1, 0, 1, 0, 0, 0)
c3 <- c(-1, 0, 0, 1, 0, 0)
c4 <- c(-1, 0, 0, 0, 1, 0)
c5 <- c(-1, 0, 0, 0, 0, 1)

contMat <- cbind(c1, c2, c3, c4, c5)
contrasts(InsectSprays$spray) <- contMat

model2 <- aov(count ~ spray, data = InsectSprays)

summary(model2, split=list(spray=list("Cont1"=1, "Cont2"=2, 
        "Cont3" = 3,  "Cont4" = 4, "Cont5" = 5)))

现在,第一个对比给出了与 lm 相同的 p 值(p = 0.604),但最后一个对比表明治疗 F 与 A 显着不同(p

我觉得我错过了一些基本的东西,但我一直无法弄清楚。任何帮助将不胜感激。

【问题讨论】:

  • 对于最后一种方法,如果在所有 c1,..c6 中使用 0 表示 -1,您将得到 0.181,但对于第一个 phere

标签: r statistics


【解决方案1】:

aov 正在做顺序平方和(类型 I); lm 正在做调整平方和(类型 II)。

要进行比较,请使用 lm 和手动计算的虚拟变量。

d2 <- data.frame(cbind(count=InsectSprays$count, model.matrix(~spray, data=InsectSprays)))
m2 <- lm(count~0+.,d2)
anova(m2)
summary(m2)

anova 为您提供与您的aov 结果相同的结果,而summary 为您提供与您的lm 结果相同的结果。

【讨论】:

  • 那是有道理的。我想我现在困惑的地方是 SS 的类型在进行对比时的重要性。我认为对比度 SS 是独立于其他计算的。
  • 不一定,如您所见。通常用于对比,不计算 SS,而只是使用摘要中的协方差矩阵。我使用multcomp 包来简化计算。或者对于我想要所有成对比较的单向方差分析的标准情况,TukeyHSD 函数。
  • 感谢您的帮助!我想我只是假设一个人为 ANOVA 计算 SS,然后在 F 检验中使用 MSE 作为 SS 的分母,这是在之后计算的。这就是我在网上阅读的所有内容的描述。显然,我有一些阅读要做。
猜你喜欢
  • 2020-10-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 2021-01-13
  • 2023-03-12
  • 2022-01-10
相关资源
最近更新 更多