使用python提取回归系数

问题描述 投票:2回答:1

我在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

这可能吗?

python parameters statsmodels glm poisson
1个回答
2
投票

没有代码的Doe,很难说你为什么会得到你所看到的行为?

这是一个有效的示例完整代码。

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)
© www.soinside.com 2019 - 2024. All rights reserved.