Учебники

Временной ряд – проверка шага вперед

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

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

В [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()

Фрагмент кода 18

В [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.