Kontraste für lm mit Kontrastpaket
Frage
Ich verwende das Paket contrast
, um Kontraste für lm
in R
zu erstellen.Mit dem folgenden Code mache ich einen Kontrast zwischen Trt1 und 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)
Ich möchte einen Kontrast zwischen dem Durchschnitt von (Trt1 und Trt2) und Trt3 herstellen.Ich habe diesen Code verwendet
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
Ich kann sehen, dass dies nicht der gewünschte Kontrast ist.Ich frage mich, wie man den richtigen Kontrast zum contrast
-Paket in R
erhält.Jede Hilfe in dieser Hinsicht wird sehr geschätzt.Danke
P.S.Ich weiß, dass ich die Kontrastmatrix für die aov
-Funktion in R
verwenden muss, aber für dieses spezielle Problem möchte ich das contrast
-Paket verwenden.
Lösung
Sie sollten die enthaltenen Behandlungsstufen als Vektor (Trt=c("1","2")
) und nicht als Liste angeben.Ich habe dies anhand der Beispiele in ?contrast.lm
herausgefunden (obwohl es zugegebenermaßen hilfreich ist, zu wissen, wonach Sie suchen):
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