如何在adstater Python statsmodels中为maxlag参数选择一个值?

时间:2018-08-20 10:24:42

标签: python testing time-series statsmodels arima

我有有关网站点击量的每月数据,并希望建立一个SARIMA模型来预测下个月的预期点击量。由于SARIMA模型需要处理固定数据,因此我转换了数据并用Python进行了增强Dickey Fuller测试,以检测何时可以停止转换并开始将其馈送到模型中(在这种情况下, p值<0.05)。

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

我在两个版本中都进行了adfuller测试:

  • 默认最大时差
  • and 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

plot of myTimeSeries

plot of myLog

plot of myDiff

plot of mySeasonalDiff

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

感谢您的帮助。

0 个答案:

没有答案