Zeitreihen - Walk Forward Validation

Bei der Zeitreihenmodellierung werden die Vorhersagen im Laufe der Zeit immer ungenauer. Daher ist es realistischer, das Modell mit tatsächlichen Daten neu zu trainieren, sobald es für weitere Vorhersagen verfügbar ist. Da das Training statistischer Modelle nicht zeitaufwändig ist, ist die Walk-Forward-Validierung die am meisten bevorzugte Lösung, um genaueste Ergebnisse zu erzielen.

Lassen Sie uns unsere Daten in einem Schritt vorwärts validieren und mit den Ergebnissen vergleichen, die wir zuvor erhalten haben.

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

Wir können sehen, dass unser Modell jetzt deutlich besser abschneidet. Tatsächlich wird der Trend so genau verfolgt, dass sich die Vorhersagen auf dem Plot mit den tatsächlichen Werten überschneiden. Sie können auch versuchen, die Walk-Forward-Validierung auf ARIMA-Modelle anzuwenden.