ÎncepețiÎncepe gratuit

Compararea auto.arima() și ets() pe date sezoniere

Ce se întâmplă atunci când vrei să creezi seturi de antrenament și de testare pentru date cu o frecvență mai mare decât cea anuală? Dacă este necesar, poți folosi un vector de forma c(year, period) pentru argumentele start și/sau end din funcția window(). Asigură-te totodată că folosești valorile corecte pentru h în funcțiile de prognoză. Reține că h trebuie să fie egal cu lungimea datelor din setul tău de testare.

De exemplu, dacă datele acoperă 15 ani, setul de antrenament cuprinde primii 10 ani, iar tu vrei să prognozezi ultimii 5 ani, vei folosi h = 12 * 5, nu h = 5, deoarece setul de testare include 60 de observații lunare. Dacă în schimb setul de antrenament cuprinde primii 9,5 ani și vrei să prognozezi ultimii 5,5 ani, vei folosi h = 66 pentru a include și cele 6 luni suplimentare.

În exercițiul final al acestui capitol, vei compara modele ARIMA sezoniere și modele ETS aplicate pe datele trimestriale privind producția de ciment qcement. Deoarece seria este foarte lungă, îți poți permite să folosești seturi de antrenament și de testare în loc de validarea încrucișată pe serii de timp. Această abordare este mult mai rapidă.

Datele qcement sunt disponibile în spațiul tău de lucru.

Acest exercițiu face parte din cursul

Prognoze în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un set de antrenament numit train, format din 20 de ani de date qcement, începând din 1988 și terminând la ultimul trimestru din 2007; trebuie să folosești un vector pentru end. Datele rămase reprezintă setul tău de testare.
  • Ajustează modele ARIMA și ETS pe datele de antrenament și salvează-le în fit1, respectiv fit2.
  • La fel ca în exercițiile anterioare, verifică că ambele modele au reziduuri de tip zgomot alb.
  • Generează predicții pentru datele rămase din ambele modele, sub forma fc1 și fc2. Setează h la numărul total de trimestre din setul tău de testare. Atenție — ultima observație din qcement nu corespunde ultimului trimestru al anului!
  • Folosind funcția accuracy(), identifică modelul mai bun pe baza valorii RMSE și salvează-l ca bettermodel.

Exercițiu interactiv practic

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

# Use 20 years of the qcement data beginning in 1988
train <- window(___, start = ___, end = ___)

# Fit an ARIMA and an ETS model to the training data
fit1 <- ___
fit2 <- ___

# Check that both models have white noise residuals
___
___

# Produce forecasts for each model
fc1 <- forecast(___, h = ___)
fc2 <- forecast(___, h = ___)

# Use accuracy() to find better model based on RMSE
accuracy(___, ___)
accuracy(___, ___)
bettermodel <- ___
Editează și rulează codul