Any Python Library Produces Publication Style Regression Tables(任何 Python 库都会生成发布风格回归表)
问题描述
我一直在使用 Python 进行回归分析.得到回归结果后,我需要将所有结果汇总到一个表中,并将它们转换为 LaTex(用于发布).是否有任何包可以在 Python 中执行此操作?Stata 中的 estout 之类的东西给出了下表:
I've been using Python for regression analysis. After getting the regression results, I need to summarize all the results into one single table and convert them to LaTex (for publication). Is there any package that does this in Python? Something like estout in Stata that gives the following table:
推荐答案
嗯,statsmodels
里面有summary_col
;它没有 estout
的所有花里胡哨,但它确实具有您正在寻找的基本功能(包括导出到 LaTeX):
Well, there is summary_col
in statsmodels
; it doesn't have all the bells and whistles of estout
, but it does have the basic functionality you are looking for (including export to LaTeX):
import statsmodels.api as sm
from statsmodels.iolib.summary2 import summary_col
p['const'] = 1
reg0 = sm.OLS(p['p0'],p[['const','exmkt','smb','hml']]).fit()
reg1 = sm.OLS(p['p2'],p[['const','exmkt','smb','hml']]).fit()
reg2 = sm.OLS(p['p4'],p[['const','exmkt','smb','hml']]).fit()
print summary_col([reg0,reg1,reg2],stars=True,float_format='%0.2f')
===============================
p0 p2 p4
-------------------------------
const -1.03*** -0.01 0.62***
(0.11) (0.04) (0.07)
exmkt 1.28*** 0.97*** 0.98***
(0.02) (0.01) (0.01)
smb 0.37*** 0.28*** -0.14***
(0.03) (0.01) (0.02)
hml 0.77*** 0.46*** 0.69***
(0.04) (0.01) (0.02)
===============================
Standard errors in parentheses.
* p<.1, ** p<.05, ***p<.01
或者这里是我添加 R-Squared 和观察次数的版本:
Or here is a version where I add R-Squared and the number of observations:
print summary_col([reg0,reg1,reg2],stars=True,float_format='%0.2f',
info_dict={'N':lambda x: "{0:d}".format(int(x.nobs)),
'R2':lambda x: "{:.2f}".format(x.rsquared)})
===============================
p0 p2 p4
-------------------------------
const -1.03*** -0.01 0.62***
(0.11) (0.04) (0.07)
exmkt 1.28*** 0.97*** 0.98***
(0.02) (0.01) (0.01)
smb 0.37*** 0.28*** -0.14***
(0.03) (0.01) (0.02)
hml 0.77*** 0.46*** 0.69***
(0.04) (0.01) (0.02)
R2 0.86 0.95 0.88
N 1044 1044 1044
===============================
Standard errors in parentheses.
* p<.1, ** p<.05, ***p<.01
另一个例子,这次展示了 model_names
选项的使用和自变量变化的回归:
Another example, this time showing the use of the model_names
option and regressions where the independent variables vary:
reg3 = sm.OLS(p['p4'],p[['const','exmkt']]).fit()
reg4 = sm.OLS(p['p4'],p[['const','exmkt','smb','hml']]).fit()
reg5 = sm.OLS(p['p4'],p[['const','exmkt','smb','hml','umd']]).fit()
print summary_col([reg3,reg4,reg5],stars=True,float_format='%0.2f',
model_names=['p4
(0)','p4
(1)','p4
(2)'],
info_dict={'N':lambda x: "{0:d}".format(int(x.nobs)),
'R2':lambda x: "{:.2f}".format(x.rsquared)})
==============================
p4 p4 p4
(0) (1) (2)
------------------------------
const 0.66*** 0.62*** 0.15***
(0.10) (0.07) (0.04)
exmkt 1.10*** 0.98*** 1.08***
(0.02) (0.01) (0.01)
hml 0.69*** 0.72***
(0.02) (0.01)
smb -0.14*** 0.07***
(0.02) (0.01)
umd 0.46***
(0.01)
R2 0.78 0.88 0.96
N 1044 1044 1044
==============================
Standard errors in
parentheses.
* p<.1, ** p<.05, ***p<.01
要导出到 LaTeX,请使用 as_latex
方法.
To export to LaTeX use the as_latex
method.
我可能是错的,但我认为没有实现 t-stats 选项而不是标准错误(如您的示例中).
I could be wrong but I don't think an option for t-stats instead of standard errors (like in your example) is implemented.
这篇关于任何 Python 库都会生成发布风格回归表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:任何 Python 库都会生成发布风格回归表


基础教程推荐
- 筛选NumPy数组 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01