IniziaInizia gratis

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

La statistica AICc è utile per scegliere tra modelli della stessa classe. Per esempio, puoi usarla per scegliere un modello ETS oppure per scegliere un modello ARIMA. Tuttavia, non puoi usarla per confrontare ETS e ARIMA perché appartengono a classi di modelli diverse.

In alternativa, puoi usare la cross-validation per serie temporali per confrontare un modello ARIMA e un modello ETS sui dati austa. Poiché tsCV() richiede funzioni che restituiscano oggetti di previsione, imposterai alcune semplici funzioni che adattano i modelli e restituiscono le previsioni. Gli argomenti di tsCV() sono una serie temporale, una funzione di previsione e l’orizzonte di previsione h. Esamina questo frammento di codice dal secondo capitolo:

e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
  e[, h] <- tsCV(goog, naive, h = h)
  ...

Ricorda inoltre che gli operatori pipe in R prendono il valore a sinistra e lo passano come argomento a ciò che si trova a destra, passo dopo passo, da sinistra a destra. Ecco un esempio basato su codice che hai visto in un capitolo precedente:

# Rappresenta le previsioni a 20 anni della serie lynx modellata con ets()
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()

In questo esercizio confronterai la MSE di due funzioni di previsione applicate a austa, e traccerai le previsioni della funzione che produce le previsioni migliori. Anche qui, austa è stato caricato nel tuo workspace.

Questo esercizio fa parte del corso

Previsioni in R

Visualizza il corso

Istruzioni dell'esercizio

  • Compila la funzione farima() per prevedere i risultati di auto.arima(). Segui la struttura del codice pre-scritto in fets() che fa lo stesso per ets().
  • Calcola gli errori cross-validati per i modelli ETS su austa usando tsCV() con errori a un passo e salva il risultato in e1.
  • Calcola gli errori cross-validati per i modelli ARIMA su austa usando tsCV() con errori a un passo e salva il risultato in e2.
  • Calcola la MSE cross-validata per ciascuna classe di modelli e rimuovi i valori mancanti. Se non ricordi come si calcola la MSE, fai riferimento al capitolo precedente.
  • Produci e traccia previsioni a 10 anni dei valori futuri di austa utilizzando la classe di modelli migliore.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Set up forecast functions for ETS and ARIMA models
fets <- function(x, h) {
  forecast(ets(x), h = h)
}
farima <- function(x, h) {
  forecast(___, ___)
}

# Compute CV errors for ETS on austa as e1
e1 <- tsCV(austa, ___, ___)

# Compute CV errors for ARIMA on austa as e2
e2 <- tsCV(___, ___, ___)

# Find MSE of each model class
mean(___, ___)
mean(___, ___)

# Plot 10-year forecasts using the best model class
austa %>% ___ %>% ____
Modifica ed esegui il codice