ADF test in statsmodels in Python(在 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 测试
- 我如何透明地重定向一个Python导入? 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01