IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Usa subset() per creare un training set di gold con le prime 1000 osservazioni. Chiamalo train.
  • Calcola le previsioni del test set, contenente i dati rimanenti, usando naive() e assegnale a naive_fc. Imposta h di conseguenza.
  • Ora calcola le previsioni dello stesso test set usando meanf() e assegnale a mean_fc. Imposta h di 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 <- ___
Modifica ed esegui il codice