首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用对比包对lm进行对比

使用对比包对lm进行对比
EN

Stack Overflow用户
提问于 2012-02-18 05:32:00
回答 1查看 3.2K关注 0票数 4

我正在使用contrast包在R中构建lm的对比度。通过下面的代码,我对Trt1和Trt3进行了对比。

代码语言:javascript
复制
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的平均值之间做一个对比。我使用了下面的代码

代码语言:javascript
复制
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软件包。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-18 06:04:00

您应该将包含的治疗级别指定为矢量(Trt=c("1","2")),而不是列表。我通过查看?contrast.lm中的示例了解了这一点(尽管无可否认,它有助于了解您正在寻找的是什么):

代码语言:javascript
复制
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
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9335708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档