任何Python库都会生成发布样式的回归表

2024-10-01 17:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用Python进行回归分析。在得到回归结果之后,我需要将所有结果汇总到一个表中,并将它们转换为LaTex(用于发布)。在Python中是否有这样的包?类似于Stata中的estout的内容,给出了下表:

enter image description here


Tags: 内容latex汇总stataestout
1条回答
网友
1楼 · 发布于 2024-10-01 17:37:47

嗯,在statsmodels中有{};它并没有{}的所有功能,但它确实具有您正在寻找的基本功能(包括导出到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平方和观察数的版本:

^{pr2}$

另一个例子,这一次展示了model_names选项的使用和自变量变化的回归:

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\n(0)','p4\n(1)','p4\n(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方法。在

我可能错了,但我不认为实现了t-stats选项而不是标准错误(如您的示例中所示)。在

相关问题 更多 >

    热门问题