Использование предиката () с MCMCglmm - PullRequest
0 голосов
/ 20 марта 2020

Я беспокоюсь, что это уже было где-то решено, но тщательный поиск не нашел ответа, который я ищу. Я управляю моделью случайных уклонов в MCMCglmm, где у меня есть индивидуально-ковариатическое взаимодействие в отделе случайных эффектов. При использовании предиката () для получения оценок из этой модели я сталкиваюсь с ошибкой, с которой не могу справиться. В приведенном ниже простом примере (модель случайных перехватов) встречается та же ошибка, поэтому мне интересно, что я делаю не так?

Пример данных состоит из 20 индивидуумов, измеренных по 20 раз для каждого ковариата, с 10 индивидуумами в каждой из двух групп, плюс ковариата и переменная ответа (y):

set.seed(123)

dat <- data.frame(id = rep(1:5, 20),
                  group = rep(1:2, each = 50),
                  covariate = rnorm(100), 
                  y = rnorm(100))

dat

Затем я подгоняю простую модель случайных перехватов с категориальным фиксированным эффектом, непрерывным фиксированным эффектом и случайным эффектом:

library(MCMCglmm)

fit <- MCMCglmm(y ~ group + covariate, random = ~id, rcov = ~ units, data = dat,
    family = "gaussian", pr = TRUE, pl = TRUE, saveX = TRUE,  saveZ = TRUE,
    nitt = 13000, thin = 10, burnin = 3000)

summary(fit)

Затем я создаю фиктивный набор данных, чтобы получить прогнозы для первого человека в группе 1. в диапазоне ковариатных значений:

dummy <- data.frame(covariate = seq(-3, 3, 1),
                        group = rep(1, 7),
                        id = rep(1,7))
dummy$y <- 0

predict(fit, newdata = dummy)

Я получаю ошибку:

Error in predict.MCMCglmm(fit, newdata = preds, marginal = NULL) : 
  model for newdata has fixed effects absent from the original model

И я не совсем понимаю, учитывая, что все фиксированные эффекты включены в оба модель и фиктивный набор данных, и нигде нет пропущенных значений. Если бы кто-нибудь мог помочь, я был бы очень благодарен!

С наилучшими пожеланиями,

Адам

...