在 aods3 包中使用 aodml beta-binomial 模型时产生的 NaN

NaNs produced when using aodml beta-binomial model in aods3 package

当我尝试使用 aodml 函数用我自己的数据拟合 beta-binomial 分布 GLM 时,我收到一条警告消息,指出生成了 NaN。当我尝试 运行 使用 aods3 包示例中给出的数据集的相同函数时,我收到相同的警告消息。

代码:

library(aods3)
data(orob2)
fm1<-aodml(cbind(m, n-m)~seed, data=orob2, family="bb")

Warning messages:
1: In lbeta(a, b): NaNs produced

我知道警告是由 cbind(m, n-m) 引起的,但我不知道为什么或如何?任何想法,特别奇怪,因为示例数据正在发生这种情况?我在这里遗漏了什么吗?

这里的问题是优化过程在整个过程中尝试了色散参数的负值。您可以通过设置

自己查看
options(warn=2, error=recover)

指定将警告转换为错误,并且错误触发调试模式。执行此操作后,re-run aodml(...) 命令,选择第 4 帧,并打印 mnmu 和 [=15= 的值] 被传递给 dbetabin。你会看到 k 是负数。

您可以通过设置 phi.scale="log" 来解决这个问题,这将在对数尺度上拟合色散参数(无论如何这更有意义)。