Comparando auto.arima() e ets() em dados sazonais
O que acontece quando você quer criar conjuntos de treinamento e teste para dados com frequência maior do que anual? Se necessário, você pode usar um vetor no formato c(year, period) para as palavras-chave start e/ou end na função window(). Você também deve garantir que está usando valores adequados de h nas funções de previsão. Lembre-se de que h deve ser igual ao tamanho dos dados que compõem seu conjunto de teste.
Por exemplo, se seus dados abrangem 15 anos, seu conjunto de treinamento consiste nos primeiros 10 anos e você pretende prever os últimos 5 anos de dados, você usaria h = 12 * 5 e não h = 5, porque seu conjunto de teste incluiria 60 observações mensais. Se, em vez disso, seu conjunto de treinamento consistir nos primeiros 9,5 anos e você quiser prever os últimos 5,5 anos, você usaria h = 66 para considerar os 6 meses extras.
No exercício final deste capítulo, você vai comparar modelos sazonais ARIMA e ETS aplicados aos dados trimestrais de produção de cimento qcement. Como a série é muito longa, você pode usar conjuntos de treinamento e teste em vez de validação cruzada em séries temporais. Isso é bem mais rápido.
Os dados qcement estão disponíveis no seu workspace.
Este exercício faz parte do curso
Previsão em R
Instruções do exercício
- Crie um conjunto de treinamento chamado
traincomposto por 20 anos de dados deqcement, começando em 1988 e terminando no último trimestre de 2007; você deve usar um vetor paraend. Os dados restantes são seu conjunto de teste. - Ajuste modelos ARIMA e ETS aos dados de treinamento e salve-os em
fit1efit2, respectivamente. - Assim como nos exercícios anteriores, verifique se ambos os modelos têm resíduos de ruído branco.
- Produza previsões para os dados restantes a partir de ambos os modelos como
fc1efc2, respectivamente. Definahcomo o número total de trimestres no seu conjunto de teste. Cuidado: a última observação emqcementnão é o último trimestre do ano! - Usando a função
accuracy(), encontre o melhor modelo com base no valor de RMSE e salve-o comobettermodel.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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 <- ___