在 Python 中的 statsmodels 中进行 ADF 测试

ADF test in statsmodels in Python(在 Python 中的 statsmodels 中进行 ADF 测试)

本文介绍了在 Python 中的 statsmodels 中进行 ADF 测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

这是我正在尝试的代码:

将 numpy 导入为 np将 statsmodels.tsa.stattools 导入为 tsx = np.array([1,2,3,4,3,4,2,3])结果 = ts.adfuller(x)

我收到以下错误:

回溯(最近一次调用最后一次):文件C:UsersAkavallDesktopPythonStats_modelsstats_models_test.py",第 12 行,在 <module> 中.结果 = ts.adfuller(x)文件C:Python27libsite-packagesstatsmodels-0.4.1-py2.7-win32.eggstatsmodels	sastattools.py",第201行,在adfullerxdall = lagmat(xdiff[:,None], maxlag, trim='both', original='in')文件C:Python27libsite-packagesstatsmodels-0.4.1-py2.7-win32.eggstatsmodels	sa	satools.py",第305行,在lagmatraise ValueError("maxlag 应该是 < nobs")ValueError: maxlag 应该是 <贵族

我的 Numpy 版本:1.6.1我的统计模型版本:0.4.1我正在使用窗户.

我正在查看文档 这里 但不知道我做错了什么.我错过了什么?

提前致谢.

解决方案

我想通了.默认情况下,maxlag 设置为 None,而它应该设置为整数.像这样的工作:

将 numpy 导入为 np将 statsmodels.tsa.stattools 导入为 tsx = np.array([1,2,3,4,3,4,2,3])result = ts.adfuller(x, 1) # maxlag 现在设置为 1

输出:

<预><代码>>>>结果(-2.6825663173365015,0.077103947319183241,0,7,{'5%':-3.4775828571428571,'1%':-4.9386902332361515,'10%':-2.8438679591836733},15.971188911270618)

I am trying to run a Augmented Dickey-Fuller test in statsmodels in Python, but I seem to be missing something.

This is the code that I am trying:

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)

I get the following error:

Traceback (most recent call last):
  File "C:UsersAkavallDesktopPythonStats_modelsstats_models_test.py", line 12, in <module>
    result = ts.adfuller(x)
  File "C:Python27libsite-packagesstatsmodels-0.4.1-py2.7-win32.eggstatsmodels	sastattools.py", line 201, in adfuller
    xdall = lagmat(xdiff[:,None], maxlag, trim='both', original='in')
  File "C:Python27libsite-packagesstatsmodels-0.4.1-py2.7-win32.eggstatsmodels	sa	satools.py", line 305, in lagmat
    raise ValueError("maxlag should be < nobs")
ValueError: maxlag should be < nobs

My Numpy Version: 1.6.1 My statsmodels Version: 0.4.1 I am using windows.

I am looking at the documentation here but can't figure what I am doing wrong. What am I missing?

Thanks in Advance.

解决方案

I figured it out. By default maxlag is set to None, while it should be set to integer. Something like this works:

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

Output:

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

这篇关于在 Python 中的 statsmodels 中进行 ADF 测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在 Python 中的 statsmodels 中进行 ADF 测试

基础教程推荐