访问 statsmodels 中的各个参数

Accessing individual parameters in 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
==============================================================================

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

print(results)
<statsmodels.regression.linear_model.RegressionResultsWrapper object at 0x0000020DAB8028D0>

OLS returns 一个 RegressionResults 对象拟合模型 - 从文档中,class 有很多属性可以为您提供特定信息,例如观察次数 (nobs) 和 R 平方值 (rsquared)。

看看 source code for summary,它实际上只是将所有单独可用的属性格式化为适合您的 table。

演示

>>> 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)