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 测试
基础教程推荐
- 筛选NumPy数组 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01