对比度lm使用对比度包

时间:2012-02-17 21:32:00

标签: r contrast

我正在使用contrast包来构建lmR的对比。使用以下代码,我在Trt1和Trt3之间进行对比。

Y <- c(10, 12, 14, 16, 9, 8)
Trt <- gl(n=3, k=2, length=3*2)
Data1 <- data.frame(Y, Trt)

Data1.lm <- lm(Y~Trt, data = Data1)

library(contrast)
Contrs1 <- contrast(Data1.lm, a=list(Trt="1"), b=list(Trt="3"), type = "average")
print(Contrs1, X=TRUE)

我想在(Trt1和Trt2)和Trt3的平均值之间进行对比。我用过这段代码

Contrs2 <- contrast(Data1.lm, a=list(Trt="1", Trt="2"), b=list(Trt="3"), type = "average")
print(Contrs2, X=TRUE)

lm model parameter contrast

  Contrast     S.E.    Lower    Upper    t df Pr(>|t|)
1      6.5 1.224745 2.602315 10.39768 5.31  3   0.0131

Contrast coefficients:
  (Intercept) Trt2 Trt3
1           0    1   -1

我可以看到这不是理想的对比。我想知道如何与contrast中的R包进行正确对比。在这方面的任何帮助将受到高度赞赏。感谢

P.S。我知道在aov中使用R函数的对比矩阵,但对于这个特殊问题,我想使用contrast包。

1 个答案:

答案 0 :(得分:6)

您应该将包含的治疗水平指定为矢量(Trt=c("1","2")),而不是列表。我通过查看?contrast.lm中的示例来解决这个问题(虽然无可否认地知道你在寻找什么):

Contrs2 <- contrast(Data1.lm, a=list(Trt=c("1","2")), b=list(Trt="3"),
                    type = "average")
print(Contrs2, X=TRUE)
## lm model parameter contrast
##   Contrast    S.E.    Lower    Upper    t df Pr(>|t|)
## 1      4.5 1.06066 1.124506 7.875494 4.24  3    0.024