如何从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
相关产品推荐
相关产品推荐

