2

我有关于网站点击量的月度数据,并想建立一个 SARIMA 模型来预测下个月的预期点击量。因为 SARIMA 模型需要处理固定数据,所以我对数据进行了转换并在 Python 中执行了 Augmented Dickey Fuller 测试,以便检测何时可以停止转换并开始将其输入模型(当p 值<0.05)。

由于数据是季节性的,我是否需要将 adfuller() 中的 maxlag 参数设置为 12,为什么/为什么不呢?

我在两个版本中都进行了 adfuller-test:

  • 默认最大延迟
  • 和 maxlag=12

当然,我收到不同的 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

myTimeSeries 的情节

myLog 的情节

myDiff 的情节

mySeasonalDiff 的情节

看起来如果我必须设置 maxlag=12,我需要进一步转换我的数据,而如果我可以使用默认的 maxlag,我可以在获取日志和第一个差异后停止。所以我想知道,如何正确使用 ADF-Test。

谢谢你的帮助。

4

0 回答 0