Valutare l’accuratezza delle previsioni con metodi stagionali
Come hai visto nel primo capitolo, la funzione window() specifica l’start e l’end di una serie temporale usando i tempi rilevanti invece degli indici. Ciascuno di questi due argomenti può essere fornito come vettore del tipo c(year, period), che hai già usato come argomento per ts(). Anche qui, period si riferisce al trimestre.
Qui userai i numeri trimestrali dei visitatori di Melbourne (visnights[, "VICMetro"]) per creare tre diversi insiemi di training, omettendo rispettivamente gli ultimi 1, 2 e 3 anni. Esamina i dati visnights pre-caricati nella console prima di iniziare l’esercizio; questo ti aiuterà a determinare il valore corretto da usare per la parola chiave h (che specifica il numero di valori che vuoi prevedere) nei tuoi metodi di forecasting.
Poi, per ciascun insieme di training, calcola l’anno successivo di dati e infine confronta il mean absolute percentage error (MAPE) delle previsioni usando accuracy(). Perché pensi che il MAPE vari così tanto?
Questo esercizio fa parte del corso
Previsioni in R
Istruzioni dell'esercizio
- Usa
window()per creare tre insiemi di training davisnights[,"VICMetro"], omettendo gli ultimi 1, 2 e 3 anni; chiamali rispettivamentetrain1,train2etrain3. Imposta di conseguenza la parola chiaveend. - Calcola un anno di previsioni per ciascun insieme di training usando il metodo
snaive(). Chiamale rispettivamentefc1,fc2efc3. - Seguendo la struttura del codice di esempio, confronta il MAPE dei tre insiemi di previsioni usando la funzione
accuracy()con il tuo test set.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create three training series omitting the last 1, 2, and 3 years
train1 <- window(visnights[, "VICMetro"], end = c(2015, 4))
train2 <- ___
train3 <- ___
# Produce forecasts using snaive()
fc1 <- snaive(___, h = ___)
fc2 <- ___
fc3 <- ___
# Use accuracy() to compare the MAPE of each series
accuracy(fc1, visnights[, "VICMetro"])["Test set", "MAPE"]
___
___