Создание прогнозируемых значений из смешанной модели с удаленным перехватом - PullRequest
1 голос
/ 30 марта 2020

У меня возникли проблемы с использованием предиката для генерирования прогнозируемых значений из моей смешанной модели с удаленным перехватом.

моделируемый набор данных

logreads <- rep(1:16, 20)
arthropod <- rep(c("mealworm", "spider"), 160)
bird <- rep(c("GY", "NF"), 160)
noop <- rep(c("WOTH293", "WOTH294"), 16)
massin <- rnorm(160, mean=10, sd=5) 
m8 <-  data.frame(cbind(logreads, arthropod, massin, bird, noop)) 
colnames(m8) <- c("logreads", "arthropod", "massin", "bird", "noop")
m8$massin <- as.numeric(as.character(m8$massin))
m8$logreads <- as.numeric(as.character(m8$logreads))

модель с удаленным перехватом

library(lme4)
lm1 <- lmer(logreads ~ 0 + arthropod*massin + (1|bird) + (1|noop), data=m8, REML=FALSE)

матрица прогнозирования здания

arthropod <- rep(c("mealworm"), 16)
bird <- rep(c("GY"), 16)
noop <- rep(c("WOTH293"), 16)
massin <- 0:15 
pred.mx <-  data.frame(cbind(arthropod, massin, bird, noop)) 
colnames(pred.mx) <- c("arthropod", "massin", "bird", "noop")
pred.mx$massin <- as.numeric(as.character(pred.mx$massin))

расчет прогнозируемых значений

library("merTools")
predictInterval(lm1, newdata=pred.mx, level=0.95, n.sims=999, include.resid.var=FALSE)

Я получаю сообщение об ошибке "Ошибка в model.frame.default (суббары (формула (merMod)), данные = новые данные): переменные длины различаются (найдено для" членистоногих ")"

В другой итерацииw (с реальными данными) я получаю "Ошибка в eval (predvars, data, env): объект 'logreads' не найден"

preds(lm1) # отметим, что это работает просто отлично

вести нахождения в предикате () отлично работает на той же модели, что и выше, но удаляет команду "+0" ie, которая удаляет перехват

I Полагаю, что, указав «+0», ForegnateInterval () теряет отслеживание столбцов в newdata, но я уверен, что это ошибка в моем коде.

Обратите внимание, что я не возражаю против предупреждающих сообщений, поскольку данные здесь симулируются. Я также обновился до последней версии merTools (0.5), в которой утверждается, что она исправила эту проблему с моделями с удаленным перехватом, но это не так.

...