在 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 帧,并打印 m
、n
、mu
和 [=15= 的值] 被传递给 dbetabin
。你会看到 k
是负数。
您可以通过设置 phi.scale="log"
来解决这个问题,这将在对数尺度上拟合色散参数(无论如何这更有意义)。
当我尝试使用 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 帧,并打印 m
、n
、mu
和 [=15= 的值] 被传递给 dbetabin
。你会看到 k
是负数。
您可以通过设置 phi.scale="log"
来解决这个问题,这将在对数尺度上拟合色散参数(无论如何这更有意义)。