从Python回归输出生成具有发布质量的Latex表的包
pystout的Python项目详细描述
毕斯托特
从Python回归输出生成具有发布质量的Latex表的包
安装
pip install pystout
背景
这个包是为了模拟estout
或{Stata
的特性,尽管它缺少很多功能。
这个包已经用statsmodels
OLS
和{OLS
、IV2SLS
和{
存在的问题
- 没有选择寻找分类变量(面板或时间假人)并说“是”或“否”
- 例如,如果混合匹配
sm.OLS()
和{},当前将“const”和“Intercept”视为两个独立的变量。在 - 不支持相关统计信息或
estout
选项的完整列表。在
如何使用
如果指定标签和标题,则输出为表对象;否则,输出为表格。在
正常使用如下(同样适用于testing_pystout.py
):
# Testing pystout
import statsmodels.api as sm
import linearmodels as ln
from pystout import pystout
dta = sm.datasets.webuse('auto')
dta.loc[:,'const'] = 1
y = dta.price
# =============================================================================
# First three models are from statsmodels
# =============================================================================
X = dta[['const','mpg','displacement']]
model1 = sm.OLS(y,X).fit()
X = dta[['const','mpg','displacement','turn']]
model2 = sm.OLS(y,X).fit()
X = dta[['displacement','const','turn']]
model3 = sm.OLS(y,X).fit()
# =============================================================================
# Next 2 are an ols and a tsls from linearmodels
# =============================================================================
X = dta[['displacement','const','turn','gear_ratio']]
model4 = ln.OLS(y,X).fit()
model5 = ln.IV2SLS(dependent=dta.price,endog=dta.mpg,
exog=dta.filter(['const','turn','displacement']),
instruments=dta.length).fit()
# =============================================================================
# Print result
# =============================================================================
pystout(models=[model1,model2,model3,model4,model5],
file='test_table.tex',
addnotes=['Here is a little note','And another one'],
digits=2,
endog_names=['Custom','Header','Please','Thanks','Again'],
varlabels={'const':'Constant','displacement':'Disp','mpg':'MPG'},
addrows={'Test':['A','Test','Row','Here','Too']},
mgroups={'Statsmodels':[1,3],'L OLS':4,'L TSLS':5},
modstat={'nobs':'Obs','rsquared_adj':'Adj. R\sym{2}','fvalue':'F-stat'}
)
编译后,将生成下表:
选项
Pystout有以下选项:
^{pr2}$- 项目
标签: