如何在Python中获取线性回归模型的p值与调整后R平方
从Statsmodels OLS模型中提取调整后R平方与p值
嘿,不用费劲去解析摘要文本啦,statsmodels的拟合模型对象直接提供了这些统计量的属性,一步就能拿到想要的值:
提取调整后R平方
你只需要调用拟合后模型的rsquared_adj属性就行,代码示例:
# 获取调整后R平方 adjusted_r_squared = model.rsquared_adj print(f"调整后R平方: {adjusted_r_squared}")
运行后就会输出你摘要里的0.905。
提取p值
这里分两种情况,你可以根据需求选择:
1. 整体模型的F检验p值
对应摘要里的Prob (F统计量): 0.00,用f_pvalue属性获取:
# 获取整体模型F检验的p值 f_test_pvalue = model.f_pvalue print(f"整体模型F检验p值: {f_test_pvalue}")
2. 单个自变量的p值
每个变量的p值存在pvalues属性里,这是一个Pandas Series,你可以通过变量名索引或者直接查看所有值:
# 获取所有变量的p值 all_pvalues = model.pvalues print(all_pvalues) # 单独获取某个变量的p值,比如Time time_pvalue = model.pvalues['Time'] print(f"Time变量的p值: {time_pvalue}")
这样就能拿到摘要里每个变量对应的p值,比如Time的0.000、op1的0.454等。
内容的提问来源于stack exchange,提问作者IndigoChild




