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.