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.