【问题标题】:Using predict() with MCMCglmm将 predict() 与 MCMCglmm 一起使用
【发布时间】:2020-03-20 10:48:08
【问题描述】:

我担心这个问题之前已经在某个地方得到解决,但是广泛的搜索并没有找到我正在寻找的答案。我在 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

而且我不太明白,因为所有固定效应都包含在模型和虚拟数据集中,并且任何地方都没有缺失值。如果有人能提供帮助,我将不胜感激!

祝你好运,

亚当

【问题讨论】:

    标签: r predict mcmc


    【解决方案1】:

    如果你尝试,我认为你有一个恒定的群体:

    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)
    

    这会起作用。

    【讨论】:

    • 我相信用户希望群组保持不变1
    【解决方案2】:

    仅晚了 18 个月,但是...我只是尝试在模型结果上运行 predict.MCMCglmm 并使用截距加随机效应,而没有创建虚拟数据集,并且结果预测忽略了随机效应(它们对于每个数据点都是相同的)。我认为您的问题是“id”是随机效应而不是固定效应。该错误明确提到了缺少固定效果。

    【讨论】:

      猜你喜欢
      • 2012-01-19
      • 2013-11-27
      • 2012-07-15
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 2018-10-07
      相关资源
      最近更新 更多