gpt4 book ai didi

python - 使用 python statsmodels 设置 ADF 测试的 maxlag 不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 05:31:36 25 4
gpt4 key购买 nike

我尝试在 statsmodels 中使用 ADF 测试设置 maxlag,但测试使用的滞后数不是我设置的。它几乎总是更少。这是我的意思的一个小例子。

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,但在结果中它表示使用的最大滞后为 0,对应于结果中的第三个条目。

谁能解释为什么会发生这种情况以及可能的解决方法?

最佳答案

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

然后它使用信息标准来决定哪个滞后提供最佳模型。信息标准尝试在拟合优度与最小化模型复杂性之间取得平衡。您可以使用 adfuller 函数的 autolag 参数指定应该使用哪种算法来确定哪个模型是最好的。默认为赤池信息准则。

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

关于python - 使用 python statsmodels 设置 ADF 测试的 maxlag 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36974784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com