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

如何从statsmodels提取模型估计值?重点获取R-squared

获取statsmodels OLS模型的R-squared值

嘿,这问题我之前也踩过坑!statsmodels里的属性命名和Pandas确实有差异,你要找的R-squared对应的属性是**rsquared**,不是r2。下面结合你提供的代码给你完整的解决方案:

第一步:整合你的数据集与回归代码

先把你给出的代码放在一起,方便测试运行:

import pandas as pd
import numpy as np
import statsmodels.api as sm

# 生成示例数据集
np.random.seed(123)
rows = 12
rng = pd.date_range('1/1/2017', periods=rows, freq='D')
df = pd.DataFrame(np.random.randint(100,150,size=(rows, 2)), columns=['y', 'x'])
df = df.set_index(rng)

# 拟合OLS线性回归模型
x = sm.add_constant(df['x'])
model = sm.OLS(df['y'], x).fit()

第二步:直接提取R-squared值

调用模型对象的rsquared属性就能直接拿到结果,调整后的R-squared可以用rsquared_adj:

# 获取R-squared值
print("R-squared值:", model.rsquared)

# 获取调整后R-squared值(可选需求)
print("调整后R-squared值:", model.rsquared_adj)

运行这段代码,得到的结果和model.summary()里显示的R-squared完全一致,再也不用费劲去解析摘要字符串啦!

额外小提示:其他常用可提取属性

statsmodels的拟合模型对象还有很多实用属性可以直接调用,不用再从摘要里扒数据:

  • model.params:回归系数(你已经在使用这个)
  • model.pvalues:各变量系数的p值
  • model.fvalue:模型的F统计量
  • model.resid:回归残差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:28:49