Временные ряды - пошаговая проверка вперед

При моделировании временных рядов прогнозы со временем становятся все менее и менее точными, и, следовательно, это более реалистичный подход - повторно обучать модель с фактическими данными, когда они становятся доступными для дальнейших прогнозов. Поскольку обучение статистических моделей не требует много времени, пошаговая проверка является наиболее предпочтительным решением для получения наиболее точных результатов.

Давайте применим к нашим данным пошаговую проверку вперед и сравним их с результатами, которые мы получили ранее.

В [333]:

prediction = []
data = train.values
for t In test.values:
   model = (ExponentialSmoothing(data).fit())
   y = model.predict()
   prediction.append(y[0])
   data = numpy.append(data, t)

В [335]:

test_ = pandas.DataFrame(test)
test_['predictionswf'] = prediction

В [341]:

plt.plot(test_['T'])
plt.plot(test_.predictionswf, '--')
plt.show()

В [340]:

error = sqrt(metrics.mean_squared_error(test.values,prediction))
print ('Test RMSE for Triple Exponential Smoothing with Walk-Forward Validation: ', error)
Test RMSE for Triple Exponential Smoothing with Walk-Forward Validation:  11.787532205759442

Мы видим, что наша модель теперь работает значительно лучше. Фактически, тренд отслеживается так внимательно, что предсказания на графике перекрываются с фактическими значениями. Вы также можете попробовать применить предварительную проверку к моделям ARIMA.