Jämföra auto.arima() och ets() på säsongsdata
Hur gör du när du vill skapa tränings- och testuppsättningar för data med högre frekvens än årsvis? Vid behov kan du använda en vektor på formen c(year, period) för nyckelorden start och/eller end i funktionen window(). Du behöver också se till att du använder rätt värde på h i prognoseringsfunktionerna. Kom ihåg att h ska vara lika med antalet observationer i din testuppsättning.
Om din data sträcker sig över 15 år, träningsuppsättningen består av de första 10 åren och du vill prognostisera de sista 5 åren, ska du till exempel använda h = 12 * 5 och inte h = 5 – eftersom testuppsättningen innehåller 60 månatliga observationer. Om träningsuppsättningen i stället består av de första 9,5 åren och du vill prognostisera de sista 5,5 åren, använder du h = 66 för att ta hänsyn till de extra 6 månaderna.
I det avslutande avsnittet för det här kapitlet jämför du säsongs-ARIMA- och ETS-modeller tillämpade på kvartalsdata över cementproduktion, qcement. Eftersom serien är mycket lång kan du använda en tränings- och testuppsättning i stället för tidsserieskorsvalidering. Det går betydligt snabbare.
Datamängden qcement finns tillgänglig i din workspace.
Den här övningen är en del av kursen
Prognoser i R
Övningsinstruktioner
- Skapa en träningsuppsättning kallad
trainsom består av 20 år avqcement-data med start år 1988 och slut vid sista kvartalet 2007. Du måste använda en vektor förend. Återstående data utgör din testuppsättning. - Anpassa ARIMA- och ETS-modeller till träningsdata och spara dem som
fit1respektivefit2. - Kontrollera, precis som i tidigare övningar, att båda modellerna har vitbrusigangresualer.
- Skapa prognoser för återstående data från båda modellerna som
fc1respektivefc2. Sätthtill det totala antalet kvartal i din testuppsättning. Var uppmärksam – den sista observationen iqcementär inte det sista kvartalet på året! - Använd funktionen
accuracy()för att hitta den bättre modellen baserat på RMSE-värdet och spara den sombettermodel.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Use 20 years of the qcement data beginning in 1988
train <- window(___, start = ___, end = ___)
# Fit an ARIMA and an ETS model to the training data
fit1 <- ___
fit2 <- ___
# Check that both models have white noise residuals
___
___
# Produce forecasts for each model
fc1 <- forecast(___, h = ___)
fc2 <- forecast(___, h = ___)
# Use accuracy() to find better model based on RMSE
accuracy(___, ___)
accuracy(___, ___)
bettermodel <- ___