EmpezarEmpieza gratis

Pronosticar datos semanales

Con datos semanales, es difícil manejar la estacionalidad usando modelos ETS o ARIMA porque la longitud estacional es demasiado grande (aproximadamente 52). En su lugar, puedes usar regresión armónica, que emplea senos y cosenos para modelar la estacionalidad.

La función fourier() facilita generar las armónicas necesarias. Cuanto mayor es el orden (\(K\)), más “ondulado” puede ser el patrón estacional. Con \(K=1\), es una simple curva seno. Puedes seleccionar el valor de \(K\) minimizando el AICc. Como viste en el vídeo, fourier() recibe una serie temporal obligatoria, el número obligatorio de términos de Fourier a generar y un número opcional de filas para las que necesita pronosticar:

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

Los datos precargados gasoline recogen información semanal sobre productos de gasolina de motor terminados en EE. UU. En este ejercicio, ajustarás una regresión armónica a este conjunto de datos y pronosticarás los próximos 3 años.

Este ejercicio forma parte del curso

Forecasting en R

Ver curso

Instrucciones del ejercicio

  • Crea una matriz xreg llamada harmonics usando el método fourier() sobre gasoline con orden \(K=13\), elegido para minimizar el AICc.
  • Ajusta un modelo de regresión dinámica en fit. Establece xreg igual a harmonics y seasonal a FALSE porque la estacionalidad la gestionan los regresores.
  • Crea una nueva matriz xreg llamada newharmonics de forma similar y, después, calcula los pronósticos para los próximos tres años como fc.
  • Por último, representa los pronósticos fc.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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
___
Editar y ejecutar código