удаление ковариат из линейной смешанной модели с помощью обновления - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в 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))
 } 

Я получил следующую ошибку

Ошибка при разборе (text = 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 раза.Что я делаю неправильно?Спасибо.

1 Ответ

0 голосов
/ 20 сентября 2018

Ваша первая попытка выдает ошибку, потому что вы положили h внутрь as.formula.Do:

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