无法使用包 DHARMa 生成 glmmTMB 诊断图
Failing to produce glmmTMB diagnostics plots with package DHARMa
我尝试使用包 DHARMa
为 glmmTMB
模型生成诊断图,但没有成功。 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),
family="poisson",
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.
有没有人遇到过同样的问题?有人知道怎么解决吗?
编辑: 我的问题最初是关于包 performance
和 DHARMa
如何处理 glmmTMB
对象。为了重点和清晰起见,我删除了对包 performance
的引用,从而使这个问题特定于 glmmTMB
和 DHARMa
。
看起来这是一个 bug that was present in R <= 4.0.1. From the R NEWS file 版本 4.0.2:
on.exit() now correctly matches named arguments, thanks to PR#17815 (including patch) by Brodie Gaslam.
我已尝试修复 glmmTMB 代码以解决该错误。
你可以试试
remotes::install_github("glmmTMB/glmmTMB/glmmTMB@on_exit_order")
看看是否有帮助(如果没有出错,这个分支应该很快合并到 master 中......)
我尝试使用包 DHARMa
为 glmmTMB
模型生成诊断图,但没有成功。 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),
family="poisson",
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.
有没有人遇到过同样的问题?有人知道怎么解决吗?
编辑: 我的问题最初是关于包 performance
和 DHARMa
如何处理 glmmTMB
对象。为了重点和清晰起见,我删除了对包 performance
的引用,从而使这个问题特定于 glmmTMB
和 DHARMa
。
看起来这是一个 bug that was present in R <= 4.0.1. From the R NEWS file 版本 4.0.2:
on.exit() now correctly matches named arguments, thanks to PR#17815 (including patch) by Brodie Gaslam.
我已尝试修复 glmmTMB 代码以解决该错误。
你可以试试
remotes::install_github("glmmTMB/glmmTMB/glmmTMB@on_exit_order")
看看是否有帮助(如果没有出错,这个分支应该很快合并到 master 中......)