Statsmodels RLM拟合summary中Norm与传入TukeyBiweight不符问题
问题原因
这是statsmodels库的摘要输出逻辑bug,不会影响模型实际拟合结果,具体原因:
- 你传入的
sm.robust.norms.TukeyBiweight()范数在IRLS拟合流程中是正常生效的,summary里Norm字段显示错误纯粹是显示层问题,不是传参失败、模型偷偷换了范数。 - 这个bug存在于0.13及更早版本的statsmodels里:RLM模型的summary生成代码中,Norm字段的文本是硬编码写死的
HuberT字符串,根本没有读取模型实例实际配置的M估计范数属性。不管你传TukeyBiweight、Hampel还是其他鲁棒范数,默认summary输出的这一栏都会固定显示HuberT。 - 要验证实际使用的范数很简单,直接执行
print(rlm_results.mnorm),输出就会是你传入的TukeyBiweight实例,和拟合时的配置完全一致。 - 结果末尾那段关于模型实例复用的提示是RLM结果类自带的固定模板文本,和当前Norm字段显示错误没有关系,只要你没有拿同一个RLM实例传不同参数反复拟合,这段提示直接忽略就行。
内容的提问来源于stack exchange,提问作者Avi Kanakam
相关产品推荐
相关产品推荐

