ComeçarComece de graça

Comparando auto.arima() e ets() em dados sem sazonalidade

A estatística AICc é útil para selecionar entre modelos da mesma classe. Por exemplo, você pode usá-la para escolher um modelo ETS ou para escolher um modelo ARIMA. No entanto, você não pode usá-la para comparar modelos ETS e ARIMA porque eles pertencem a classes de modelos diferentes.

Em vez disso, você pode usar validação cruzada em séries temporais para comparar um modelo ARIMA e um modelo ETS com os dados austa. Como tsCV() exige funções que retornem objetos de previsão, você vai definir algumas funções simples que ajustam os modelos e retornam as previsões. Os argumentos de tsCV() são uma série temporal, a função de previsão e o horizonte de previsão h. Observe este trecho de código do segundo capítulo:

e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
  e[, h] <- tsCV(goog, naive, h = h)
  ...

Além disso, lembre-se de que os operadores pipe no R pegam o valor do que está à esquerda e o passam como argumento para o que está à direita, etapa por etapa, da esquerda para a direita. Aqui está um exemplo baseado em código que você viu em um capítulo anterior:

# Plotar previsões de 20 anos da série lynx modelada por ets()
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()

Neste exercício, você vai comparar o MSE de duas funções de previsão aplicadas a austa e gerar gráficos das previsões da função que produzir os melhores resultados. Mais uma vez, austa já foi carregado no seu ambiente de trabalho.

Este exercício faz parte do curso

Previsão em R

Ver curso

Instruções do exercício

  • Complete a função farima() para prever os resultados de auto.arima(). Siga a estrutura do código pré-escrito em fets() que faz o mesmo para ets().
  • Calcule os erros com validação cruzada para modelos ETS em austa usando tsCV() com erros de um passo e salve em e1.
  • Calcule os erros com validação cruzada para modelos ARIMA em austa usando tsCV() com erros de um passo e salve em e2.
  • Calcule o MSE com validação cruzada para cada classe de modelo e remova valores ausentes. Consulte o capítulo anterior se não se lembrar como calcular o MSE.
  • Gere e plote previsões de 10 anos dos valores futuros de austa usando a melhor classe de modelo.

Exercício interativo prático

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

# Set up forecast functions for ETS and ARIMA models
fets <- function(x, h) {
  forecast(ets(x), h = h)
}
farima <- function(x, h) {
  forecast(___, ___)
}

# Compute CV errors for ETS on austa as e1
e1 <- tsCV(austa, ___, ___)

# Compute CV errors for ARIMA on austa as e2
e2 <- tsCV(___, ___, ___)

# Find MSE of each model class
mean(___, ___)
mean(___, ___)

# Plot 10-year forecasts using the best model class
austa %>% ___ %>% ____
Editar e executar o código