我有有关网站点击量的每月数据,并希望建立一个SARIMA模型来预测下个月的预期点击量。由于SARIMA模型需要处理固定数据,因此我转换了数据并用Python进行了增强Dickey Fuller测试,以检测何时可以停止转换并开始将其馈送到模型中(在这种情况下, p值<0.05)。
由于数据是季节性的,我是否需要将adfuller()中的maxlag参数设置为12,为什么/为什么不呢?
我在两个版本中都进行了adfuller测试:
我当然会收到p值的不同结果:
myTimeSeries.plot()
adfuller(myTimeSeries) # p=0.113872
adfuller(myTimeSeries, maxlag=12) # p=0.996884
myLog = numpy.log(myTimeSeries) #log-transfor
myLog.plot()
adfuller(myLog) # p=0.165395
adfuller(myLog, maxlag=12) # p=0.997394
myDiff = myLog.diff(1) #difference with lag 1
myDiff.plot()
myDiff = myDiff.dropna()
adfuller(myDiff) # p=0.003884
adfuller(myDiff, maxlag=12) # p=0.613816
mySeasonalDiff = myDiff.diff(12) #seasonal differencing with lag 12
mySeasonalDiff.plot()
mySeasonalDiff = mySeasonalDiff.dropna()
adfuller(mySeasonalDiff) # p=0.000000
adfuller(mySeasonalDiff, maxlag=12) # p=0.958532
好像必须设置maxlag = 12一样,我需要进一步转换数据,而如果我可以使用默认的maxlag,则可以在获取日志和第一个差后停止。所以我想知道如何正确使用ADF-Test。
感谢您的帮助。