Serie storica - Convalida in avanti

Nella modellazione delle serie temporali, le previsioni nel tempo diventano sempre meno accurate e quindi è un approccio più realistico riqualificare il modello con dati effettivi man mano che diventano disponibili per ulteriori previsioni. Poiché l'addestramento di modelli statistici non richiede tempo, la convalida diretta è la soluzione preferita per ottenere risultati più accurati.

Applichiamo la convalida di un passo avanti ai nostri dati e confrontiamoli con i risultati ottenuti in precedenza.

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

In [335]:

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

In [341]:

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

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

Possiamo vedere che il nostro modello funziona notevolmente meglio ora. In effetti, il trend è seguito così da vicino che sulla trama le previsioni si sovrappongono ai valori effettivi. Puoi provare ad applicare la convalida walk-forward anche sui modelli ARIMA.