EmpezarEmpieza gratis

Comparar auto.arima() y ets() en datos sin estacionalidad

La estadística AICc es útil para seleccionar entre modelos de la misma clase. Por ejemplo, puedes usarla para elegir un modelo ETS o para elegir un modelo ARIMA. Sin embargo, no puedes usarla para comparar modelos ETS y ARIMA porque pertenecen a clases de modelos diferentes.

En su lugar, puedes usar validación cruzada en series temporales para comparar un modelo ARIMA y un modelo ETS sobre los datos austa. Como tsCV() requiere funciones que devuelvan objetos de pronóstico, vas a definir funciones sencillas que ajusten los modelos y devuelvan los pronósticos. Los argumentos de tsCV() son una serie temporal, una función de pronóstico y el horizonte de pronóstico h. Revisa este fragmento de código del segundo capítulo:

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

Además, recuerda que los operadores pipe en R toman el valor de lo que está a la izquierda y lo pasan como argumento a lo que está a la derecha, paso a paso, de izquierda a derecha. Aquí tienes un ejemplo basado en código que viste en un capítulo anterior:

# Representa pronósticos a 20 años de la serie lynx modelada con ets()
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()

En este ejercicio, compararás el MSE de dos funciones de pronóstico aplicadas a austa, y representarás los pronósticos de la función que produce los mejores resultados. Una vez más, austa ya se ha cargado en tu espacio de trabajo.

Este ejercicio forma parte del curso

Forecasting en R

Ver curso

Instrucciones del ejercicio

  • Completa la función farima() para pronosticar los resultados de auto.arima(). Sigue la estructura del código ya escrito en fets(), que hace lo mismo con ets().
  • Calcula los errores con validación cruzada para modelos ETS sobre austa usando tsCV() con errores de un paso, y guarda esto en e1.
  • Calcula los errores con validación cruzada para modelos ARIMA sobre austa usando tsCV() con errores de un paso, y guarda esto en e2.
  • Calcula el MSE con validación cruzada para cada clase de modelo y elimina los valores faltantes. Consulta el capítulo anterior si no recuerdas cómo calcular el MSE.
  • Genera y representa pronósticos a 10 años de los valores futuros de austa usando la mejor clase de modelo.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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