Kom igångKom igång gratis

Prognostisering av veckodata

Med veckodata är det svårt att hantera säsongsvariationer med ETS- eller ARIMA-modeller eftersom säsongslängden är för stor (ungefär 52). I stället kan du använda harmonisk regression, som modellerar säsongsvariationerna med hjälp av sinus- och cosinuskurvor.

Funktionen fourier() gör det enkelt att generera de harmoniker som behövs. Ju högre ordning (\(K\)), desto mer svängigt tillåts säsongsmönstret vara. Med \(K=1\) är det en enkel sinuskurva. Du kan välja värdet på \(K\) genom att minimera AICc-värdet. Som du såg i videon tar fourier() emot en tidsserie, antalet Fourier-termer som ska genereras, och valfritt antalet rader som ska prognostiseras:

> # fourier(x, K, h = NULL)

> fit <- auto.arima(cafe, xreg = fourier(cafe, K = 6),
                    seasonal = FALSE, lambda = 0)
> fit %>%
    forecast(xreg = fourier(cafe, K = 6, h = 24)) %>%
    autoplot() + ylim(1.6, 5.1)

Den inladdade datamängden gasoline innehåller veckovisa data om färdiga motorbensinprodukter i USA. I den här övningen ska du anpassa en harmonisk regressionsmodell till dessa data och prognostisera de kommande tre åren.

Den här övningen är en del av kursen

Prognoser i R

Visa kurs

Övningsinstruktioner

  • Skapa en xreg-matris med namnet harmonics med hjälp av metoden fourier()gasoline med ordningen \(K=13\), vilket har valts för att minimera AICc.
  • Anpassa en dynamisk regressionsmodell till fit. Sätt xreg till harmonics och seasonal till FALSE eftersom säsongsvariationerna hanteras av regressorerna.
  • Skapa en ny xreg-matris med namnet newharmonics på samma sätt, och beräkna sedan prognoser för de kommande tre åren som fc.
  • Plotta slutligen prognoserna fc.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Set up harmonic regressors of order 13
harmonics <- fourier(___, K = ___)

# Fit regression model with ARIMA errors
fit <- auto.arima(___, xreg = ___, seasonal = ___)

# Forecasts next 3 years
newharmonics <- fourier(___, K = ___, h = ___)
fc <- forecast(___, xreg = ___)

# Plot forecasts fc
___
Redigera och kör kod