ComeçarComece de graça

Previsão com dados semanais

Com dados semanais, é difícil lidar com sazonalidade usando modelos ETS ou ARIMA, pois o período sazonal é muito grande (aproximadamente 52). Em vez disso, você pode usar regressão harmônica, que utiliza senos e cossenos para modelar a sazonalidade.

A função fourier() facilita a geração dos harmônicos necessários. Quanto maior a ordem (\(K\)), mais “ondulado” o padrão sazonal pode ser. Com \(K=1\), é uma curva seno simples. Você pode selecionar o valor de \(K\) minimizando o AICc. Como você viu no vídeo, fourier() recebe uma série temporal obrigatória, o número obrigatório de termos de Fourier a gerar e um número opcional de linhas para previsão:

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

Os dados pré-carregados gasoline reúnem observações semanais de produtos de gasolina automotiva finalizados nos EUA. Neste exercício, você vai ajustar uma regressão harmônica a esse conjunto de dados e prever os próximos 3 anos.

Este exercício faz parte do curso

Previsão em R

Ver curso

Instruções do exercício

  • Crie uma matriz xreg chamada harmonics usando o método fourier() em gasoline com ordem \(K=13\), escolhida para minimizar o AICc.
  • Ajuste um modelo de regressão dinâmica em fit. Defina xreg como harmonics e seasonal como FALSE, pois a sazonalidade é tratada pelos regressores.
  • Crie uma nova matriz xreg chamada newharmonics de forma semelhante e, em seguida, calcule as previsões para os próximos três anos como fc.
  • Por fim, faça o gráfico das previsões fc.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código