【问题标题】:Contrasts for lm using contrast package使用对比包的 lm 对比
【发布时间】:2012-03-09 07:01:59
【问题描述】:

我正在使用contrast 包为R 中的lm 构造对比。通过以下代码,我在 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

我可以看出这不是我们想要的对比。我想知道如何获得与R 中的contrast 包的正确对比。在这方面的任何帮助将不胜感激。谢谢

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

【问题讨论】:

    标签: r contrast


    【解决方案1】:

    您应该将包含的处理级别指定为向量 (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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 2015-05-23
      • 2016-02-16
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多