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
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 decement-data met een voorspellingshorizon van 4. Gebruik de nieuw gemaaktefetsen de bestaandesnaive-functies als je voorspellingsfunctie-argument voor respectievelijke1ene2. - 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 <- ___