1. Nauka
  2. /
  3. Kursy
  4. /
  5. Prognozowanie w R

Connected

ćwiczenie

Ocena dokładności prognoz metodami niesezonowymi

W data science zbiór treningowy to zbiór danych używany do wykrywania potencjalnych zależności. Zbiór testowy służy natomiast do weryfikacji siły tych zależności. Dzieląc dane na te dwie części, zazwyczaj przeznaczasz więcej danych na trening, a mniej na testowanie.

Jedną z funkcji, której możesz użyć do tworzenia zbiorów treningowych i testowych, jest subset(). Zwraca ona podzbiór szeregu czasowego, przy czym opcjonalne argumenty start i end określa się za pomocą indeksów.

> # 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, ...)

Jak widziałeś w filmie, funkcja accuracy() oblicza różne statystyki dokładności prognoz na podstawie prognoz i odpowiadających im rzeczywistych wartości. Jest na tyle inteligentna, że sama znajdzie odpowiednie obserwacje, nawet jeśli przekażesz jej ich więcej niż prognozowanych.

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

Wśród dostępnych miar dokładności znajduje się pierwiastek błędu średniokwadratowego (RMSE), czyli pierwiastek kwadratowy ze średniego błędu kwadratowego (MSE). Minimalizacja RMSE – która odpowiada zwiększeniu dokładności – jest równoważna minimalizacji MSE.

Wczytany szereg czasowy gold zawiera dzienne ceny złota z 1108 dni. Użyjesz pierwszych 1000 dni jako zbioru treningowego i obliczysz prognozy dla pozostałych 108 dni. Wyniki porównasz z rzeczywistymi wartościami za pomocą prostych funkcji prognozujących: naive(), której używałeś wcześniej w tym rozdziale, oraz meanf(), która jako prognozy zwraca średnią wszystkich obserwacji. Dla obu funkcji konieczne będzie podanie argumentu h, określającego liczbę wartości do prognozowania.

Instrukcje

100 XP
  • Użyj funkcji subset(), aby utworzyć zbiór treningowy dla gold zawierający pierwsze 1000 obserwacji. Przypisz go do zmiennej train.
  • Oblicz prognozy dla zbioru testowego (zawierającego pozostałe dane) za pomocą funkcji naive() i przypisz wynik do naive_fc. Ustaw odpowiednią wartość h.
  • Oblicz prognozy dla tego samego zbioru testowego za pomocą funkcji meanf() i przypisz wynik do mean_fc. Ustaw odpowiednią wartość h.
  • Porównaj statystyki dokładności obu metod, używając funkcji accuracy().
  • Na podstawie powyższych wyników przypisz prognozy o wyższej dokładności do zmiennej bestforecasts.