访问 statsmodels 中的各个参数

Jim*_*616 6 python python-3.x statsmodels

我使用 statsmodels.api 检查不同变量组合的统计参数。您可以使用print(results.summary())来获取

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.454
Model:                            OLS   Adj. R-squared:                  0.454
Method:                 Least Squares   F-statistic:                     9694.
Date:                Mon, 30 Jul 2018   Prob (F-statistic):               0.00
Time:                        10:14:47   Log-Likelihood:                -9844.7
No. Observations:               11663   AIC:                         1.969e+04
Df Residuals:                   11662   BIC:                         1.970e+04
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
x1            -1.4477      0.015    -98.460      0.000      -1.477      -1.419
==============================================================================
Omnibus:                     1469.705   Durbin-Watson:                   1.053
Prob(Omnibus):                  0.000   Jarque-Bera (JB):             2504.774
Skew:                           0.855   Prob(JB):                         0.00
Kurtosis:                       4.493   Cond. No.                         1.00
==============================================================================
Run Code Online (Sandbox Code Playgroud)

但假设我只对其中几个参数感兴趣,例如No. observationsR-squared我怎样才能只打印某些参数,例如这些?使用print(results)只是给出一个指向results对象的指针:

print(results)
<statsmodels.regression.linear_model.RegressionResultsWrapper object at 0x0000020DAB8028D0>
Run Code Online (Sandbox Code Playgroud)

mir*_*ulo 5

拟合模型OLS会返回一个RegressionResults对象 - 从文档中可以看出,该类有很多属性,可以为您提供特定信息,例如观测值数量 ( nobs) 和 R 平方值 ( rsquared)。

看一下 的源代码summary,它实际上只是将所有单独可用的属性格式化为一个不错的表。

演示

>>> Y = [1, 3, 4, 5, 2, 3, 4]; X = range(1, 8)

>>> model = sm.OLS(Y, X)

>>> results = model.fit()

>>> results.nobs, results.rsquared
(7.0, 0.16118421052631615)
Run Code Online (Sandbox Code Playgroud)