Использование stargazer для вывода латексного кода из модели линейных моделей - PullRequest
2 голосов
/ 10 марта 2020

Мне нужны линейные модели для двухсторонней кластеризации, это неправильно реализовано в statsmodels. Мне было интересно, можно ли использовать библиотеку stargazer python с пакетом linearmodels, а не со statsmodels. Но когда я подключаю модель из линейных моделей, она выдает ошибку: Пожалуйста, используйте обученные модели OLS в качестве входных данных

пример:

from linearmodels.panel import PanelOLS
import pandas as pd 
df.set_index(['entity', 'time'], inplace = True)
X = df[["Exog1","Exog2","Exog3"]]
y = df["Dep"]
model = PanelOLS(y, X, entity_effects=True, time_effects=True).fit(cov_type='clustered', cluster_entity=True, cluster_time=True)   
print(model)

Это выводит модель, как и ожидалось. Однако, когда я подключаю его к int stargazer, он выдает следующую ошибку

stargazer = Stargazer([model])

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-149-75027b8621a2> in <module>
----> 1 stargazer = Stargazer([model])

~\AppData\Local\Continuum\anaconda3\lib\site-packages\stargazer\stargazer.py in __init__(self, models)
     29         self.models = models
     30         self.num_models = len(models)
---> 31         self.extract_data()
     32         self.reset_params()
     33 

~\AppData\Local\Continuum\anaconda3\lib\site-packages\stargazer\stargazer.py in extract_data(self)
     91         be modified by any rendering parameters.
     92         """
---> 93         self.validate_input()
     94         self.model_data = []
     95         for m in self.models:

~\AppData\Local\Continuum\anaconda3\lib\site-packages\stargazer\stargazer.py in validate_input(self)
     43         for m in self.models:
     44             if not isinstance(m, RegressionResultsWrapper):
---> 45                 raise ValueError('Please use trained OLS models as inputs')
     46             targets.append(m.model.endog_names)
     47 

ValueError: Please use trained OLS models as inputs

Я понимаю, что stargazer может не поддерживать линейные модели, но, возможно, есть обходной путь, который позволит мне выводить модель линейных моделей в латекс ?

...