【发布时间】:2012-06-04 05:59:18
【问题描述】:
使用 R (contr.treatment) 中的默认对比,线性模型对象的摘要根据级别名称给出行名称。当我将对比度更改为 contr.sum 时,线性模型对象的摘要会根据组成的数字给出行名称。
对于下面的示例代码,处理对比的行名称是 xa xb xc xd xe,对于总对比,它们是 x1 x2 x3 x4 x5。
除了手动重命名行之外,还有其他方法可以使它们的行为方式相同吗?
示例:
y <- rnorm(10, 0, 1)
x <- factor(rep(letters[1:5], each = 2))
options(contrasts = c("contr.treatment", "contr.poly"))
summary(lm(y ~ x))
options(contrasts = c("contr.sum", "contr.poly"))
summary(lm(y ~ x))
【问题讨论】:
-
但它们不一样,不是吗?使用不同的对比意味着系数有不同的解释,那么为什么要给它们贴上相同的标签呢?
-
@joran,如果行标有组名,会改变您的解释吗?
-
嗯,解释是不同的,不管它们在 R 的输出中是如何标记的。如果您只是想给它们贴上不同的标签,那么我认为您会在事后进行更改。我只是担心你解释总和对比的方式与你解释治疗对比的方式相同,但它们并不完全相同。
-
我在这上面花了一点时间,并将其追溯到
model.matrix。它仅适用于将对比度设置为默认值以外的其他值的情况。我同意@joran,我认为你被卡住了。 (您也可以明确设置对比并命名它们的列,然后将它们分配给特定的因素。) -
查看
car包中的contr.Treatment,了解如何使用不同名称的对比创建对比函数。