我担心以前已经解决了这个问题,但是广泛的搜索并未显示出我正在寻找的答案。我正在MCMCglmm中运行一个随机斜率模型,在该模型中,随机效应部分中存在逐变量交互作用。当使用predict()从该模型获取估计值时,我遇到了一个错误,似乎无法处理。下面的简单示例(随机拦截模型)遇到了相同的错误,因此我想知道自己在做错什么吗?
[示例数据由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
而且我并不是很了解,因为模型和虚拟数据集都包含了所有固定效果,并且任何地方都没有缺失值。如果有人可以帮助我,我将非常感激!
最诚挚的祝福,
亚当
我认为您有固定的组,如果尝试:
dummy <- data.frame(covariate = seq(-3, 3, 1),
group = c(rep(1, 3),rep(0,4)),
id = rep(1,7),y=0)
predict(fit, dummy)
这将起作用。