【问题标题】:Using broom::glance() in conjunction with glmmTMB将 broom::glance() 与 glmmTMB 结合使用
【发布时间】:2018-04-03 10:03:47
【问题描述】:

我已经使用 glmmTMB 运行了一组 23 个模型。 (我已将模型设置为list,示例代码如下所示)

cand.models<-list()
cand.models[[1]]<-glmmTMB(count~depth + slope + SST + (1|individual), family=list(family="truncated_nbinom1", link="log"), data=df)
cand.models[[2]]<-glmmTMB(count~depth + slope + (1|individual), family=list(family="truncated_nbinom1", link="log"), data=df)

我想创建一个汇总表,提供cand.models 中包含的每个模型的偏差。我尝试使用broom::glance(),它应该创建一个“单行”摘要,其中包括偏差,以及 AIC 和 BIC 等其他内容。

summ.table<-do.call(rbind, lapply(cand.models, broom::glance))

但是,输出不包括模型偏差! (它只包括 sigma、logLik、AIC、BIC 和 df.residual)。有谁知道它为什么不提供偏差(也许是 glmmTMB 特有的问题?)。或者,有没有人有替代解决方案来提取偏差?

【问题讨论】:

  • 当我在glmmTMB 的帮助中生成一个示例模型并尝试glance 时,我收到以下错误:glance doesn't know how to deal with data of class glmmTMB。我在最新的 CRAN 版本和 broom 的开发版本中都试过这个,所以我想知道你是如何让 glanceglmmTMB 模型上工作的。当我对lmglmlmer(来自lme4 包)返回的模型对象运行glance 时,glance 确实 在输出中包含偏差。
  • 有趣。我下载了 devtools::install_github("bbolker/broom") 以便我可以使用 dotwhisker::dwplot()glmmTMB。也许这也改变了broomglmmTMB 的交互方式

标签: r broom


【解决方案1】:

跟进 cmets:"master" version of broom 不包含用于 glmmTMB 模型的 glance 方法,这意味着 glance 不适用于 glmmTMB 模型。

您正在使用的broom 版本是Ben Bolker (bbolker)forked 版本,他在其中添加了一个适用于glmmTMB 模型对象的新glance 方法。但是,此glance 方法在输出中不包含deviance。不过,由于deviance = -2*log(likelihood),您可以执行以下操作:

summ.table$deviance = -2 * summ.table$logLik

【讨论】:

  • 注意:(1) 现在有一个正在开发中的broom.mixed package 可以执行此操作。 (2) 您需要注意偏差的定义,即是 -2*log(L) 还是 -2*log(L/L_0) ?
  • 我已经安装了 bbolker 版本,它说:错误:没有类summary.glmmTMB对象的浏览方法
猜你喜欢
  • 1970-01-01
  • 2022-10-02
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多