在 Python 中的 statsmodels 中进行 ADF 测试 [英] ADF test in statsmodels in Python

查看:35
本文介绍了在 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 测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆