Série Temporal - Validação Walk Forward

Na modelagem de série temporal, as previsões ao longo do tempo se tornam cada vez menos precisas e, portanto, é uma abordagem mais realista treinar novamente o modelo com dados reais à medida que ele fica disponível para previsões adicionais. Como o treinamento de modelos estatísticos não consome muito tempo, a validação direta é a solução preferida para obter resultados mais precisos.

Vamos aplicar a validação de um passo à frente em nossos dados e compará-los com os resultados obtidos anteriormente.

Em [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)

Em [335]:

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

Em [341]:

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

Em [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

Podemos ver que nosso modelo tem um desempenho significativamente melhor agora. Na verdade, a tendência é seguida tão de perto que, no gráfico, as previsões se sobrepõem aos valores reais. Você também pode tentar aplicar a validação direta em modelos ARIMA.