predicciones - machine learning python español pdf
Cualquier biblioteca de Python produce tablas de regresión de estilo de publicación (1)
He estado usando Python para el análisis de regresión. Después de obtener los resultados de la regresión, debo resumir todos los resultados en una sola tabla y convertirlos a LaTex (para publicación). ¿Hay algún paquete que haga esto en Python? Algo así como estout en estout que da la siguiente tabla:
Bueno, hay summary_col
en statsmodels
; no tiene todas las campanas y silbidos de estout
, pero tiene la funcionalidad básica que busca (incluida la exportación a 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
O aquí hay una versión donde agrego R-Squared y el número de observaciones:
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
Otro ejemplo, esta vez mostrando el uso de la opción de nombre de model_names
y las regresiones donde las variables independientes varían:
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
Para exportar a LaTeX use el método as_latex
.
Podría estar equivocado, pero no creo que se implemente una opción para t-stats en lugar de errores estándar (como en su ejemplo).