Aan de slagGa gratis aan de slag

ETS versus seizoensgebonden naïef

Hier ga je ETS-voorspellingen vergelijken met seizoensgebonden naïeve voorspellingen voor 20 jaar aan cement, een kwartaalreeks voor cementproductie, met time series cross-validatie voor 4 stappen vooruit. Omdat dit even duurt om te draaien, is een verkorte versie van de cement-reeks beschikbaar in je werkruimte.

Het tweede argument voor tsCV() moet een forecast-object retourneren, dus je hebt een functie nodig die een model fit en voorspellingen retourneert. Ter herinnering:

> args(tsCV)
function (y, forecastfunction, h = 1, ...)

In deze oefening gebruik je een bestaande voorspellingsfunctie en ook een functie die voor je is klaargezet. Onthoud: soms werken eenvoudige methoden beter dan geavanceerde!

Deze oefening maakt deel uit van de cursus

Voorspellen in R

Cursus bekijken

Oefeninstructies

  • Een functie die ETS-voorspellingen retourneert, fets(), is al voor je geschreven.
  • Pas tsCV() toe voor zowel ETS als seizoensgebonden naïeve methoden op de cement-data met een voorspellingshorizon van 4. Gebruik de nieuw gemaakte fets en de bestaande snaive-functies als je voorspellingsfunctie-argument voor respectievelijk e1 en e2.
  • Bereken de MSE van de resulterende 4-stapsfouten en verwijder missende waarden. De expressies voor het berekenen van de MSE zijn al voor je gegeven, maar de tweede optionele argumenten nog niet (die heb je eerder gebruikt).
  • Sla de beste MSE op als bestmse. Je kunt simpelweg de volledige coderegel kopiëren die de beste MSE genereert uit de vorige instructie.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Function to return ETS forecasts
fets <- function(y, h) {
  forecast(ets(y), h = h)
}

# Apply tsCV() for both methods
e1 <- tsCV(___, ___, h = ___)
e2 <- tsCV(___, ___, h = ___)

# Compute MSE of resulting errors (watch out for missing values)
mean(e1^2, ___)
mean(e2^2, ___)

# Copy the best forecast MSE
bestmse <- ___
Code bewerken en uitvoeren