Я использую 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. observations
и R-squared
. Как я могу напечатать только такие параметры, как эти? Использование print(results)
дает только указатель на объект results
:
print(results)
<statsmodels.regression.linear_model.RegressionResultsWrapper object at 0x0000020DAB8028D0>
При установке модели с 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)