IniziaInizia gratis

Confrontare auto.arima() ed ets() su dati stagionali

Cosa succede quando vuoi creare training e test set per dati con frequenza maggiore di quella annuale? Se serve, puoi usare un vettore nella forma c(year, period) per le parole chiave start e/o end nella funzione window(). Devi anche assicurarti di usare i valori appropriati di h nelle funzioni di forecasting. Ricorda che h deve essere uguale alla lunghezza dei dati che compongono il tuo test set.

Per esempio, se i tuoi dati coprono 15 anni, il training set consiste dei primi 10 anni e intendi prevedere gli ultimi 5 anni di dati, useresti h = 12 * 5 e non h = 5 perché il tuo test set includerebbe 60 osservazioni mensili. Se invece il training set consiste dei primi 9,5 anni e vuoi prevedere gli ultimi 5,5 anni, useresti h = 66 per tenere conto dei 6 mesi in più.

Nell’esercizio finale di questo capitolo, confronterai modelli ARIMA stagionali e ETS applicati ai dati trimestrali di produzione di cemento qcement. Poiché la serie è molto lunga, puoi permetterti di usare un training e un test set invece della cross-validation per serie temporali. È molto più veloce.

I dati qcement sono disponibili nel tuo workspace.

Questo esercizio fa parte del corso

Previsioni in R

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un training set chiamato train costituito da 20 anni di dati qcement a partire dal 1988 e fino all’ultimo trimestre del 2007; devi usare un vettore per end. I dati rimanenti sono il tuo test set.
  • Stima modelli ARIMA ed ETS sui dati di training e salvali rispettivamente in fit1 e fit2.
  • Come hai già fatto negli esercizi precedenti, verifica che entrambi i modelli abbiano residui a rumore bianco.
  • Produci le previsioni per i dati rimanenti da entrambi i modelli come fc1 e fc2, rispettivamente. Imposta h al numero totale di trimestri nel tuo test set. Attenzione: l’ultima osservazione in qcement non è l’ultimo trimestre dell’anno!
  • Usando la funzione accuracy(), trova il modello migliore in base al valore di RMSE e salvalo come bettermodel.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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 <- ___
Modifica ed esegui il codice