我有一些实际数据,恐怕有些令人讨厌。
它本质上是一个正负二项分布(没有任何零计数)。但是,有些异常值似乎会导致一些错误的计算发生(可能是下溢或 NaN?)前 8 个左右的条目是合理的,但我猜最后几个会导致拟合出现一些问题。
这是数据:
> df
counts t
1 1968 1
2 217 2
3 55 3
4 26 4
5 11 5
6 5 6
7 8 7
8 3 8
9 1 10
10 1 11
11 1 12
12 1 13
13 1 15
14 1 18
15 1 26
16 1 59
该命令运行一段时间,然后吐出错误消息
> vglm(counts ~ t, data=df, family = posnegbinomial)
Error in if (take.half.step) { : missing value where TRUE/FALSE needed
但是,如果我重新运行这个切断异常值,我会得到一个 posnegbinomial 的解决方案
> vglm(counts ~ t, data=df[1:9,], family = posnegbinomial)
Call:
vglm(formula = counts ~ t, family = posnegbinomial, data = df[1:9,])
Coefficients:
(Intercept):1 (Intercept):2 t
7.7487404 0.7983811 -0.9427189
Degrees of Freedom: 18 Total; 15 Residual
Log-likelihood: -36.21064
如果我尝试家庭 pospoisson(正泊松:没有零值),我会收到类似的错误“参数不可解释为逻辑”。
我确实注意到 Stackoverflow 中有许多类似的问题,关于需要 TRUE/FALSE 的缺失值,但对于其他 R 包。这向我表明,也许包编写者需要更好地预测计算可能会失败。