用Python从OLS摘要中获取Durbin Watson和Jarque Bera统计数据

用Python从OLS摘要中获取Durbin Watson和Jarque Bera统计数据,python,statistics,statsmodels,least-squares,Python,Statistics,Statsmodels,Least Squares,我正在为一列值运行OLS摘要。OLS的一部分是Durbin Watson和Jarque Bera(JB)的统计数据,我想直接提取这些值,因为它们已经计算过了,而不是像我现在使用Durbin Watson那样运行额外的步骤 以下是我的代码: import pandas as pd import statsmodels.api as sm csv = mydata.csv df = pd.read_csv(csv) var = df[variable] year = df['Year'] mode

我正在为一列值运行OLS摘要。OLS的一部分是Durbin Watson和Jarque Bera(JB)的统计数据,我想直接提取这些值,因为它们已经计算过了,而不是像我现在使用Durbin Watson那样运行额外的步骤

以下是我的代码:

import pandas as pd
import statsmodels.api as sm

csv = mydata.csv
df = pd.read_csv(csv)
var = df[variable]
year = df['Year']
model = sm.OLS(var,year)
results = model.fit()
summary = results.summary()
print summary
#print dir(results)
residuals = results.resid
durbinwatson = statsmodels.stats.stattools.durbin_watson(residuals, axis=0)
print durbinwatson
结果:

                           OLS Regression Results                            
==============================================================================
Dep. Variable:                    LST   R-squared:                       1.000
Model:                            OLS   Adj. R-squared:                  1.000
Method:                 Least Squares   F-statistic:                 3.026e+05
Date:                Fri, 10 Nov 2017   Prob (F-statistic):           2.07e-63
Time:                        20:37:03   Log-Likelihood:                -82.016
No. Observations:                  32   AIC:                             166.0
Df Residuals:                      31   BIC:                             167.5
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Year           0.1551      0.000    550.069      0.000       0.155       0.156
==============================================================================
Omnibus:                        1.268   Durbin-Watson:                   1.839
Prob(Omnibus):                  0.530   Jarque-Bera (JB):                1.087
Skew:                          -0.253   Prob(JB):                        0.581
Kurtosis:                       2.252   Cond. No.                         1.00
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
我是通过印刷术弄明白的

dir(results)
我可以得到一个OLS汇总元素的列表,我可以提取测试的残差,没有问题,就像我在这里做的那样(或者R平方等等),但我不能只提取durbin watson或Jarque Bera。我试过这个:

print results.wald_test
但我只是得到了一个错误:

<bound method OLSResults.wald_test of <statsmodels.regression.linear_model.OLSResults object at 0x0D05B3F0>>


我甚至在摘要目录中找不到jarque bera测试。有什么帮助吗?

这不是错误。您需要调用
wald_test
方法,所以必须将其作为单独的步骤运行?你不能仅仅从摘要中检索统计数据?你还必须通过这个方法,从总结中得出的残差,对吗?例如:results.wald_测试(残差),这似乎并不容易。摘要底部表格中的诊断结果仅针对摘要进行计算,而不存储或附加@啊,我明白了。这令人失望,但也有道理。我可以单独运行测试,只是觉得有一种更快的方法。谢谢。真令人失望。计算后不应存储这些诊断的任何原因?