You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Probit回归结果仅显示系数其余为NaN的问题求助

解决Probit回归正则化拟合后结果除系数外全为NaN的问题

问题根源

你用的fit_regularized()方法,在statsmodels里默认不会计算标准误、p值、置信区间这类推断统计量,所以输出的summary2里这些字段全是NaN——这不是bug,是方法的默认行为,因为正则化估计的方差计算逻辑更复杂,默认没开启。

具体解决办法

1. 开启协方差矩阵计算(获取推断统计量)

如果确实需要正则化,同时想要标准误等结果,调用fit_regularized()时加上calc_cov=True参数,同时指定正则化方法(比如L1或L2)。示例代码:

import statsmodels.api as sm
# 记得给特征加常数项,statsmodels默认不含截距
X = sm.add_constant(X)
probit_model = sm.Probit(y, X)
# 以L1正则为例,开启协方差计算
result = probit_model.fit_regularized(method='l1', calc_cov=True)
print(result.summary2())

注意:正则化后的方差是近似估计,比如基于Hessian矩阵或三明治估计,结果仅供参考。

2. 改用普通拟合方法(不需要正则化时)

如果你的数据不需要正则化(比如没有多重共线性、过拟合问题),直接用普通的fit()方法,会自动计算所有统计量:

import statsmodels.api as sm
X = sm.add_constant(X)
probit_model = sm.Probit(y, X)
result = probit_model.fit()
print(result.summary2())

3. 额外检查点

  • 确认特征矩阵X是否添加了常数项:statsmodels的线性模型(包括Probit)默认不包含截距,必须手动用sm.add_constant()添加,否则模型设定可能有问题。
  • 检查Robust Scaler处理后的数据:有没有出现极端值或NaN,确保输入数据没有异常。

内容的提问来源于stack exchange,提问作者silent_hunter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:35:36