Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

statsmodels summary to latex

I'm a newbie to latex and I want to import a statsmodels(python-package) summary to my report in latex. I found that it's possible to transform a summary into a latex tabular with the following method: latex_as_tabular. Until now everything is working. Now I have to store the tabular, but I don't really understand how this works.

I suppose I have to use the following commands:

x_values=sm.add_constant(x_values)
model=sm.OLS(y_values, x_values)
results=model.fit()
tbl=results.summary(xname=['b,'a'],yname='y')
with open('c:/temp/temp.tex','w') as fh:
    fh.write( tbl.as_latex_tabular() )

this code doesn't work until now. most of the times the console gives the error: tex-file doesn't exists or not permitted in this map. I don't really understand what I have to do here. Could someone please help me with this ?

like image 501
Driedan Avatar asked May 03 '15 08:05

Driedan


1 Answers

That seems to be a misunderstanding. You can either convert a whole summary into latex via summary.as_latex() or convert its tables one by one by calling table.as_latex_tabular() for each table.

The following example code is taken from statsmodels documentation. Note that you cannot call as_latex_tabular on a summary object.

import numpy as np
import statsmodels.api as sm

nsample = 100
x = np.linspace(0, 10, 100)
X = np.column_stack((x, x**2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)

X = sm.add_constant(X)
y = np.dot(X, beta) + e

model = sm.OLS(y, X)
results = model.fit()

# do either
print(results.summary().as_latex())

# alternatively
for table in results.summary().tables:
    print(table.as_latex_tabular())
like image 61
cel Avatar answered Oct 01 '22 01:10

cel