2012-02-17 22 views
4

我使用contrast包來構建lm的對比度R。用下面的代碼我在Trt1和Trt3之間做了對比。使用對比度包的lm對比度

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包得到正確的對比。任何在這方面的幫助將不勝感激。謝謝

P.S.我知道要使用R中的aov函數的對比矩陣,但是對於這個特殊問題我想使用contrast包。

回答

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 
+0

感謝您的全力幫助。讚賞。 – MYaseen208 2012-02-17 22:06:50