Модель вывода `to_excel` в Python? - PullRequest
0 голосов
/ 19 мая 2018

Запуск MixedLM и желание отправить вывод в Excel или CSV, см. Код модели и вывод ниже:

model = smf.mixedlm('y_var ~ gas_prices', dfModel, 
                 groups = dfModel['region'])
mdf = model.fit()
print(mdf.summary())

                Mixed Linear Model Regression Results
======================================================================
Model:                MixedLM   Dependent Variable:   yVar 
No. Observations:     420       Method:               REML            
No. Groups:           4         Scale:                45635645671.2271
Min. group size:      105       Likelihood:           -5720.8133      
Max. group size:      105       Converged:            Yes             
Mean group size:      105.0                                           
----------------------------------------------------------------------
              Coef.     Std.Err.    z    P>|z|    [0.025      0.975]  
----------------------------------------------------------------------
Intercept  3241461.947 112718.823 28.757 0.000 3020537.112 3462386.781
gas_prices -118128.471  46931.809 -2.517 0.012 -210113.126  -26143.816
xVar2          275.017    165.072  1.666 0.096     -48.518     598.553
groups RE        0.002                                                
======================================================================

Я пытался нажать mdf.summary().to_excel, и это не сработало, вВ дополнение к созданию Pandas DataFrame с mdf.summary() и последующему перемещению в Excel, это тоже не работает.

Дополнительным преимуществом здесь будет создание уникального имени файла для каждого вывода в Excel, так что еслиЯ запускаю несколько моделей, которые не будут перезаписывать друг друга.

Как я могу получить это в Excel?

1 Ответ

0 голосов
/ 19 мая 2018

statsmodels имеет две основные функции для построения сводных таблиц.Некоторые модели используют одну или другую, в некоторых моделях доступны методы summary() и summary2() в экземпляре результатов.

MixedLM использует summary2 в качестве summary, что создает базовые таблицы как панды DataFrames.

У меня сейчас нет модели смешанных эффектов, так что это для экземпляра результатов модели GLM res1

>>> summ2 = res1.summary2()
>>> len(summ2.tables)
2

>>> type(summ2.tables[1])
pandas.core.frame.DataFrame

>>> type(summ2.tables[0])
pandas.core.frame.DataFrame

Эти две таблицы можно использовать с пандами, как в удаленныхответ для создания файлов Excel.

Реализация summary, которая недоступна в MixedLM, но является сводкой по умолчанию для большинства других моделей, имеет метод as_csv, который, однако, использует ту же точность, что и в строкеверсия.Версия summary в настоящее время не создает базовый DataFrame.

>>> summ = res1.summary()
>>> print(summ.as_csv())
          Generalized Linear Model Regression Results           
Dep. Variable: ,['y1', 'y2']    ,  No. Observations:  ,   303   
Model:         ,GLM             ,  Df Residuals:      ,   282   
Model Family:  ,Binomial        ,  Df Model:          ,    20   
Link Function: ,logit           ,  Scale:             ,  1.0000 
Method:        ,IRLS            ,  Log-Likelihood:    , -2998.6 
Date:          ,Sat, 19 May 2018,  Deviance:          ,  4078.8 
Time:          ,08:42:45        ,  Pearson chi2:      ,4.05e+03 
No. Iterations:,5               ,  Covariance Type:   ,nonrobust
     ,   coef   , std err ,    z    ,P>|z| ,  [0.025 ,  0.975] 
x1   ,   -0.0168,    0.000,  -38.749, 0.000,   -0.018,   -0.016
x2   ,    0.0099,    0.001,   16.505, 0.000,    0.009,    0.011
x3   ,   -0.0187,    0.001,  -25.182, 0.000,   -0.020,   -0.017
x4   ,   -0.0142,    0.000,  -32.818, 0.000,   -0.015,   -0.013
x5   ,    0.2545,    0.030,    8.498, 0.000,    0.196,    0.313
x6   ,    0.2407,    0.057,    4.212, 0.000,    0.129,    0.353
x7   ,    0.0804,    0.014,    5.775, 0.000,    0.053,    0.108
x8   ,   -1.9522,    0.317,   -6.162, 0.000,   -2.573,   -1.331
x9   ,   -0.3341,    0.061,   -5.453, 0.000,   -0.454,   -0.214
x10  ,   -0.1690,    0.033,   -5.169, 0.000,   -0.233,   -0.105
x11  ,    0.0049,    0.001,    3.921, 0.000,    0.002,    0.007
x12  ,   -0.0036,    0.000,  -15.878, 0.000,   -0.004,   -0.003
x13  ,   -0.0141,    0.002,   -7.391, 0.000,   -0.018,   -0.010
x14  ,   -0.0040,    0.000,   -8.450, 0.000,   -0.005,   -0.003
x15  ,   -0.0039,    0.001,   -4.059, 0.000,   -0.006,   -0.002
x16  ,    0.0917,    0.015,    6.321, 0.000,    0.063,    0.120
x17  ,    0.0490,    0.007,    6.574, 0.000,    0.034,    0.064
x18  ,    0.0080,    0.001,    5.362, 0.000,    0.005,    0.011
x19  ,    0.0002, 2.99e-05,    7.428, 0.000,    0.000,    0.000
x20  ,   -0.0022,    0.000,   -6.445, 0.000,   -0.003,   -0.002
const,    1.9589,    1.547,    1.266, 0.205,   -1.073,    4.990

(Запрос на извлечение дополнительной опции в сводках statsmodels приветствуется.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...