Использование python для извлечения коэффициентов регрессии - PullRequest
0 голосов
/ 14 февраля 2019

Я выполнил пуассоновскую регрессию в python, а затем сделал poisson.fit (). Summary, чтобы получить следующий вывод:

poisson.fit().summary()
<class 'statsmodels.iolib.summary.Summary'>
"""
                 Generalized Linear Model Regression Results                  
==============================================================================
Dep. Variable:                    Y   No. Observations:                   28
Model:                            GLM   Df Residuals:                       26
Model Family:                 Poisson   Df Model:                            1
Link Function:                    log   Scale:                          1.0000
Method:                          IRLS   Log-Likelihood:            -1.5464e+07
Date:                Wed, 13 Feb 2019   Deviance:                   3.0928e+07
Time:                        19:54:52   Pearson chi2:                 4.43e+07
No. Iterations:                     6   Covariance Type:             nonrobust
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept     12.8383      0.000   2.95e+04      0.000      12.837      12.839
x            0.0094   1.11e-05    848.646      0.000       0.009       0.009
==============================================================================

Однако мой вопрос заключается в том, как извлечь значение для перехвата и Xотдельно?

Я пытался poisson.params (как предлагалось в предыдущих постах), но мне это не помогло.Я получаю такие ошибки

*** AttributeError: 'GLM' object has no attribute 'params'

Я ожидаю, что для каждого из коэффициентов будет храниться в отдельных переменных:

Intercept =  12.8383
X = 0.0094

это возможно?

1 Ответ

0 голосов
/ 14 февраля 2019

До без кода, трудно сказать, почему вы получаете поведение, которое вы видите?

Вот пример полного кода, который работает.

import numpy as np
import pandas as pd

import statsmodels.api as sm
import statsmodels.formula.api as smf


df = pd.DataFrame(np.random.randint(100, size=(50,2)))
df.rename(columns={0:'X1', 1:'X2'}, inplace=True)

# GLM Model

model = smf.glm("X2 ~ X1", data=df, family= sm.families.Poisson()).fit()

print(model.summary())
print(model.params)


# Poisson Model

poisson = smf.poisson("X2 ~ X1", data=df).fit()
print (poisson.summary())
print (poisson.params)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...