我想检查数据是否静止。我使用不同的参数输入应用ADF测试,如下所示:
from statsmodels.tsa.stattools import adfuller
Y = df.values
result = adfuller(Y, maxlag=15, autolag=None, regression='ct')
我得到了第一个结果:
adf -16.057
p 1.12e-22
crit. val. 1%: -3.959, 5%: -3.411, 10%: -3.127
stationary? true
下一个:
result = adfuller(Y) # use standard values for all parameters in adfuller() method
结果显示我的数据不稳定。它与之前的结果相反:
ADF Statistic: -1.391000
p-value: 0.586583
Critical Values:
1%: -3.431
5%: -2.862
10%: -2.567
您是否应该帮助我解释为什么两种结果之间的差别如此?
答案 0 :(得分:0)
我认为有两个原因
您在第一次测试中设置了autolag=None
。使用autolag=None
算法将使用maxlag作为Augmented Dickey-Fuller测试中的滞后。所以在result = adfuller(Y, maxlag=15, autolag=None, regression='ct')
中,它使用15滞后的数据测试静止。
默认设置为autolag = "AIC"
时,会选择延迟数以最小化AIC。选择的延迟是测试结果的第3个result[2]
。
检查两次测试的滞后是否相同。
回归:
1)。 'ct':常数和趋势
2)。默认值:仅限常量
python中adfuller的详细信息:adfuller