参数自助法拟合优度检验时nsim无法超过99是否为unmarked包的bug
unmarked包parboot函数nsim=100时无迭代报告问题解答
问题性质说明
这个现象不是unmarked包的bug,属于函数的预设逻辑行为。
原因解释
unmarked包的parboot函数内置了自动并行触发规则:
- 当
nsim < 100时,默认使用串行模式运行,此时report参数生效,会打印每一轮迭代的统计量结果 - 当
nsim ≥ 100时,默认自动启用多核并行计算,并行模式下report参数会失效,因此不会输出逐轮迭代的统计量,仅提示「Bootstrapped statistics not reported」
验证方法
运行结束后调用pb@t即可查看所有100次自助法模拟得到的拟合统计量结果,所有计算结果都是完整存储的,不存在运行异常。
解决方案
如果需要查看迭代报告,可以在调用parboot时手动关闭并行模式:
(pb <- parboot(fm, fitstats, nsim=100, report=1, parallel=FALSE))
如果需要保留并行提升计算效率,接受无迭代报告的提示即可,计算结果不会受影响。
内容的提问来源于stack exchange,提问作者Emily
相关产品推荐
相关产品推荐

