Valutare l’accuratezza delle previsioni con metodi non stagionali
In data science, un training set è un insieme di dati usato per scoprire possibili relazioni. Un test set è un insieme di dati usato per verificare la solidità di queste relazioni. Quando suddividi un insieme di dati in queste parti, in genere destini più dati al training e meno al test.
Una funzione che puoi usare per creare training e test set è subset(), che restituisce un sottoinsieme di una serie temporale in cui gli argomenti opzionali start ed end sono specificati usando indici.
> # x è un vettore numerico o una serie temporale
> # Per estrarre le osservazioni dalla 101 alla 500
> train <- subset(x, start = 101, end = 500, ...)
> # Per estrarre le prime 500 osservazioni
> train <- subset(x, end = 500, ...)
Come hai visto nel video, un’altra funzione, accuracy(), calcola diverse statistiche di accuratezza delle previsioni dati i forecast e le corrispondenti osservazioni reali. È abbastanza intelligente da trovare le osservazioni rilevanti se le fornisci più di quelle che stai prevedendo.
> # f è un oggetto di classe "forecast"
> # x è un vettore numerico o una serie temporale
> accuracy(f, x, ...)
Le misure di accuratezza includono la root mean squared error (RMSE), cioè la radice quadrata del mean squared error (MSE). Minimizzare l’RMSE, che corrisponde ad aumentare l’accuratezza, equivale a minimizzare l’MSE.
La serie temporale pre-caricata gold contiene i prezzi giornalieri dell’oro per 1108 giorni. Qui userai i primi 1000 giorni come training set e calcolerai le previsioni per i restanti 108 giorni. Queste saranno confrontate con i valori effettivi usando le semplici funzioni di previsione naive(), che hai già utilizzato in questo capitolo, e meanf(), che produce previsioni uguali alla media di tutte le osservazioni. Dovrai specificare il parametro h (che indica il numero di valori da prevedere) per entrambe.
Questo esercizio fa parte del corso
Previsioni in R
Istruzioni dell'esercizio
- Usa
subset()per creare un training set digoldcon le prime 1000 osservazioni. Chiamalotrain. - Calcola le previsioni del test set, contenente i dati rimanenti, usando
naive()e assegnale anaive_fc. Impostahdi conseguenza. - Ora calcola le previsioni dello stesso test set usando
meanf()e assegnale amean_fc. Impostahdi conseguenza. - Confronta le statistiche di accuratezza dei due metodi usando la funzione
accuracy(). - In base ai risultati, salva le previsioni con accuratezza maggiore in
bestforecasts.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create the training data as train
train <- subset(___, end = ___)
# Compute naive forecasts and save to naive_fc
naive_fc <- naive(___, h = ___)
# Compute mean forecasts and save to mean_fc
mean_fc <- meanf(___, h = ___)
# Use accuracy() to compute RMSE statistics
accuracy(___, gold)
___(___, gold)
# Assign one of the two forecasts as bestforecasts
bestforecasts <- ___