如何用R语言rms包的residual.lrm评估逻辑回归模型拟合优度?
你对拟合优度检验的深入调研很靠谱——确实,Hosmer-Lemeshow(HL)检验的局限性已经被Hosmer本人及后续研究指出,比如它对分组数量的选择非常敏感,样本量较小时结果稳定性差,相比之下omnibus拟合优度检验(如Deviance或Pearson卡方检验)的可靠性更有保障。
关于你提到的le Cessie-van Houwelingen-Copas-Hosmer未加权平方和检验,这是HL检验的改进版本,能规避HL检验的不少缺陷,而R语言的rms包正好提供了便捷的实现方式,具体操作可以参考以下步骤:
首先加载
rms包(如果还没安装,先运行install.packages("rms")):library(rms)假设你的逻辑回归模型是用
rms包的lrm()函数构建的(比如my_model <- lrm(disease ~ age + bmi + smoke, data = patient_data)),直接调用residual.lrm()函数执行拟合优度检验:gof_test <- residual.lrm(my_model, type = "gof")参数
type = "gof"明确指定计算le Cessie-van Houwelingen的未加权平方和检验统计量及对应p值。查看检验结果:
print(gof_test)输出中的p值是关键判断依据——如果p值大于0.05(或你设定的显著性水平),说明没有足够的统计学证据拒绝“模型拟合良好”的原假设,即模型的拟合效果符合预期。
另外,omnibus拟合优度检验可以通过anova(my_model)查看,它检验的是当前模型是否显著优于仅含截距的空模型,和le Cessie-van Houwelingen检验结合使用,能更全面地评估模型的拟合表现。
内容的提问来源于stack exchange,提问作者Niraj Vyas

