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

调用sm.ols处理数组执行线性回归报错,寻求解决方案

解决statsmodels OLS数组调用报错的问题

你搞混了statsmodels里两个不同的OLS接口:

  • 小写的sm.ols()是公式化接口,必须传formula和data参数,专门适配数据框场景,所以你传数组和endog/exog会触发参数缺失报错。
  • 大写的sm.OLS()才是数组专用接口,支持用endog(因变量)和exog(自变量)传递数组数据。

另外要注意:statsmodels的OLS默认不会自动给自变量加截距项,如果你需要包含截距,得手动用sm.add_constant()给自变量数组添加一列常数项。

正确代码示例

import statsmodels.api as sm

# 假设你的两个变量数组
dose = [1, 2, 3, 4, 5]
consumption = [2, 4, 5, 7, 8]

# 给自变量dose添加截距项(不需要截距可跳过此步)
x = sm.add_constant(dose)
y = consumption

# 用大写OLS接口初始化模型
model = sm.OLS(endog=y, exog=x)
# 拟合模型并生成回归摘要
results = model.fit()
print(results.summary())

如果不需要截距项,直接传入原始自变量数组即可:

model = sm.OLS(endog=consumption, exog=dose)
results = model.fit()
print(results.summary())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:35:20