我试图用大量预测变量拟合模型,这样在模型公式中列举它们会很乏味。使用 lm() 很简单:
indicatorMatrix <- data.frame(matrix(rbinom(26000, 1, 1/3), ncol = 26))
colnames(indicatorMatrix) <- LETTERS
someDV <- rnorm(nrow(indicatorMatrix))
head(indicatorMatrix)
# One method, enumerating variables by name:
olsModel1 <- lm(someDV ~ A + B + C + D, # ...etc.
data = indicatorMatrix)
# Preferred method, including the matrix of predictors:
olsModel2 <- lm(someDV ~ as.matrix(indicatorMatrix))
summary(olsModel2)
由于我有大量的预测变量(超过本发明示例中的 26 个),我不想像第一个示例(someDV ~ A + B + C + D...
)中那样单独列出它们,我可以通过仅包括预测变量来避免这种情况as.matrix
。
但是,我想拟合一个混合效果模型,如下所示:
library(lme4)
meModel1 <- lmer(someDV ~ (1 | A) + (1 | B) + (1 | C), # ...etc.
data = indicatorMatrix)
summary(meModel1)
除了我想包含大量随机效应项。而不是必须键入(1 | A) ... (1 | ZZZ)
,我想以类似于olsModel2
上面使用的矩阵方法的方式包含每个预测变量。显然,以下内容不起作用:
meModel2 <- lmer(someDV ~ (1 | as.matrix(indicatorMatrix)))
您对如何使用 lmer() 最好地复制随机效应的矩阵预测器方法有什么建议吗?我非常愿意考虑“实用”的解决方案(即黑客),只要它们是“程序化的”并且不需要我复制和粘贴等。
在此先感谢您的时间。