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

Connected

ćwiczenie

Porównanie auto.arima() i ets() na danych sezonowych

Co zrobić, gdy chcesz podzielić dane na zbiór treningowy i testowy, a dane mają częstotliwość wyższą niż roczna? W takim przypadku możesz podać wektor w postaci c(rok, okres) jako wartość parametrów start i/lub end w funkcji window(). Pamiętaj też, aby dopasować wartość h w funkcjach prognozowania. Parametr h powinien odpowiadać liczbie obserwacji w zbiorze testowym.

Na przykład: jeśli dane obejmują 15 lat, zbiór treningowy zawiera pierwsze 10 lat, a chcesz prognozować ostatnie 5 lat, użyj h = 12 * 5, a nie h = 5 – zbiór testowy zawiera bowiem 60 miesięcznych obserwacji. Jeśli natomiast zbiór treningowy obejmuje pierwsze 9,5 roku, a chcesz prognozować ostatnie 5,5 roku, użyj h = 66, aby uwzględnić dodatkowe 6 miesięcy.

W ostatnim ćwiczeniu tego rozdziału porównasz sezonowy model ARIMA z modelem ETS zastosowanymi do kwartalnych danych o produkcji cementu qcement. Ponieważ szereg jest bardzo długi, możesz pozwolić sobie na podział na zbiór treningowy i testowy zamiast stosować kroswalidację szeregów czasowych – to znacznie szybsze podejście.

Dane qcement są dostępne w twoim środowisku roboczym.

Instrukcje

100 XP
  • Utwórz zbiór treningowy o nazwie train obejmujący 20 lat danych qcement, zaczynający się w roku 1988 i kończący się na ostatnim kwartale 2007 roku; jako wartość end musisz użyć wektora. Pozostałe dane stanowią twój zbiór testowy.
  • Dopasuj modele ARIMA i ETS do danych treningowych i zapisz je odpowiednio jako fit1 i fit2.
  • Tak jak w poprzednich ćwiczeniach, sprawdź, czy reszty obu modeli mają charakter białego szumu.
  • Wygeneruj prognozy dla pozostałych danych z obu modeli i zapisz je odpowiednio jako fc1 i fc2. Ustaw h na łączną liczbę kwartałów w zbiorze testowym. Uwaga – ostatnia obserwacja w qcement nie przypada na ostatni kwartał roku!
  • Korzystając z funkcji accuracy(), wskaż lepszy model na podstawie wartości RMSE i zapisz go jako bettermodel.