作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试评估 R 中多个回归的模型拟合,但我遇到了一个我现在遇到过多次的问题:我的泊松回归的对数似然是无限的。
我使用的是非整数因变量(注意:我知道我在这方面做了什么),我想知道这是否是问题所在。但是,在使用 glm.nb
运行回归时,我没有得到无限对数似然。
重现问题的代码如下。
编辑:当我将 DV 强制为整数时,问题似乎消失了。知道如何从具有非整数 DV 的泊松中获得对数似然吗?
# Input Data
so_data <- data.frame(dv = c(21.0552722691125, 24.3061351414885, 7.84658638053276,
25.0294679770848, 15.8064731063311, 10.8171744654056, 31.3008088413026,
2.26643928259238, 18.4261153345417, 5.62915828161753, 17.0691184593063,
1.11959635820499, 30.0154935602592, 23.0000809735738, 28.4389825676123,
27.7678405415711, 23.7108405071757, 23.5070651053276, 14.2534787168392,
15.2058525068363, 19.7449094187771, 2.52384709295823, 29.7081691356397,
32.4723790240354, 19.2147002673637, 61.7911384519901, 10.5687170234821,
23.9047421013736, 18.4889651451222, 13.0360878554798, 15.1752866581849,
11.5205948111817, 31.3539840929108, 31.7255952728076, 25.3034625215724,
5.00013988265465, 30.2037887018226, 1.86123112349445, 3.06932041603219,
22.6739418581257, 6.33738321053804, 24.2933951601142, 14.8634827414491,
31.8302947881089, 34.8361908525564, 1.29606416941288, 13.206844629927,
28.843579313401, 25.8024295609021, 14.4414831628722, 18.2109680632694,
14.7092063453463, 10.0738043919183, 28.4124482962025, 27.1004208775326,
1.31350378236957, 14.3009307888745, 1.32555197766214, 2.70896028922312,
3.88043749517381, 3.79492216916016, 19.4507965653633, 32.1689088941444,
2.61278585713499, 41.6955885902228, 2.13466761675063, 30.4207256294235,
24.8231524369244, 20.7605955978196, 17.2182798298094, 2.11563574288652,
12.290778250655, 0.957467139696772, 16.1775287334746))
# Run Model
p_mod <- glm(dv ~ 1, data = so_data, family = poisson(link = 'log'))
# Be Confused
logLik(p_mod)
最佳答案
详细说明@ekstroem 的评论:泊松分布仅在非负整数(0、1、...)上受支持。因此,从技术上讲,任何非整数值的概率都是零——尽管 R 确实允许 一点模糊,以考虑舍入/浮点表示问题:
> dpois(1,lambda=1)
[1] 0.3678794
> dpois(1.1,lambda=1)
[1] 0
Warning message:
In dpois(1.1, lambda = 1) : non-integer x = 1.100000
> dpois(1+1e-7,lambda=1) ## fuzz
[1] 0.3678794
理论上可以为非整数值计算类似泊松对数似然的东西:
my_dpois <- function(x,lambda,log=FALSE) {
LL <- -lambda+x*log(lambda)-lfactorial(x)
if (log) LL else exp(LL)
}
但我会非常小心 - 一些使用 integrate
的快速测试表明它集成到 1(在我修复了其中的错误之后),但我还没有检查更仔细地说,这确实是一个适定的概率分布。 (另一方面,一些看似合理的 posts on CrossValidated 表明它并不疯狂......)
你说“我知道我在这方面做了什么”;你能提供更多的上下文吗?一些替代的可能性(尽管这是转向 CrossValidated 领域)——最佳答案取决于您的数据真正来自何处(即,为什么您拥有非“类似计数”的数据整数,但你认为应该被视为泊松)。
family=quasipoisson
)。 (在这种情况下,R 仍然不会为您提供对数似然值或 AIC 值,因为从技术上讲它们不存在——您应该根据参数的 Wald 统计数据进行推断;参见例如 here更多信息。)nlme::gls
)关于r - 为什么我的泊松回归的似然/AIC 是无限的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859906/
我是一名优秀的程序员,十分优秀!