首页 > 解决方案 > 使用更新从线性混合模型中删除协变量

问题描述

我对 R 很陌生。我有一个包含多个预测变量的线性混合模型,我想测试每个变量的重要性。我知道我可以使用 lmerTest 但我的合著者希望我对每个预测变量进行似然比检验。我想使用更新函数来获得一系列依次省略每个预测器的子模型。我尝试了以下

data(mtcars)

h=lmer(mpg ~ 1 + cyl + disp + hp + drat + (1|carb), data=mtcars)

predvars=c("cyl","disp","hp","drat")
for (i in predvars){
  modelform=update(as.formula(paste0("h, . ~ . -",i)))
  print(summary(modelform))
 } 

我收到以下错误

解析错误(文本 = x,keep.source = FALSE)::1:2:意外','1:h,^

我也尝试过使用 lapply

Fits=lapply(predvars, function(x) {update(h, .~.-i, list(i=as.name(x)))})
names(Fits)=predvars

它实际上并没有更新模型,它只是重新调整了完整的模型 i 次。我究竟做错了什么?谢谢。

标签: rloopslapplylme4

解决方案


您的第一次尝试会产生错误,因为您has.formula. 做:

  modelform <- update(h, as.formula(paste0(". ~ . -",i)))

推荐阅读