ÎncepețiÎncepe gratuit

Evaluarea acurateței prognozei pentru metode non-sezoniere

În știința datelor, un set de antrenament este un set de date folosit pentru a descoperi posibile relații. Un set de testare este un set de date folosit pentru a verifica soliditatea acestor relații potențiale. Când împarți un set de date în aceste două părți, în general aloci mai multe date pentru antrenament și mai puține pentru testare.

O funcție care poate fi folosită pentru a crea seturi de antrenament și de testare este subset(), care returnează un subset al unei serii de timp, unde argumentele opționale start și end sunt specificate prin valori de index.

> # x is a numerical vector or time series
> # To subset observations from 101 to 500
> train <- subset(x, start = 101, end = 500, ...)

> # To subset the first 500 observations
> train <- subset(x, end = 500, ...)

Așa cum ai văzut în videoclip, o altă funcție, accuracy(), calculează diverse statistici de acuratețe a prognozei pe baza prognozelor și a observațiilor reale corespunzătoare. Este suficient de inteligentă încât să găsească observațiile relevante chiar dacă îi oferi mai multe decât cele pentru care faci prognoza.

> # f is an object of class "forecast"
> # x is a numerical vector or time series
> accuracy(f, x, ...)

Măsurile de acuratețe furnizate includ eroarea pătratică medie (RMSE), care reprezintă rădăcina pătrată a erorii pătratice medii (MSE). Minimizarea RMSE, care corespunde creșterii acurateței, este echivalentă cu minimizarea MSE.

Seria de timp preîncărcată gold conține prețurile zilnice ale aurului pentru 1.108 zile. Vei folosi primele 1.000 de zile ca set de antrenament și vei calcula prognoze pentru cele 108 zile rămase. Acestea vor fi comparate cu valorile reale din acele zile, folosind funcțiile simple de prognoză naive(), pe care ai folosit-o anterior în acest capitol, și meanf(), care generează prognoze egale cu media tuturor observațiilor. Va trebui să specifici argumentul h (care indică numărul de valori pe care vrei să le prognozezi) pentru ambele funcții.

Acest exercițiu face parte din cursul

Prognoze în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește subset() pentru a crea un set de antrenament pentru gold care să cuprindă primele 1.000 de observații. Acesta va fi numit train.
  • Calculează prognozele pentru setul de testare, care conține datele rămase, folosind naive() și atribuie rezultatul variabilei naive_fc. Setează h corespunzător.
  • Acum, calculează prognoze pentru același set de testare folosind meanf() și atribuie rezultatul variabilei mean_fc. Setează h corespunzător.
  • Compară statisticile de acuratețe ale celor două metode folosind funcția accuracy().
  • Pe baza rezultatelor de mai sus, stochează prognozele cu acuratețea mai mare în variabila bestforecasts.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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 <- ___
Editează și rulează codul