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

使用linear_harvey_collier检验模型线性度时触发ValueError问题排查

使用linear_harvey_collier检验线性特征时的报错解决

我在用linear_harvey_collier检验模型是否具有线性特征时触发了错误,代码示例如下:

import statsmodels.formula.api as smf
import statsmodels.stats.diagnostic as sms    

QGDP = df['QUARTERLY REAL GDP']
UNRATE = df['UNRATE(%)']
ols_1 = smf.ols(formula='QGDP ~ UNRATE', data = df)
ols_fit = ols_1.fit()
test = sms.linear_harvey_collier(ols_fit)

报错信息:

ValueError: "The initial regressor matrix, x[:skip], is singular. You must use a value of skip large enough to ensure that the first OLS estimator is well-defined.


报错原因

linear_harvey_collier检验会将样本按模型拟合值排序后,拆分前后部分数据进行OLS回归。默认的skip参数(样本前后跳过的比例)可能导致前半段的自变量矩阵出现奇异值——比如自变量UNRATE在前半段样本中取值完全一致,或是样本量过少导致矩阵无法求逆,进而无法完成OLS估计。

解决办法

  • 手动设置更大的skip参数,确保保留的样本能让自变量矩阵非奇异。例如跳过前后20%的样本,用中间段数据做检验:
test = sms.linear_harvey_collier(ols_fit, skip=0.2)
  • 检查自变量UNRATE在前半段样本中的取值分布,若存在取值过于单一的情况,需清洗数据或补充更多样本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:15:36