Antes de profundizar en diferentes modelos de pronóstico en los próximos capítulos, se introducirán los elementos principales del flujo de trabajo de pronóstico. Esto incluye enfoques para el entrenamiento de un modelo de pronóstico, métodos de evaluación de rendimiento y métodos de referencia. Esto proporcionará al lector un conjunto de herramientas para diseñar y construir un modelo de pronóstico de acuerdo con el objetivo del análisis. Este capítulo aborda los siguientes temas: enfoques de entrenamiento y prueba para un modelo de pronóstico, métodos de evaluación de rendimiento y matrices de medición de errores, métodos de referencia y la cuantificación de la incertidumbre en los pronósticos mediante intervalos de confianza y simulación.
La predicción de series temporales sigue un proceso similar a la regresión o clasificación e involucra estos pasos:
Preparación de datos: Preparación de datos, incluyendo división en conjuntos de entrenamiento y prueba, creación de nuevas características y transformaciones si es necesario.
Entrenar el modelo: Utilización del conjunto de entrenamiento para entrenar el modelo y ajustar sus coeficientes para minimizar el error.
Probar el modelo: Utilización del modelo entrenado para predecir datos en el conjunto de prueba y evaluar su rendimiento en nuevos datos.
Evaluación del modelo: Evaluación del rendimiento del modelo en ambos conjuntos de entrenamiento y prueba.
Si el modelo cumple con ciertos criterios, se utiliza para generar pronósticos finales. Si no, se ajustan parámetros de entrenamiento o se elige un modelo diferente y se repite el proceso. El sobreajuste, que ocurre cuando el modelo se adapta demasiado al conjunto de entrenamiento, se evita evaluando el rendimiento en conjuntos de entrenamiento y prueba. El alto error en el entrenamiento en comparación con un bajo error en la prueba indica sobreajuste, generalmente causado por ajustes incorrectos de parámetros o modelos demasiado complejos.
Por otro lado, este proceso tiene características únicas que lo distinguen de otros campos predictivos:
El diagrama siguiente muestra el flujo de trabajo de pronóstico.
El entrenamiento del modelo es un elemento central en el flujo de trabajo de pronóstico. La calidad del entrenamiento del modelo afecta directamente la precisión del pronóstico. Los objetivos principales incluyen formalizar la relación de la serie con patrones estacionales, tendencias, correlación con valores pasados y variables externas de manera predictiva, ajustar los parámetros del modelo cuando sea necesario y garantizar que el modelo sea escalable para nuevos datos sin sobreajuste. Antes del entrenamiento, la serie se divide en particiones de entrenamiento y prueba, que deben estar en orden cronológico debido a la relación matemática que la mayoría de los modelos de series temporales establecen entre la serie y sus valores pasados.
Un enfoque común para el entrenamiento es utilizar particiones únicas de entrenamiento y prueba. Esto implica dividir la serie en particiones de entrenamiento y prueba, entrenar el modelo en la partición de entrenamiento y evaluar su rendimiento en la partición de prueba.
En el enfoque de particiones únicas de entrenamiento y prueba, es importante notar que las particiones se organizan en orden cronológico. La longitud de la partición de prueba se determina generalmente siguiendo dos pautas:
La longitud de la partición de prueba debe ser de hasta el 30% de la longitud total de la serie para tener suficientes datos de observación para el proceso de entrenamiento.
La longitud del horizonte de pronóstico, siempre y cuando no viole la regla anterior. Esto se relaciona con el aumento de la incertidumbre a medida que el horizonte de pronóstico se amplía.
Por ejemplo, si tenemos una serie mensual con 72 observaciones (6 años) y queremos pronosticar el próximo año (12 meses), tendría sentido utilizar las primeras 60 observaciones para el entrenamiento y evaluar el rendimiento utilizando las últimas 12 observaciones como prueba. La creación de particiones en R se puede hacer manualmente con la función “window” del paquete “stats”.
#install.packages("TSstudio")
library(TSstudio)
data(USgas)
ts_info(USgas)
## The USgas series is a ts object with 1 variable and 238 observations
## Frequency: 12
## Start time: 2000 1
## End time: 2019 10
train <- window(USgas,
start = time(USgas)[1],end = time(USgas)[length(USgas) - 12])
test <- window(USgas,
start = time(USgas)[length(USgas) - 12 + 1],
end = time(USgas)[length(USgas)])
ts_info(USgas)
## The USgas series is a ts object with 1 variable and 238 observations
## Frequency: 12
## Start time: 2000 1
## End time: 2019 10
ts_info(test)
## The test series is a ts object with 1 variable and 12 observations
## Frequency: 12
## Start time: 2018 11
## End time: 2019 10
# The sample.out argument set the size of the testing partition (and therefore the training partition)
USgas_partitions <- ts_split(USgas, sample.out = 12)
train <- USgas_partitions$train
test <- USgas_partitions$test
ts_info(train)
## The train series is a ts object with 1 variable and 226 observations
## Frequency: 12
## Start time: 2000 1
## End time: 2018 10
ts_info(test)
## The test series is a ts object with 1 variable and 12 observations
## Frequency: 12
## Start time: 2018 11
## End time: 2019 10
La principal ventaja de este método es su simplicidad, ya que es bastante rápido entrenar y probar un modelo utilizando recursos informáticos relativamente económicos. Sin embargo, no es posible llegar a una conclusión sobre la estabilidad y escalabilidad del rendimiento del modelo basándose en una única unidad de prueba. Es factible que un modelo, por pura casualidad, tenga un rendimiento relativamente bueno en el conjunto de pruebas pero lo haga mal en el pronóstico real debido a su falta de estabilidad a lo largo del tiempo. Una forma de mitigar este riesgo es mediante el enfoque de backtesting, que se basa en entrenar un modelo con múltiples particiones de entrenamiento y prueba.
El enfoque de backtesting para entrenar un modelo de pronóstico es una versión avanzada del enfoque de una sola prueba fuera de la muestra que vimos anteriormente. Se basa en el uso de una ventana móvil para dividir la serie en múltiples pares de particiones de entrenamiento y prueba. El proceso básico de entrenamiento de backtesting incluye los siguientes pasos:
El uso de una metodología de puntuación nos permite evaluar la estabilidad del modelo examinando la tasa de error del modelo en los diferentes conjuntos de prueba. Consideramos un modelo como estable cuando la distribución de errores del modelo en los conjuntos de prueba es bastante estrecha. En este caso, la tasa de error del pronóstico real debería estar dentro del mismo rango que los conjuntos de prueba (si no hay eventos anormales que afecten la tasa de error del pronóstico).
Este método es conceptualmente similar al enfoque de validación cruzada para entrenar modelos de aprendizaje automático. La principal diferencia entre los dos enfoques se relaciona con cómo se establecen sus particiones. Mientras que las particiones de backtesting están ordenadas cronológicamente, las del enfoque de validación cruzada se basan en muestreo aleatorio.
Los principales parámetros de configuración de un modelo de entrenamiento de backtesting son los siguientes:
Longitud de las particiones de entrenamiento: Establecida por la configuración de la ventana. Hay dos tipos comunes de ventanas móviles:
Longitud de las particiones de prueba: un valor constante, generalmente alineado con la longitud del horizonte de pronóstico (bajo la limitación del número mínimo de observaciones requeridas para entrenar el modelo).
Espacio entre cada partición de entrenamiento: define el ritmo de la ventana móvil.
Número de particiones de entrenamiento y prueba.
El método de backtesting implica dividir la serie en múltiples pares de particiones de entrenamiento y prueba utilizando una ventana móvil. Se entrenan modelos en las particiones de entrenamiento y se evalúa su rendimiento en las particiones de prueba. Este enfoque permite evaluar la estabilidad del modelo y ajustarlo si es necesario. Hay dos tipos de ventanas móviles: en expansión y deslizante. La ventana en expansión comienza en el mismo punto y es útil para series con patrones estacionales y tendencias estables, pero puede introducir sesgo. La ventana deslizante tiene particiones de la misma longitud y evita el sesgo. la ventana, como todas las particiones de entrenamiento, son de la misma longitud, como puedes ver en el siguiente diagrama
Tiene más sentido utilizar la ventana deslizante cuando la serie de entrada tiene cambios estructurales o alta volatilidad, o cuando la mayor parte del poder predictivo está vinculada a la historia más reciente (o alta correlación con los rezagos más recientes de la serie). Por ejemplo, como vimos en el capítulo anterior, los precios mensuales del petróleo crudo tienen una fuerte relación con los rezagos más recientes de la serie, y la historia lejana no contiene información predictiva relevante sobre la dirección futura de la serie.
Si bien el enfoque de backtesting nos proporciona información intuitiva sobre la estabilidad y escalabilidad del modelo, conlleva un mayor costo computacional en comparación con el enfoque de una sola partición de entrenamiento y prueba. Por lo tanto, se debe considerar este equilibrio entre los dos enfoques al seleccionar el método de entrenamiento.
El objetivo principal de la etapa de evaluación es evaluar la capacidad del modelo entrenado para pronosticar (o basarse en otros criterios) las observaciones futuras de la serie de manera precisa. Este proceso incluye los siguientes pasos:
El análisis residual evalúa qué tan bien el modelo capturó y identificó los patrones de una serie temporal. Además, proporciona información sobre la distribución de los residuos, necesaria para construir intervalos de confianza en las previsiones. Los residuos son la diferencia entre la observación real y el valor ajustado del modelo. Este proceso implica el uso de herramientas de visualización de datos y pruebas estadísticas para evaluar la bondad del ajuste y la autocorrelación de los residuos. La distribución de los residuos debe ser normal para utilizarlos en la construcción de intervalos de confianza. El texto también menciona la aplicación de un modelo ARIMA en una serie de tiempo. A continuación se realiza esto en el programa.
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
md <- auto.arima(train)
Para examinar los residuos, se utiliza la función checkresiduals del paquete de pronóstico, la cual proporciona cuatro resultados: 1. Gráfico de la serie temporal de los residuos. 2. Gráfico ACF de los residuos. 3. Gráfico de distribución de los residuos. 4. Resultado de la prueba de Ljung-Box.
La prueba de Ljung-Box es un método estadístico para verificar si la autocorrelación de una serie (en este caso, los residuos) es diferente de cero. Tiene dos hipótesis: - H0: El nivel de correlación entre la serie y su rezago es igual a cero, lo que significa que las observaciones de la serie son independientes. - H1: El nivel de correlación entre la serie y su rezago es diferente de cero, lo que significa que las observaciones de la serie no son independientes.
Se utiliza la función checkresiduals para evaluar el rendimiento del modelo entrenado en la partición de entrenamiento.
checkresiduals(md)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,1,1)(2,1,1)[12]
## Q* = 24.95, df = 18, p-value = 0.1263
##
## Model df: 6. Total lags used: 24
Basándonos en los resultados de la prueba de Ljung-Box y los valores p, podemos rechazar la hipótesis nula con un nivel de significancia del 0.01. Esto indica que la correlación entre la serie de residuos y sus rezagos es diferente de cero. El gráfico ACF respalda esta conclusión. Esto sugiere que el modelo no capturó completamente todos los patrones de la serie, y podría ser necesario ajustar los parámetros del modelo. En cuanto al gráfico de la serie temporal de residuos, muestra oscilaciones alrededor del eje x, con excepción de algunos residuos que cruzan el valor de 250. Esto podría indicar la presencia de valores atípicos en esos períodos, que necesitan ser revisados en la serie de datos. Por último, el gráfico de distribución de los residuos parece representar adecuadamente una distribución normal.
Una vez que hayas ajustado tu modelo, es el momento de evaluar su capacidad para predecir observaciones que el modelo no ha visto antes (en contraste con los valores ajustados que el modelo ha visto durante el proceso de entrenamiento). El método más común para evaluar el éxito de la predicción de los valores reales es el uso de métricas de precisión o error. Algunas métricas comunes para evaluar el éxito de las predicciones son:
Error Cuadrático Medio (MSE): Cuantifica la distancia cuadrada promedio entre los valores reales y los valores pronosticados. Evita que los valores positivos y negativos se cancelen mutuamente, penalizando el error a medida que aumenta.
Raíz del Error Cuadrático Medio (RMSE): Es la raíz cuadrada de la distancia cuadrada promedio entre los valores reales y pronosticados. Al igual que el MSE, es sensible a los valores atípicos debido al efecto cuadrado.
Error Absoluto Medio (MAE): Mide la tasa de error absoluto del pronóstico. Al igual que el MSE y el RMSE, esta métrica solo tiene valores positivos y no penaliza el error, por lo que no es sensible a los valores atípicos.
Error Porcentual Absoluto Medio (MAPE): Mide el error absoluto promedio en términos de porcentaje. Es más fácil de comparar y comunicar con personas no técnicas debido a su representación en porcentaje.
Para evaluar el rendimiento de tu modelo, puedes usar estas métricas para comparar tus predicciones con los valores reales. Por ejemplo, puedes utilizar la función de pronóstico del paquete de pronóstico para predecir un conjunto de observaciones que no se utilizaron en el entrenamiento y luego evaluar el desempeño del modelo en función de estas métricas.
fc <- forecast(md, h = 12)
Ahora que hemos asignado el pronóstico al objeto “fc”, utilizaremos la función “accuracy” del paquete de pronóstico para evaluar el rendimiento del modelo en comparación con los valores reales en la partición de prueba. Esta función calculará varias métricas de precisión, como el Error Cuadrático Medio (MSE), la Raíz del Error Cuadrático Medio (RMSE), el Error Absoluto Medio (MAE) y el Error Porcentual Absoluto Medio (MAPE) para evaluar qué tan bien se ajusta el modelo a los datos de prueba.
accuracy(fc, test)
## ME RMSE MAE MPE MAPE MASE
## Training set 5.844136 97.81626 73.42657 0.1170672 3.522348 0.6376860
## Test set 37.847885 103.22848 81.46603 1.3107987 3.261643 0.7075062
## ACF1 Theil's U
## Training set -0.004183172 NA
## Test set -0.046708926 0.3404092
La función “accuracy”, que utilizaremos intensivamente en los próximos capítulos, proporciona varias métricas de error tanto para los valores ajustados (conjunto de entrenamiento) como para las predicciones reales (conjunto de prueba). Se observa que el MAPE del modelo es del 3.52% en el conjunto de entrenamiento y del 7.84% en el conjunto de prueba. Un error más alto en el conjunto de prueba en comparación con el conjunto de entrenamiento no es sorprendente, ya que el modelo generalmente se ajustó a los datos del conjunto de entrenamiento durante el proceso de entrenamiento. Un error bajo en el conjunto de entrenamiento y un error alto en el conjunto de prueba son indicativos de un sobreajuste del modelo.
Una alternativa para evaluar el ajuste del modelo en ambos conjuntos (entrenamiento y prueba) es utilizar la función “test_forecast” del paquete TSstudio. Esta función visualiza la serie real, los valores ajustados en el conjunto de entrenamiento y las predicciones en el conjunto de prueba. Al hacer clic en los valores ajustados o pronosticados, aparecerá una ventana emergente con los resultados de RMSE y MAPE en ambos conjuntos, lo cual es útil para evaluar el modelo en detalle.
test_forecast(actual = USgas,
forecast.obj = fc,
test = test)
Es más fácil y rápido identificar información sobre la calidad del ajuste tanto de los valores ajustados como de los pronosticados al trazar esos valores frente a los valores reales de la serie. Por ejemplo, de inmediato notarás que el pico residual en 2006 se debe a valores atípicos (o un consumo más bajo de lo normal en la serie). Además, el pronóstico real no capturó el pico anual de 2018. Estos aspectos no se pueden observar mediante métricas de error y resaltan la importancia de la visualización para obtener información valiosa sobre el modelo.
Para evaluar si los resultados de las métricas de error (MAPE del 7.84% o RMSE de 208.01) son altos o bajos, se suele recurrir a la comparación con un enfoque de referencia o algún método heredado que se desee reemplazar. Un enfoque común es utilizar un enfoque de pronóstico simplista como referencia. Por ejemplo, se puede utilizar un enfoque ingenuo para pronosticar la serie y utilizarlo como punto de referencia para el pronóstico anterior creado con el modelo ARIMA.
Un enfoque ingenuo generalmente asume que el valor más recientemente observado es el representante verdadero del futuro. Por lo tanto, continuará con el último valor hacia el infinito (o hasta el horizonte del pronóstico). Se puede crear un pronóstico ingenuo con la función “naive” del paquete de pronóstico y utilizar el conjunto de entrenamiento como entrada del modelo. Luego, comparar el rendimiento del modelo ARIMA con este pronóstico ingenuo ayudará a determinar si los resultados son competitivos o si se necesita mejorar el modelo.
library(forecast)
Es posible revisar el rendimiento del modelo en las particiones de entrenamiento y prueba usando la siguiente función:
naive_model <- naive(train, h = 12)
test_forecast(actual = USgas,
forecast.obj = naive_model,
test = test)
Se realizá un resumen de la presición:
accuracy(naive_model, test)
## ME RMSE MAE MPE MAPE MASE
## Training set -1.028444 285.6607 228.5084 -0.9218463 10.97123 1.984522
## Test set 301.891667 499.6914 379.1417 9.6798015 13.28187 3.292723
## ACF1 Theil's U
## Training set 0.3761105 NA
## Test set 0.7002486 1.499679
En el caso del modelo ingenuo, no hay un proceso de entrenamiento y los valores ajustados se establecen como los valores reales (como se puede ver en el gráfico anterior). Dado que USgas tiene un patrón estacional fuerte, tendría sentido utilizar un modelo ingenuo estacional que tenga en cuenta la variación estacional. El modelo “snaive_model” del paquete de pronóstico utiliza el último punto estacional como pronóstico para todas las observaciones estacionales correspondientes. Por ejemplo, si estamos trabajando con una serie mensual, el valor de enero más reciente en la serie se utilizará como el pronóstico puntual para todos los futuros meses de enero.
snaive_model <- snaive(train, h = 12)
test_forecast(actual = USgas,
forecast.obj = snaive_model,
test = test)
Se realizá un resumen de la presición:
accuracy(snaive_model, test)
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 33.99953 148.7049 115.1453 1.379869 5.494048 1.000000 0.4859501
## Test set 96.45000 164.6967 135.8833 3.612060 5.220458 1.180103 -0.2120929
## Theil's U
## Training set NA
## Test set 0.4289964
Parece que el modelo ingenuo estacional se ajusta mejor al tipo de serie que estamos pronosticando, es decir, USgas, debido a su fuerte patrón estacional (en comparación con el modelo ingenuo). Por lo tanto, lo utilizaremos como referencia para el modelo ARIMA. Al comparar tanto el MAPE como el RMSE de los dos modelos en la partición de prueba, está claro que el modelo ARIMA proporciona una mejora (en términos de precisión) en comparación con el modelo de referencia. Esto sugiere que el modelo ARIMA es más efectivo para predecir los valores de la serie USgas en comparación con un enfoque ingenuo estacional.
Una vez que el modelo ha sido entrenado, probado, ajustado (si es necesario) y evaluado con éxito, podemos pasar a la última etapa y finalizar el pronóstico. Esta etapa se basa en recalibrar los pesos o coeficientes del modelo con la serie completa. Hay dos enfoques para usar la configuración de los parámetros del modelo:
Si el modelo fue ajustado manualmente, debes utilizar los parámetros de ajuste exactos que se utilizaron en el modelo entrenado.
Si el modelo fue ajustado automáticamente por un algoritmo (como la función auto.arima que utilizamos anteriormente), puedes hacer cualquiera de lo siguiente:
Se recomienda el uso de algoritmos para automatizar el proceso de ajuste del modelo cuando se ha probado la capacidad del modelo para ajustarse con pruebas retrospectivas. Esto te permite evaluar si el algoritmo tiene la capacidad de ajustar correctamente los parámetros del modelo, según los resultados de las pruebas retrospectivas. Por razones de simplicidad, seguiremos utilizando el modelo auto.arima para entrenar el modelo final.
md_final <- auto.arima(USgas)
fc_final <- forecast(md_final, h = 12)
Se emplea la función de gráfica del TSstudio para finalizar el modelo predictivo.
plot_forecast(fc_final,
title = "The US Natural Gas Consumption Forecast",
Xtitle = "Year",
Ytitle = "Billion Cubic Feet")
El objetivo principal del proceso de pronóstico, como vimos anteriormente, es minimizar el nivel de incertidumbre en torno a los valores futuros de la serie. Aunque no podemos eliminar completamente esta incertidumbre, podemos cuantificarla y proporcionar un rango alrededor del valor puntual del pronóstico (que no es más que el valor esperado del modelo para cada punto en el futuro). Esto se puede hacer utilizando el intervalo de confianza (o un intervalo creíble, cuando se utiliza el modelo bayesiano) o mediante la simulación.
El intervalo de confianza es un método de aproximación estadística que se utiliza para expresar el rango de valores posibles que contienen el valor real con cierto grado de confianza (o probabilidad). Hay dos parámetros que determinan el rango del intervalo de confianza:
El nivel de confianza o la probabilidad de que el valor real esté en ese rango. Cuanto mayor sea el nivel de confianza, mayor será el rango del intervalo.
La desviación estándar estimada de la predicción en el tiempo T+i, donde T representa la longitud de la serie y i representa el valor pronosticado. Cuanto menor sea la tasa de error, más corto será el rango del intervalo de predicción.
Por defecto, la función de pronóstico genera un intervalo de predicción con niveles de confianza del 80% y el 95%, pero puedes modificarlo utilizando el argumento “level”. Por ejemplo, puedes usar el modelo entrenado y la función de pronóstico para los próximos 60 meses con intervalos de confianza del 80% y 90%.
fc_final2 <- forecast(md_final,
h = 60,
level = c(80, 90))
plot_forecast(fc_final2,
title = "The US Natural Gas Consumption Forecast",
Xtitle = "Year",
Ytitle = "Billion Cubic Feet")
Una alternativa es utilizar la distribución del modelo para simular posibles caminos para el pronóstico. Este método solo se puede utilizar cuando la distribución del modelo está disponible. La función “forecast_sim” del paquete TSstudio proporciona una función incorporada para simular posibles caminos de pronóstico. Esta estimación se puede utilizar para calcular el valor puntual del pronóstico (por ejemplo, utilizando la media o la mediana de todos los caminos) o para calcular probabilidades de obtener diferentes valores. Puedes alimentar el mismo modelo a la función y ejecutar 100 iteraciones para obtener resultados más detallados y una mejor comprensión de la incertidumbre en el pronóstico.
fc_final3 <- forecast_sim(model = md_final,
h = 60,
n = 500)
La salida de la función anterior contiene todas las simulaciones calculadas y los caminos simulados. Puedes extraer el gráfico de simulación y utilizar el paquete plotly para agregar títulos al gráfico. Esto te permitirá visualizar de manera más clara las posibles trayectorias de pronóstico y entender la incertidumbre en el pronóstico.
library(plotly)
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
fc_final3$plot %>%
layout(title = "US Natural Gas Consumption - Forecasting Simulation",
yaxis = list(title = "Billion Cubic Feet"),
xaxis = list(title = "Year"))
El enfoque “carrera de caballos” es una estrategia de pronóstico robusta que combina lo que hemos aprendido hasta ahora en este capítulo. Consiste en entrenar, probar y evaluar múltiples modelos de pronóstico y seleccionar el modelo que mejor se desempeñe en las particiones de prueba. En el siguiente ejemplo, aplicaremos la carrera de caballos entre siete modelos diferentes utilizando seis períodos de prueba. La función “ts_backtesting” del paquete TSstudio realiza el proceso completo de entrenamiento, prueba, evaluación y pronóstico, utilizando el modelo que mejor se desempeñó en las particiones de prueba retrospectiva. Por defecto, la función probará los siguientes modelos:
Antes de ejecutar la función, se establece el valor de la semilla con la función “set.seed” para poder reproducir los resultados. Esto garantiza que los resultados sean consistentes y reproducibles en diferentes ejecuciones.
set.seed(1234)
#La función ts_backtesting está obsoleta y en la versión 0.1.5 y desaparecida.
#Lamentablemente, el modelo bayesiano (BSTS) se eliminó ya que sus dependencias (Boom y BookSpikeSlab) no se pueden instalar en el contenedor de Docker y, por lo tanto, impiden que el paquete TSstudio se implemente en imágenes de Docker.
#Fuente (https://github.com/RamiKrispin/TSstudio/issues/8)
#USgas_forecast <- ts_backtesting(ts.obj = USgas,
# periods = 6,
# models = "abehntw",
# error = "MAPE",
# window_size = 12,
# h = 60,
# plot = FALSE)
El proceso de entrenamiento de un modelo de pronóstico es el paso final en el análisis de series temporales. El enfoque de este capítulo fue introducir los principios del flujo de trabajo de pronóstico. Como vimos, existen varios métodos que podemos utilizar para entrenar un modelo de pronóstico, y la elección del método debe estar alineada con los objetivos de pronóstico específicos y los recursos disponibles. En los capítulos siguientes, verás estas aplicaciones en la práctica.