如何绘制新数据的预测与 R 中的 gee、lme、glmer 和 gamm4 相匹配?

Posted

技术标签:

【中文标题】如何绘制新数据的预测与 R 中的 gee、lme、glmer 和 gamm4 相匹配?【英文标题】:How do I plot predictions from new data fit with gee, lme, glmer, and gamm4 in R? 【发布时间】:2012-02-29 13:29:33 【问题描述】:

我已使用各种函数拟合我的离散计数数据以进行比较。我使用 geepack 拟合 GEE 模型,使用 lme (nlme) 在 log(count) 上的线性混合效应模型,使用 glmer () 的 GLMM lme4),以及在 R 中使用 gamm4 (gamm4) 的 GAMM。

我有兴趣比较这些模型,并希望绘制一组新数据(预测变量)的预期(预测)值。我的目标是比较每个模型在特定条件下的预测效果(x 变量)。特别令人感兴趣的是边际 (GEE) 和条件估计之间的比较。

我认为我的主要问题可能是使用正确的标签和属性等以正确的形式获取新数据。我仍然是一个 R 新手,并且在这些东西上苦苦挣扎(不幸的是,我的大学没有这方面的课程)。

我目前有合适的模型

gee1 lme1 lmer1 gamm1

并且可以毫无问题地提取它们的固定效应系数和标准误差。我也没有问题将它们从对数尺度转换或估计考虑随机效应的置信区间。

我还有我的新数据框 newdat,其中包含 23 个变量的 365 个观测值(一年中每一天的平均环境数据)。

我被困在如何从中预测新的计数估计值上。我玩弄了 model.matrix 函数,但无法让它工作。例如,我试过:

mm = model.matrix(terms(glmm1), newdat) # Error in model.frame.default(object, 
                                        # data, xlev = xlev) : object is not a matrix
newdat$pcount = mm %*% fixef(glmm1)

任何建议或良好的参考将不胜感激。任何人都可以帮助解决上述错误吗?

【问题讨论】:

为您的每个模型调用predict(..., newdata=newdat) 怎么样? @VincentZoonekynd,predict() 在 lmer() 上不起作用 你试过glmm.wikidot.com/faq的食谱吗...? 谢谢,我不记得在哪里找到了 mm = model.matrix(terms(glmm1), newdat) 行。但是,当我尝试此操作时出现错误(如上所述)。 newdat 是一个数据框,所以我不知道问题出在哪里。 就其价值而言,lme4predict 功能在去年有了很大改进。您仍然需要类似链接食谱之类的东西来获得预测的标准错误(在任何情况下都有一些问题),但predict(model) 应该可以正常工作。 【参考方案1】:

获取 lme() 和 lmer() 的预测记录在 http://glmm.wikidot.com/faq

【讨论】:

这就是错误代码的来源。我不知道为什么会出现这个错误。 你能发布一个可重现的例子吗?

以上是关于如何绘制新数据的预测与 R 中的 gee、lme、glmer 和 gamm4 相匹配?的主要内容,如果未能解决你的问题,请参考以下文章

如何预测 merMod 对象(lme4)的术语?

如何在 R 中绘制回归树的预测值与实际值? [关闭]

R:聚类——如何预测新病例?

如何使用 R 中经过训练的分类器预测新数据集?

从 lme 拟合中提取预测带

从 R 中的 emmeans 中删除一个对比