python - Python 中统计模型中的 ADF 测试

标签 python numpy statistics statsmodels

我正在尝试在 Python 的 statsmodels 中运行 Augmented Dickey-Fuller 测试,但我似乎遗漏了一些东西。

这是我正在尝试的代码:

import numpy as np
import statsmodels.tsa.stattools as ts

x = np.array([1,2,3,4,3,4,2,3])
result = ts.adfuller(x)

我收到以下错误:

Traceback (most recent call last):
  File "C:\Users\Akavall\Desktop\Python\Stats_models\stats_models_test.py", line 12, in <module>
    result = ts.adfuller(x)
  File "C:\Python27\lib\site-packages\statsmodels-0.4.1-py2.7-win32.egg\statsmodels\tsa\stattools.py", line 201, in adfuller
    xdall = lagmat(xdiff[:,None], maxlag, trim='both', original='in')
  File "C:\Python27\lib\site-packages\statsmodels-0.4.1-py2.7-win32.egg\statsmodels\tsa\tsatools.py", line 305, in lagmat
    raise ValueError("maxlag should be < nobs")
ValueError: maxlag should be < nobs

我的 Numpy 版本:1.6.1 我的统计模型版本:0.4.1 我正在使用 Windows。

我正在查看文档 here但不知道我做错了什么。我错过了什么?

提前致谢。

最佳答案

我想通了。默认情况下 maxlag 设置为 None,但应将其设置为整数。像这样的东西有效:

import numpy as np
import statsmodels.tsa.stattools as ts

x = np.array([1,2,3,4,3,4,2,3])
result = ts.adfuller(x, 1) # maxlag is now set to 1

输出:

>>> result
(-2.6825663173365015, 0.077103947319183241, 0, 7, {'5%': -3.4775828571428571, '1%': -4.9386902332361515, '10%': -2.8438679591836733}, 15.971188911270618)

关于python - Python 中统计模型中的 ADF 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11265518/

相关文章:

Python + NumPy : When is it useful to manually collect garbage?

python - 删除 sys.last_* 变量是否安全

python - AWS BOTO3 连接到 MS SQL 数据库时出错

python - 如何在 Theano 中分配/更新张量共享变量的子集?

sql - 如何计算postgres的指数移动平均线?

python - scipy.optimize.curve_fit 产生无意义的曲线拟合

validation - Rand 和 Jaccard 相似度指数之间的区别?

python - 构造并排序元组列表

python - 如何在 matplotlib.pyplot 中散点绘制一个 x 数据与多个不相等的 y 数据图

python - 如何使用带有 NumPy 数组的矢量化来使用 Geopy 库为大型数据集计算测地线距离?