2015-05-03 3 views
5

Я новичок в латексе, и я хочу импортировать сводку statsmodels (python-package) в мой отчет в латекс. Я обнаружил, что можно преобразовать сводку в латексную табличку со следующим методом: latex_as_tabular. До сих пор все работает. Теперь я должен хранить табличные данные, но я действительно не понимаю, как это работает.statsmodels summary to latex

Я полагаю, я должен использовать следующие команды:

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()) 

этот код не работает до сих пор. в большинстве случаев консоль выдает ошибку: tex-файл не существует или не разрешен на этой карте. Я не совсем понимаю, что мне здесь делать. Может кто-нибудь, пожалуйста, помогите мне с этим?

+0

Пожалуйста, подумайте над добавлением ошибки stacktrace к вашему вопросу, чтобы облегчить для других с аналогичной проблемой поиск вашего вопроса. – cel

+0

В примере кода есть ошибка: '' 'отсутствует, чтобы закрыть символ' b'. Плюс я рекомендую кодировать в соответствии с PEP8, в частности имея пробелы вокруг операторов. – MERose

ответ

7

Это похоже на недоразумение. Вы можете либо преобразовать всю сводку в латекс через summary.as_latex(), либо конвертировать свои таблицы один за другим, вызывая table.as_latex_tabular() для каждой таблицы.

Следующий примерный код взято из документации statsmodels. Обратите внимание, что вы не можете позвонить as_latex_tabular на объект summary.

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()) 
+0

Хорошо, вы правы. Но мне все еще не ясно, как можно вставить его в tex-файл. лето превращается в латексную строку и после этого? – Driedan

+1

После этого у вас есть строка с латексным кодом - не больше, не меньше. То, что вы делаете с этой строкой, зависит от вас. Вы можете, например, напишите эту строку в файл и включите этот файл в один из ваших латексных документов. – cel

+0

@cel, я был бы признателен, если бы вы могли взглянуть на это и поблагодарить вас: https://stackoverflow.com/questions/44759309/python-rolling-window-ols-regression-estimation –

Смежные вопросы