无法使用包 DHARMa

问题描述

我曾尝试使用包 glmmTMBDHARMa 模型生成诊断图,但没有成功。此 vignette 中的示例 1.1 给出:

owls_nb1 <- glmmTMB(SiblingNegotiation ~ FoodTreatment*SexParent +
                         (1|nest)+offset(log(broodSize)),contrasts=list(FoodTreatment="contr.sum",SexParent="contr.sum"),family = nbinom1,zi = ~1,data=Owls)
plot(owls_nb1_simres <- simulateResiduals(owls_nb1) )

# Error in on.exit(add = TRUE,{ : invalid 'add' argument

同样的情况:

if (!require(RCurl)) install.packages('RCurl'); library(RCurl)
unicorns <- read.csv(text= RCurl::getURL("https://raw.githubusercontent.com/marcoplebani85/datasets/master/unicorns.csv")) 
# simulated data,obvIoUsly
unicorns_glmmTMB <- glmmTMB(Herd_size_n ~ food.quantity
                        + (1 + food.quantity | Locality)
                        + (1 + food.quantity | Year_Month),family="poisson",data=unicorns)

plot(simulateResiduals(unicorns_glmmTMB))
# Error in on.exit(add = TRUE,{ : invalid 'add' argument

如果我在 lme4::glmer 中运行相同的模型:

unicorns_glmer <- glmer(Herd_size_n ~ food.quantity
                        + (1 + food.quantity | Locality)
                        + (1 + food.quantity | Year_Month),data=unicorns)

...并将其“喂”给:

plot(simulateResiduals(unicorns_glmer))

我获得了没有问题的诊断图(顺便说一下,我知道模型 unicorns_glmer 是次优的,可以改进)。

我正在使用:

  • glmmTMB 版本 1.0.2.9000 从 github 全新安装;
  • DHARMa 0.4.1 版;
  • R 3.6.3 版;
  • MacOS Sierra 版本 10.12.6。

有人遇到过同样的问题吗?有大佬知道怎么解决吗?


编辑:我的问题最初是关于包 performanceDHARMa 如何处理 glmmTMB 对象。为了重点和清晰起见,我删除了对包 performance 的引用,从而使这个问题特定于 glmmTMBDHARMa

解决方法

看起来这是一个存在于 R bug。来自 4.0.2 版的 R NEWS file

on.exit() 现在可以正确匹配命名参数,这要归功于 Brodie Gaslam 的 PR#17815(包括补丁)。

我已尝试修复 glmmTMB 代码,以便解决该错误。

你可以试试

remotes::install_github("glmmTMB/glmmTMB/glmmTMB@on_exit_order")

看看这是否有帮助(如果没有出错,这个分支应该很快合并到 master ......)