将泊松和负二项式回归与 LR 检验进行比较

机器算法验证 泊松分布 负二项分布 似然比
2022-03-13 12:02:38

我的问题与比较负二项式模型的问题有关。我在理解UCLA 指南时遇到了一些困难(我R也在使用 )。

检查模型假设部分他们运行

pchisq(2 * (logLik(m1) - logLik(m3)), df = 1, lower.tail = FALSE)

我理解第一部分,但为什么他们将自由度设置为等于 1(df = 1)?

他们的输出是

## 'log Lik.' 2.157e-203 (df=5)

他们写

在此示例中,关联的卡方值为 926.03,具有一个自由度。这强烈表明,估计色散参数的负二项式模型比泊松模型更合适。

“926.03 有一个自由度”指的是什么?

1个回答

泊松和负二项式 (NB) 模型是嵌套的:泊松是 theta = 无穷大的特例。因此,比较两个模型的似然比检验是检验“theta = infinity”的原假设与“theta < infinity”的替代假设。这两个模型具有以下对数似然

R> logLik(m3)
'log Lik.' -1328.642 (df=4)
R> logLik(m1)
'log Lik.' -865.6289 (df=5)

因此,仅使用一个附加参数(4 个回归系数加 1 个θ),NB 模型中的拟合对数似然更大/更好。的值为m1$theta1.032713,即基本上对应于几何分布(theta = 1)。因此,与θ远低于无穷大的泊松分布相比,显然存在过度分散。(我个人的经验法则是,超过 10 的一切都已经相当接近无穷大了。)

似然比检验统计量是对数似然绝对差 (2 * (1328.642 - 865.6289) = 926.0262) 的两倍,并且必须与自由度 (df) 等于 df 差的卡方分布进行比较两个模型之间(5 - 4 = 1)。这就是上面的代码所做的。logLik()但是,对象的差异保留了"logLik"类并因此用标签和 df 显示它可能有点令人困惑。申请as.numeric()放弃课程可能会澄清这一点:

R> 2 * (logLik(m1) - logLik(m3))
'log Lik.' 926.0272 (df=5)
R> as.numeric(2 * (logLik(m1) - logLik(m3)))
[1] 926.0272

然后你可以手动计算 p 值:

R> stat <- as.numeric(2 * (logLik(m1) - logLik(m3)))
R> pchisq(stat, df = 5 - 4, lower.tail = FALSE)
[1] 2.157298e-203

还有一些函数以通用方式执行此类似然比测试,例如(lrtest()lmtest其他外):

R> library("lmtest")
R> lrtest(m3, m1)
Likelihood ratio test

Model 1: daysabs ~ math + prog
Model 2: daysabs ~ math + prog
  #Df   LogLik Df  Chisq Pr(>Chisq)    
1   4 -1328.64                         
2   5  -865.63  1 926.03  < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

最后一个细节:泊松与 NB 的似然比检验是非标准的,因为参数 theta = infinity 在参数空间的边界上。因此,卡方分布的 p 值必须减半(类似于单边检验)。当然,如果你已经有了显着的结果而没有减半,那么之后它仍然很显着......