在multcomp :: glht中对具有交互作用的混合效应模型(lme4)进行事后测试


10

我正在Rlme4包)中的线性混合效应模型上执行事后测试。我正在使用multcomp包(glht()函数)执行事后测试。

我的实验设计是重复测量,具有随机阻塞效应。这些模型被指定为:

mymod <- lmer(variable ~ treatment * time + (1|block), data = mydata, REML = TRUE)

而不是在这里附上我的数据,我叫了数据的工作过warpbreaks的内multcomp包装。

data <- warpbreaks
warpbreaks$rand <- NA

我添加了一个额外的随机变量来模拟我的“阻止”效果:

warpbreaks$rand <- rep(c("foo", "bar", "bee"), nrow(warpbreaks)/3)

这模仿了我的模型:

mod <- lmer(breaks ~ tension * wool + (1|rand), data = warpbreaks) 

我知道“ 其他Multcomp示例-2 Way Anova”中的示例。该示例使您可以比较的张力水平wool

如果我想做相反的事情-比较wool内的水平tension怎么办?(在我的情况下,这将是在时间水平(三至六月,七月,八月)内比较治疗水平(二至零,一)。

我已经提出了以下代码来执行此操作,但是它似乎不起作用(请参见下面的错误消息)。

首先,从示例(有wooltension交换位置)开始:

tmp <- expand.grid(wool = unique(warpbreaks$wool), tension = unique(warpbreaks$tension))
X <- model.matrix(~ tension * wool, data = tmp)
glht(mod, linfct = X)

Tukey <- contrMat(table(warpbreaks$wool), "Tukey")

K1 <- cbind(Tukey, matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)))
rownames(K1) <- paste(levels(warpbreaks$tension)[1], rownames(K1), sep = ":")

K2 <- cbind(matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)), Tukey)
rownames(K2) <- paste(levels(warpbreaks$tension)[2], rownames(K2), sep = ":")

从这里到底部,我自己的代码:

K3 <- cbind(matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)), Tukey)
rownames(K2) <- paste(levels(warpbreaks$tension)[3], rownames(K3), sep = ":")

K <- rbind(K1, K2, K3)
colnames(K) <- c(colnames(Tukey), colnames(Tukey))

> summary(glht(mod, linfct = K %*% X))
Error in summary(glht(mod, linfct = K %*% X)) : 
  error in evaluating the argument 'object' in selecting a method for function 'summary': Error in K %*% X : non-conformable arguments

Answers:


6

使用lsmeans包要容易得多

library(lsmeans)
lsmeans(mod, pairwise ~ tension | wool)
lsmeans(mod, pairwise ~ wool | tension)

太好了!谢谢。注意:此代码仅在将重复变量从数值(3&6)更改为字母值(A&B)后才对我的数据有效。

好吧,这很重要!因为它是带有数字预测变量的不同模型time。我怀疑您想要它作为一个因素。
Russ Lenth

如何将其推广到更多预测变量?例如,如果我有3个预测变量,它是如何工作的?

1
@havefun请查看help("lsmeans", package = "lsmeans")vignette("using-lsmeans")。有很多文档和许多示例。
Russ Lenth'8

1
计算每种方法获得的比较次数,它们并不相同。另请阅读多项测试调整。当您拥有较大的测试系列时,调整后的P值将与较小的测试系列不同。使用by变量时,调整将分别应用于每个集合。
Russ Lenth
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.