比较 glm.nb 与 glm(...,negative.binomial(k),..) 模型

机器算法验证 r 方差分析 模型选择 负二项分布
2022-03-21 12:00:38

我的Y是一个计数变量,我使用负二项式函数估计它。我不确定如何确定哪种型号更好。在第一个模型中,我选择了一个值k,第二个MASS包估计值为k为了我。

将要

anova(mod1, mod2, test="Chisq") 

工作?

如果是这样,null 指的是哪个模型?

否则,有没有更好的方法来决定哪个模型更好?

library(MASS)
mod1<- glm(Y ~ X1 + X2 + X3, negative.binomial(1), myData)
mod2<- glm.nb(Y ~ X1 + X2 + X3, myData)
2个回答

卡方检验在这里是有效的,它正在检验假设

H0:ϕ=1
ϕ=1θ过度离散参数。它基本上执行似然比检验来比较两个模型(参见 ?anova)。这是有效的,因为具有固定过度分散参数的模型嵌套在自由估计过度分散的模型中。检验统计量将遵循χ12分布,因为您的扩展模型有一个额外的估计参数。如果你不确定,你总是可以在下面运行一些模拟H0来证明这个零分布。

请注意,零分布将是 0 处的点质量和χ12如果你要测试

H0:ϕ=0
,因为这会将过度分散置于参数空间的边缘。但是,这不适用于这里,因为ϕ可以缩小到小于 1 的值。

ANOVA用于比较嵌套模型,即模型M1M2其中出现的所有预测变量M1也出现在M2, 但M2包含额外的。然后,ANOVA 回答了附加预测变量解释的方差是否比我们单独偶然预期的更多的问题。

当然,也可以将其视为约束模型拟合的一个示例:我们可以看到M1包含相同的预测变量M2,但附加预测变量的参数估计值被限制为零。

您的用例是不同的,即使它也是受约束的参数估计的情况。我不知道 ANOVA 在这里是否有效。(您可以运行一些模拟。)

我会推荐一种使用的方法(简历)和如下。对于每一个k简历的折叠:

重复这个过程k次并取平均分。使用产生最小分数的模型。

需要记住的几点:

  • 我建议使用随机数生成器的不同种子多次运行整个 CV。看看一个模型在得分方面如何始终优于另一个模型。
  • 同样,使用多个不同的分数来查看您的结果有多稳健。Brier、球形和对数分数可能是最常见的分数。Merkle & Steyvers(2013,决策分析可能会有所帮助。
  • 上面的方法没有考虑参数估计的不确定性——严格来说,预测不应该使用 NB 分布,而是一个(甚至)更加过度分散的分布来解释这一点。比较我们如何使用t用于在 OLS 上下文中进行预测的分布,即使我们假设残差为正态分布。如果你想变得花哨,你可以在每个 CV 折叠中引导以解决这种不确定性,但我不知道这是否值得额外的努力。