在R中使用logistf做逻辑回归时如何计算残差偏差?
logistf逻辑回归模型残差偏差计算方法
残差偏差本质是衡量当前拟合模型和完美拟合的饱和模型之间的差异,计算公式统一为:残差偏差 = 2 * (饱和模型对数似然值 - 当前拟合模型的对数似然值)
你不需要手动从summary输出里推导结果,logistf包已经在返回的拟合结果对象中内置了直接可用的残差偏差结果,你只需要运行一行代码即可提取:
res$deviance
如果需要自行验证计算逻辑,可以参考以下步骤:
- 逻辑回归的饱和模型对每个观测分配1个独立参数,完美拟合所有观测点,因此饱和模型的对数似然值为0
- 提取当前你拟合的惩罚逻辑回归模型的对数似然值:
logLik(res) - 代入上述公式即可得到残差偏差:
2 * (0 - as.numeric(logLik(res)))
注意事项:
- 你开启了
firth = TRUE使用Firth惩罚回归解决完全分离问题,此处计算得到的残差偏差是基于惩罚后似然的结果,和普通glm输出的未惩罚残差偏差有差异 - 你summary输出中给出的895.6586是当前模型和仅含截距的空模型的似然比检验卡方值,和残差偏差的定义不同,不能直接用该数值推导残差偏差
内容的提问来源于stack exchange,提问作者katht
相关产品推荐
相关产品推荐

