如何在Python Pandas中输出包含t-statistic、p-value、r^2等的回归表?
在Python Pandas中生成含t-statistic、p-value、R²的回归表
Hey there! 要在Pandas生态里生成包含t统计量、p值、R²这些关键统计指标的回归表,我最推荐用statsmodels库——它是Python里做统计建模的利器,输出的结果表完全覆盖你需要的所有指标,还能轻松和Pandas DataFrame联动。下面一步步给你演示操作:
1. 先搞定环境(如果没装statsmodels)
如果你还没安装这个库,先在终端里跑这条命令:
pip install statsmodels
2. 导入必要的库
import pandas as pd import statsmodels.api as sm
3. 准备你的数据
假设你已经有了Pandas DataFrame格式的数据集,比如下面的示例(你可以替换成自己的数据):
# 示例数据集 df = pd.DataFrame({ '目标变量': [12, 25, 30, 42, 51, 63], '自变量1': [2, 4, 5, 4, 5, 6], '自变量2': [1, 3, 2, 5, 4, 6] }) # 注意:statsmodels默认不会自动添加截距项,所以要手动加上 X = sm.add_constant(df[['自变量1', '自变量2']]) # 自变量矩阵(含截距) y = df['目标变量'] # 因变量
4. 拟合回归模型并输出完整结果
这里以最常用的普通最小二乘(OLS)回归为例,拟合后直接调用summary()就能得到包含所有你要的统计量的回归表:
# 拟合OLS模型 model = sm.OLS(y, X).fit() # 打印完整回归结果表 print(model.summary())
结果说明:
- 中间的系数表里,
t列就是t-statistic,P>|t|列是对应的p-value; - 表格下方的R-squared就是你要的R²,还有调整后R²、F统计量等额外有用的指标。
5. 把结果转成Pandas DataFrame(可选)
如果想把回归结果保存成DataFrame方便后续分析或导出,用summary2()方法可以更灵活地提取:
# 提取系数详情表(含t、p值) coef_results = model.summary2().tables[1] # 提取整体模型统计量(含R²) model_stats = model.summary2().tables[0] print("系数统计详情:") display(coef_results) # 用display在Jupyter里会更美观 print("\n模型整体统计量:") display(model_stats)
额外提示
如果你需要的是其他类型的回归(比如逻辑回归、线性混合效应模型),statsmodels也有对应的模块(比如sm.Logit、sm.MixedLM),调用fit().summary()后同样会输出包含t/p值、R²(或对应模型的拟合指标)的结果表。
内容的提问来源于stack exchange,提问作者shiff desta
相关产品推荐
相关产品推荐

