在python statsmodels不工作的情况下设置ADF测试的maxlag?

2024-07-05 14:42:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用statsmodels中的ADF测试来设置maxlag,但是测试使用的lag数量并不是我设置的那样。几乎总是更少。这是我的意思的一个小例子。在

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)

maxlag设置为1,但在结果中,它表示使用的最大lags为0,对应于result中的第三个条目。在

有谁能解释一下为什么会发生这种情况,以及如何解决这个问题?在


Tags: importnumpy数量asnpresultarray例子
1条回答
网友
1楼 · 发布于 2024-07-05 14:42:34

maxlag参数是adfuller将尝试的最大参数,但不一定要使用。如果没有指定,它通过计算[ceil(12*(n/100)^(1/4))]来确定maxpar,因此对于较长的数据集,它假设可能存在高阶滞后(n是这里的观测量)。在

然后,它使用一个信息准则来决定哪个延迟给出了最好的模型。信息准则试图在最小化模型复杂度的同时平衡拟合优度。{ad2>可以使用哪个函数来确定哪个函数是最好的。默认为Akaike信息准则。在

如果您想强制模型使用指定的“maxlag”,您应该使用autolag=None关闭最佳模型的确定。你确定要这么做吗?在

相关问题 更多 >