如何在pandas中索引线性模型摘要输出的特定元素(如R-squared值)
提取OLS回归结果中的R-squared值
方法一:从statsmodels回归结果对象直接提取(推荐)
如果你是用statsmodels库完成的回归,回归结果对象本身内置了获取统计量的属性,无需解析文本输出:
# 假设你的回归结果对象名为 resultmodeldistancevariation2sleep r_squared = resultmodeldistancevariation2sleep.rsquared print(r_squared) # 输出:0.028
方法二:从文本输出中提取(仅当只有文本时使用)
如果只有你提供的这段文本内容,可以用正则表达式匹配提取目标值:
import re # 你的回归结果文本 summary_text = """OLS Regression Results Dep. Variable: distance R-squared: 0.028 Model: OLS Adj. R-squared: 0.016 Method: Least Squares F-statistic: 2.338 Date: Fri, 18 Nov 2022 Prob (F-statistic): 0.00773 Time: 10:06:14 Log-Likelihood: -1274.1 No. Observations: 907 AIC: 2572. Df Residuals: 895 BIC: 2630. Df Model: 11 Covariance Type: nonrobust""" # 匹配R-squared对应的数值 match = re.search(r'R-squared:\s+(\d+\.\d+)', summary_text) if match: r_squared_value = match.group(1) print(r_squared_value) # 输出:0.028
补充:方法一的可靠性更高,因为statsmodels结果对象直接存储统计量,不会受文本格式变动影响;方法二仅作为无对象可用时的备选。
内容的提问来源于stack exchange,提问作者Caledonian26
相关产品推荐
相关产品推荐

