2014-05-10 18 views
16

Regresyon analizi için Python kullanıyorum. Regresyon sonuçlarını aldıktan sonra, tüm sonuçları tek bir tablo halinde özetlemem ve bunları LaTex'e (yayınlanmak üzere) dönüştürmem gerekiyor. Bunu Python'da yapan herhangi bir paket var mı? Aşağıdaki tablo verir Stata içinde estout gibi birşey: statsmodels yılındaHerhangi Bir Python Kitaplığı Yayın Stilinde Regresyon Tabloları Oluşturur

enter image description here

+0

Bu soru için herhangi bir modern güncelleme var mı? Hala eksik olan bir özet2 var. –

+1

@MatthewGunn Bu işlev, Stata'nın estout paketi (veya R'nin paketi) ile yapabileceğiniz şeyden çok uzaktır. Bu yüzden iş akışım için yaptığım şey, tüm regresyonları çalıştıran ve tablonun çıktısını veren Terminalde bir Do-file çalıştırmak için Stata'yı çağıran Python'da kullanıcı tanımlı bir işlevi çağırmaktır. – Titanic

cevap

21

Peki, orada summary_col; tüm çan ve estout ait ıslık yok, ancak bu (LaTeX'in ihracat dahil) Aradığınız temel özelliğe sahip kapsamaz:

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 

Ya burada R kare eklemek bir sürümüdür ve gözlem sayısı:

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 

bir başka örnek, model_names seçeneği ve regresyon kullanımını gösteren, bu kez, bağımsız değişkenler değişir burada:

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'e dışa aktarmak için as_latex yöntemini kullanın.

Yanlış olabilirim, ancak standart hatalar yerine (örneğinizde olduğu gibi) t-istatistikleri için bir seçenek uygulandığını düşünmüyorum.

+0

Teşekkürler. Harika çalışıyor. – Titanic

+1

Bu komutu Google aramada nasıl bulacağımı lütfen bana bildirir misiniz? Yarım saat boyunca bir komuta aramak için harcadım ama bulamadım. Teşekkürler! – Titanic

+1

Bilmiyorum ... Bunu nasıl geçtiğimi unuttum; İşte github'daki kaynak dosyaya bir link; Bir dokümanı vardır: [summary2.py] (https://github.com/statsmodels/statsmodels/blob/master/statsmodels/iolib/summary2.py) –

İlgili konular