StatsModels(Python):Breusch Godfrey Lagrange乘数测试



我正在使用statsmodels在Python中使用自回旋模型。该包装很棒,我得到了我需要的确切结果。但是,对残留相关性的测试(Breusch-Godfrey LM检验(似乎不起作用,因为我会收到错误消息。

我的代码:

import pandas as pd
import datetime
import numpy as np
from statsmodels.tsa.api import VAR
import statsmodels.api as sm
df = pd.read_csv('US_data.csv')
# converting str formatted dates to datetime and setting the index
j = []
for i in df['Date']:
    j.append(datetime.datetime.strptime(i, '%Y-%m-%d').date())
df['Date'] = j
df = df.set_index('Date')
# dataframe contains three columns (GDP, INV and CONS)
# log difference
df = pd.DataFrame(np.log(df)*100)
df = df.diff()
p = 4 # order
model = VAR(df[1:])
results = model.fit(p, method='ols')
sm.stats.diagnostic.acorr_breusch_godfrey(results)

错误消息:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-6-11abf518baae> in <module>()
----> 1 sm.stats.diagnostic.acorr_breusch_godfrey(results)
/home/****/anaconda3/lib/python3.6/site-packages/statsmodels/sandbox/stats/diagnostic.py in acorr_breusch_godfrey(results, nlags, store)
    501         nlags = int(nlags)
    502 
--> 503     x = np.concatenate((np.zeros(nlags), x))
    504 
    505     #xdiff = np.diff(x)
ValueError: all the input arrays must have same number of dimensions

五个月前在这里提出了一个类似的问题,但没有运气。有人知道如何解决这个问题吗?非常感谢您!

这些诊断测试是为单变量模型而设计的,例如我们具有一维残留阵列的OLS。使用它的唯一方法最有可能仅使用var系统的单个方程式或在每个方程或变量上使用循环。

StatsModels Master中的

Varresults具有test_whiteness_new方法,该方法是对VAR的多元残差无自相关的测试。它使用Portmanteau测试,我认为它与Ljung-Box相同。状态空间模型还使用ljung-box进行相关测试。

最新更新