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

如何运行无预测变量的回归?仅含常数项误差项的代码调试

仅常数项回归代码修正说明

问题原因

你调用sm.add_constant()时未传入基准数组,无法生成和因变量y长度匹配的常数项自变量矩阵,因此代码运行报错。仅含常数项的回归需要给OLS的第二个参数传入长度和y一致的全1数组作为自变量。

修正代码

写法1:直接生成全1自变量数组

import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

y = np.random.normal(size=50)
# 直接传入全1数组作为仅含常数项的自变量
model = sm.OLS(y, np.ones(len(y)), missing='drop').fit()
# 输出拟合结果
print(model.summary())

写法2:使用sm.add_constant生成自变量(符合statsmodels常规使用逻辑)

import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

y = np.random.normal(size=50)
# 传入空的二维数组,让add_constant生成仅含常数项的自变量矩阵
exog = sm.add_constant(np.empty((len(y), 0)))
model = sm.OLS(y, exog, missing='drop').fit()
print(model.summary())

结果说明

两种写法得到的拟合结果完全一致,输出中的系数项就是你要的常数项a。由于示例中y是标准正态分布生成的,a的估计值会非常接近0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:57:04