La modelización de series de tiempo en contextos epidemiológicos ha adquirido una relevancia fundamental tras la crisis sanitaria global iniciada en 2020. Más allá de la descripción histórica de los contagios, el análisis cuantitativo permite hoy comprender cómo las intervenciones de salud pública —específicamente la vacunación masiva— alteran las trayectorias esperadas de una enfermedad. En el caso de Bogotá, el análisis de la incidencia de COVID-19 ofrece una oportunidad clave para contrastar los modelos dinámicos de propagación frente a un hito significativo: el despliegue del Plan Nacional de Vacunación. El presente trabajo busca, mediante herramientas de series de tiempo, evaluar si dicha intervención logró modificar la estructura de la curva de contagios, aportando evidencia sobre la eficacia de las medidas de salud pública desde una perspectiva estadística.
La pandemia de COVID-19 generó en Bogotá una dinámica epidemiológica sin precedentes entre 2020 y 2022, con múltiples oleadas de contagio que pusieron a prueba la capacidad del sistema de salud distrital. El 18 de febrero de 2021, Colombia inició su programa de vacunación masiva, un evento que se esperaba modificara estructuralmente el comportamiento semanal de los casos nuevos de COVID-19.
La literatura científica ha documentado extensamente el impacto de las intervenciones farmacológicas en la dinámica de transmisión del SARS-CoV-2. Mathieu et al. (2021), en un análisis global de los programas de inmunización, demostraron que la cobertura vacunal correlaciona negativamente con la tasa de crecimiento de nuevos contagios, sugiriendo una alteración en la tendencia de las series epidemiológicas post-vacunación. No obstante, la complejidad de esta respuesta no es lineal; autores como Lipsitch y Dean (2020) han señalado que el impacto real sobre los casos nuevos depende críticamente de la velocidad de despliegue de las dosis y la emergencia de variantes de preocupación, factores que introducen heterocedasticidad y volatilidad no constante en las series de tiempo.
En este contexto, el análisis estadístico de series de tiempo ofrece un marco riguroso para evaluar estas intervenciones. Siguiendo el enfoque de Andrews (1993) sobre pruebas de cambio estructural en series temporales, el uso de datos pre-vacuna permite establecer un contrafactual sólido que captura la dinámica de transmisión histórica sin la influencia del componente inmunológico. Al comparar este contrafactual con la realidad observada post-febrero de 2021, es posible aislar estadísticamente el efecto de la vacunación.
Con base en esto, se plantea la siguiente pregunta de investigación: ¿Existe un cambio estructural estadísticamente identificable en la serie semanal de casos nuevos de COVID-19 en Bogotá, asociado al inicio de la vacunación masiva en febrero de 2021?
Objetivo General: Evaluar la existencia de un cambio estructural en la dinámica de contagios por COVID-19 en Bogotá, mediante el modelado de series de tiempo, para determinar el impacto estadístico del inicio del programa de vacunación masiva iniciado en febrero de 2021.
Objetivos Específicos: 1. Consolidar y depurar la base de datos epidemiológica distrital para la construcción de series temporales semanales de casos confirmados, segmentando el periodo de estudio en fases pre-vacuna y post-vacuna. 2. Desarrollar y calibrar modelos de series de tiempo (ARIMA/SARIMA) y modelos de regresión lineal, entrenados exclusivamente con datos del periodo pre-vacuna, para establecer un escenario contrafactual de la evolución esperada del virus. 3. Comparar las proyecciones obtenidas contra los datos reales observados durante el periodo post-vacuna, identificando desviaciones significativas que permitan cuantificar estadísticamente el cambio estructural en la tendencia de la pandemia.
Justificación:
Esta investigación se justifica desde tres dimensiones. Primero, en términos de política pública, identificar estadísticamente un quiebre en la trayectoria de contagios permite evaluar la efectividad de la vacunación masiva como herramienta para mitigar futuras crisis sanitarias en Bogotá. Segundo, desde la estadística aplicada, el trabajo pone a prueba la capacidad de modelos ARIMA y Regresión Lineal para detectar cambios estructurales en series temporales volátiles, demostrando su aplicabilidad en contextos epidemiológicos complejos. Tercero, metodológicamente, el enfoque contrafactual —entrenar modelos con datos pre-vacuna y proyectar sobre el período post-vacuna— permite aislar el efecto de la vacunación de la tendencia natural de la curva epidemiológica, ofreciendo una base cuantitativa replicable para evaluar cualquier intervención pública.
Se espera que, gracias a la vacuna,los sean significativamente menores a aquellos que se predijeron con los modelos, tomando mayor diferencia a medida pasa el tiempo, demostrando la utilidad y efectividad de la vacuna.
En primera instancia se hace un proceso de lectura de bases de datos y partición entre los datos pre y post vacuna para crear dos bases de datos que se guardan. La fuente de los datos es el registro individual de casos de COVID-19 del Ministerio de Salud de Colombia, que contiene información diaria de diagnósticos para todo el país. Se filtró únicamente la información correspondiente a Bogotá entre el 8 de marzo de 2020 y el 25 de diciembre de 2022, y se agregó a frecuencia semanal. Este proceso se hizo con Python, dado que es un lenguaje especialmente eficiente para el manejo y limpieza de bases de datos de gran volumen. El punto de corte entre ambos períodos es el 18 de febrero de 2021, fecha oficial del inicio de la vacunación masiva en Bogotá según el Ministerio de Salud, resultando en 51 semanas pre-vacuna y 97 semanas post-vacuna. De esas bases creadas, se leen en R por su propósito de análisis estadístico mayor. Se evalúan las pruebas con respecto a los supuestos para trabajar con ARIMA (homocedasticidad y estacionariedad principalmente). Luego se entrenan un modelo ARIMA y un modelo de Regresión Lineal. Se evalúan ambos modelos con métricas de predicción y bondad de ajuste para determinar qué tan confiables son las predicciones sobre el período pre-vacuna. Luego se hacen las proyecciones post-vacuna y se comparan con los casos reales observados. Con base en esto se concluye sobre el efecto de la vacuna y se menciona la confianza de dicha conclusión de acuerdo al ajuste de las predicciones.
library(FinTS)
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(xts)
library(aTSA)
##
## Adjuntando el paquete: 'aTSA'
## The following object is masked from 'package:graphics':
##
## identify
library(lmtest)
library(fabletools)
##
## Adjuntando el paquete: 'fabletools'
## The following objects are masked from 'package:aTSA':
##
## estimate, forecast
library(ggplot2)
library(Rcpp)
library(fable)
##
## Adjuntando el paquete: 'fable'
## The following object is masked from 'package:FinTS':
##
## ARIMA
library(fpp2)
## ── Attaching packages ──────────────────────────────────────────── fpp2 2.5.1 ──
## ✔ forecast 9.0.2 ✔ expsmooth 2.3
## ✔ fma 2.5
## ── Conflicts ───────────────────────────────────────────────── fpp2_conflicts ──
## ✖ forecast::Acf() masks FinTS::Acf()
## ✖ forecast::forecast() masks fabletools::forecast(), aTSA::forecast()
library(forecast)
library(tsibble)
##
## Adjuntando el paquete: 'tsibble'
## The following object is masked from 'package:zoo':
##
## index
## The following objects are masked from 'package:base':
##
## intersect, setdiff, union
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
##
## Adjuntando el paquete: 'tseries'
## The following objects are masked from 'package:aTSA':
##
## adf.test, kpss.test, pp.test
library(tsbox)
library(plyr)
##
## Adjuntando el paquete: 'plyr'
## The following object is masked from 'package:fma':
##
## ozone
library(reshape)
##
## Adjuntando el paquete: 'reshape'
## The following objects are masked from 'package:plyr':
##
## rename, round_any
library(RCurl)
##
## Adjuntando el paquete: 'RCurl'
## The following object is masked from 'package:lmtest':
##
## reset
library(data.table)
##
## Adjuntando el paquete: 'data.table'
## The following object is masked from 'package:reshape':
##
## melt
## The following object is masked from 'package:tsibble':
##
## key
## The following objects are masked from 'package:xts':
##
## first, last
## The following objects are masked from 'package:zoo':
##
## yearmon, yearqtr
library(urca)
library(rugarch)
## Cargando paquete requerido: parallel
##
## Adjuntando el paquete: 'rugarch'
## The following object is masked from 'package:fabletools':
##
## report
library(AICcmodavg)
library(readxl)
prevacuna <- read_excel("C:/Users/salad501/Downloads/serie_pre_vacuna.xlsx")
postvacuna <- read_excel("C:/Users/salad501/Downloads/post_vacuna.xlsx")
Luego revisamos ambas bases:
prevacuna
## # A tibble: 51 × 3
## `Fecha de diagnostico` casos_nuevos muertes
## <dttm> <dbl> <dbl>
## 1 2020-03-08 00:00:00 1 0
## 2 2020-03-15 00:00:00 25 0
## 3 2020-03-22 00:00:00 62 3
## 4 2020-03-29 00:00:00 200 10
## 5 2020-04-05 00:00:00 422 38
## 6 2020-04-12 00:00:00 455 31
## 7 2020-04-19 00:00:00 412 17
## 8 2020-04-26 00:00:00 640 20
## 9 2020-05-03 00:00:00 707 30
## 10 2020-05-10 00:00:00 1199 46
## # ℹ 41 more rows
postvacuna
## # A tibble: 97 × 3
## `Fecha de diagnostico` casos_nuevos muertes
## <dttm> <dbl> <dbl>
## 1 2021-02-21 00:00:00 3598 68
## 2 2021-02-28 00:00:00 6127 115
## 3 2021-03-07 00:00:00 5624 93
## 4 2021-03-14 00:00:00 4968 105
## 5 2021-03-21 00:00:00 6103 137
## 6 2021-03-28 00:00:00 8067 188
## 7 2021-04-04 00:00:00 10927 264
## 8 2021-04-11 00:00:00 19974 407
## 9 2021-04-18 00:00:00 28248 529
## 10 2021-04-25 00:00:00 32137 637
## # ℹ 87 more rows
Vemos como tanto pre como post vacuna tiene una periodicidad semanal, con más datos de la pandemia post-vacuna y se registran tanto los casos nuevos como las muertes semanales. La serie total va desde el 8 de marzo de 2020 hasta el 25 de diciembre de 2022, teniendo el corte de la vacuna el 21 de febrero.
Ahora se van a pasar las series desde el data frame a sus versiones en TimeSeries:
casos_pre <- ts(prevacuna$casos_nuevos, start = c(2020,10), frequency = 52) # Se inicia en 2020 , la semana 10 (8 de marzo) con frecuencia 52 para indicar que la frecuencia es semanal.
casos_post <- ts(postvacuna$casos_nuevos,start = c(2021,7), frequency = 52) #Misma lógica, la semana 7 de 2021 es el 21 de enero
casos_pre
## Time Series:
## Start = c(2020, 10)
## End = c(2021, 8)
## Frequency = 52
## [1] 1 25 62 200 422 455 412 640 707 1199 1363 1678
## [13] 2754 2866 3246 4728 8476 7337 13180 14942 19680 29405 23241 30801
## [25] 25835 17684 16157 13517 13160 11494 12520 11662 10233 12271 13339 12426
## [37] 11239 12852 15888 15903 18827 24482 26349 31463 36556 38382 31437 23184
## [49] 12300 9330 3315
Vemos como tiene 51 entradas y se registran de manera correcta. La serie termina la semana 8, porque en la serie de pre y post vacuna hay una semana en común, la semana 7, por eso se define desde la 7 en post vacuna pero no dice que la serie pre vacuna acabe en 7. El último dato de la prevacuna y el primero de la postvacuna son el mismo.
Ahora vamos a graficar las series
plot(casos_pre, ylab= "Cantidad de casos de COVID",xlab="Semana")
Vemos como las infecciones tuvieron dos picos principales; en el mes 6
de 2020 (julio) y otro en el mes 0 de 2021(enero). Lo que nos da un
indicio sobre el comportamiento de los casos.
Como solo se va a entrenar los modelos con los datos pre_vacuna, solo se van a analizar estos con la prueba KPSS y Breusch-Pagan. Se usará un p_valor de 0.05. No se puede hacer una decomposición porque la serie no tiene suficientes datos para tener más de un periodo estacional (anual).
kpss_casos <- kpss.test(casos_pre)
kpss_casos
##
## KPSS Test for Level Stationarity
##
## data: casos_pre
## KPSS Level = 0.72454, Truncation lag parameter = 3, p-value = 0.01131
Vemos como para los casos pre vacuna, con un p_valor menor a 0.05, la serie es por poco no estacionaria. Por lo que el modelo arimas seguramente va a tener que hacer diferenciacón para volverla estacionaria.
t_pre <- 1:length(casos_pre)
bp_casos <- bptest(lm(casos_pre ~ t_pre))
bp_casos
##
## studentized Breusch-Pagan test
##
## data: lm(casos_pre ~ t_pre)
## BP = 7.4179, df = 1, p-value = 0.006458
Gracias a esta prueba vemos una heterocedasticidad clara por lo que se va a utilizar un modelo ARCH/GARCH para predecir los casos.
Se va a utilizar un modelo GARCH y una regresión lineal para intentar predecir los casos post-vacuna.
Primero se evalua si hay efectos ARCH en la serie para comprobar la hipótesis de heterocedasticidad:
log_casos <- log(casos_pre + 1) #Se saca logaritmo para estabilizar para tanto regresión lineal como modelo garch
ArchTest(log_casos)
##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: log_casos
## Chi-squared = 36, df = 12, p-value = 0.000324
Podemos identificar que no hay efectos ARCH y que un modelo ARIMAS va a funcionar bien. Ahora vamos a visualizar el log de los casos para ver como se comportan y si se pueden ajustar mejor a una regresión lineal.
plot(log_casos, ylab= "Log de cantidad de casos de COVID",xlab="Semana")
Vemos que sacar el logaritmo si logra estabilizar la serie y hace que modelos como ARIMAS o la regresión lineal sean mcuho más razonables. En base a eso entrenamos los modelos.
arimas_casos <- auto.arima(log_casos,
seasonal = FALSE, #La serie no tiene más de un periodo estacional.
stepwise = FALSE,
approximation = FALSE)
lm_casos <- lm(log_casos ~ t_pre)
Ahora los analizamos y revisamos su precisión de predicción y bondad de ajuste:
ts.plot(log_casos, arimas_casos$fitted, col = c("black", "maroon"), main = "Comparación proceso ARIMAS con log de casos")
Vemos como, desde la perspectiva de log el modelo ARIMAS si logra predecir de manera bastante acertada. Pero también vale la pena analizar el ajuste con respecto a la serie original.
ts.plot(casos_pre, exp(arimas_casos$fitted), col = c("black", "maroon"), main = "Comparación proceso ARIMAS con casos")
Vemos que en la serie original hay también buenas predicciones con la excepción de los picos, que los predice de forma más exagerada de lo que terminaron siendo. Ahora se va a analizar gráficamente la regresión lineal.
plot(log_casos, main="Log de casos y Ajuste regresión lineal", ylab="casos(semanal)", col = "black")
lines(ts(predict(lm_casos), start=start(log_casos), frequency = frequency(log_casos)),
col="darkblue", lwd=2)
Vemos como el ajuste es mucho más lineal, valga la redundancia, que modela la tendencia de manera más clara pero no se deja influenciar por ruido o patrones estacionales de ninguna manera. Vamos a ver como se relaciona esto con respeco ala serie de datos original
plot(casos_pre, main="Serie Original y Ajuste regresión lineal", ylab="casos(semanal)", col = "black")
lines(ts(exp(predict(lm_casos)), start=start(casos_pre), frequency = frequency(casos_pre)),
col="darkblue", lwd=2)
Vemos un ajuste que no es el idea, modelando una curva exponencial y no los patrones de picos y valles que evidenciamos en la seire. Por ahora se decidiría que el modelo aRIMAS tiene un desempeño significativamente mejor, se va a evaluar ese supuesto con una métrica de precisión de error y una de bondad de ajuste por modelo:
arimas_mae <- MAE(residuals(arimas_casos))
lm_mae <- MAE(residuals(lm_casos))
print("En orden, MAE del modelo ARIMAS y Regresión Líneal")
## [1] "En orden, MAE del modelo ARIMAS y Regresión Líneal"
arimas_mae;lm_mae
## [1] 0.2328321
## [1] 0.9017541
Vemos como el error en valor absoluto (para prevenir diferencias atípicas que se evidenciaron en ambos modelos) es significativamente menor para el modelo ARIMAS. No es sorprendente, pero nos da un precedente matemático para elegir al modelo ARIMAS sobre la regresión. Ahora vamos a evaluar la bondad de ajuste para ver cual modelo se ajusto mejor a los datos y así decidir con cual hacer la predicción final , que se va a comparar a los casos reales.
#Se utiliza AICc por la cantidad de datos.
aicc_arimas <- arimas_casos$aicc
aicc_lm <- AICc(lm_casos)
print("En orden, AICc del modelo ARIMAS y Regresión Líneal")
## [1] "En orden, AICc del modelo ARIMAS y Regresión Líneal"
aicc_arimas;aicc_lm
## [1] 36.05097
## [1] 180.9085
Vemos como el AICc del modelo ARIMAS es significativamente menor que el del modelo de regresión lineal, por lo que se puede decir conclusivamente, que las predicciones se van a hacer y comparar con las del modelo ARIMAS, ahora vamos a ver la diferencia gráfica entre las predicciones y los casos reales:
log_casos_predichos <- forecast(arimas_casos,h = 96) # La cantidad de predicciones es igual a la cantidad de datos post vacuna menos 2, porque se demora 2 instancias en empezar a poder predecir, y lo ponemos para que acabe al mismo tiempo que los casos reales.
casos_predichos <- exp(log_casos_predichos$mean) #Volvemos los datos a su forma original
casos_predichos
## Time Series:
## Start = c(2021, 9)
## End = c(2022, 52)
## Frequency = 52
## [1] 1.934808e+03 8.880280e+02 4.075824e+02 1.870700e+02 8.586038e+01
## [6] 3.940774e+01 1.808715e+01 8.301545e+00 3.810199e+00 1.748785e+00
## [11] 8.026479e-01 3.683950e-01 1.690840e-01 7.760527e-02 3.561885e-02
## [16] 1.634815e-02 7.503387e-03 3.443864e-03 1.580647e-03 7.254767e-04
## [21] 3.329754e-04 1.528273e-04 7.014385e-05 3.219425e-05 1.477634e-05
## [26] 6.781968e-06 3.112751e-06 1.428674e-06 6.557252e-07 3.009612e-07
## [31] 1.381336e-07 6.339982e-08 2.909891e-08 1.335566e-08 6.129910e-09
## [36] 2.813474e-09 1.291313e-09 5.926800e-10 2.720251e-10 1.248526e-10
## [41] 5.730419e-11 2.630117e-11 1.207157e-11 5.540546e-12 2.542970e-12
## [46] 1.167159e-12 5.356963e-13 2.458710e-13 1.128486e-13 5.179464e-14
## [51] 2.377243e-14 1.091094e-14 5.007846e-15 2.298474e-15 1.054941e-15
## [56] 4.841914e-16 2.222316e-16 1.019987e-16 4.681480e-17 2.148681e-17
## [61] 9.861901e-18 4.526362e-18 2.077486e-18 9.535133e-19 4.376384e-19
## [66] 2.008650e-19 9.219193e-20 4.231376e-20 1.942094e-20 8.913721e-21
## [71] 4.091172e-21 1.877744e-21 8.618370e-22 3.955614e-22 1.815526e-22
## [76] 8.332806e-23 3.824547e-23 1.755370e-23 8.056704e-24 3.697823e-24
## [81] 1.697207e-24 7.789751e-25 3.575298e-25 1.640971e-25 7.531642e-26
## [86] 3.456833e-26 1.586599e-26 7.282086e-27 3.342293e-27 1.534028e-27
## [91] 7.040799e-28 3.231548e-28 1.483199e-28 6.807507e-29 3.124473e-29
## [96] 1.434054e-29
plot(log_casos_predichos$mean, ylab= "Cantidad de casos de COVID predichos post vacuna",xlab="Semana")
Ahora, al analizar los datos predichos, a pesar del buen ajusta que logra el modelo ARIMAS con sus datos de entrenamiento, las predicciones las termina haciendo de forma explícitamente lineales en descenso, un patrón inclusive peor que el de la regresión lineal.
ts.plot(casos_pre, casos_predichos, casos_post,
col=c("black","maroon","darkblue"),
lwd=2,
ylab="Cantidad de casos de COVID",
xlab="Mes y Año")
legend("topleft",
legend=c("Casos pre vacuna (entrenamiento)",
"Casos predichos por la serie pre-vacuna",
"Casos reales post vacuna"),
col=c("black","maroon","darkblue"),
lty=1,
lwd=2)
La incidencia de la vacuna en la cantidad de casos de COVID predichos es demasiado notoria; se ve como, a comparación de los casos reales, el modelo predice un nivel casi estático de casos a partir de la introducción de la vacuna. Para evaluar el comportamiento y las magnitudes de ambas predicciones se va a hacer un summary y a ver la gráfica individual de los casos post vacuna.
plot(casos_post, ylab= "Cantidad de casos de COVID",xlab="Semana")
Vemos como, por su propia cuenta, la cantidad de casos siguen el patrón
que vimos previamente, por lo que se esperaría que el modelo lo podría
predecir, pero debido a la fomra que el modelo ARIMAS funciona con baja
estacionalidad y a muchos periodos a futuro, el modelo solo predice una
tendencia lineal en descenso.
print("Resumen serie post vacuna orignial")
## [1] "Resumen serie post vacuna orignial"
start(casos_post); end(casos_post); frequency(casos_post); summary(casos_post)
## [1] 2021 7
## [1] 2022 51
## [1] 52
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 148 1211 2996 12468 10927 70288
print("Resumen serie post vacuna predicha")
## [1] "Resumen serie post vacuna predicha"
start(casos_predichos); end(casos_predichos); frequency(casos_predichos); summary(casos_predichos)
## [1] 2021 9
## [1] 2022 52
## [1] 52
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000e+00 0.000e+00 0.000e+00 3.725e+01 2.000e-05 1.935e+03
Gracias al summary vemos que los datos reales siguen una disgtribución esperada, mientras que las predicciones radican la mayoria muy cercanas a 0 y solo un par de casos atípicos, llegando hasta 1934, logran siquiera acercarse a la magnitud de los casos reales. En otras palabras el modelo falló, y no se puede comprobar ni desmentir la hipótesis establecida al inicio porque no se tiene indicio estadístico de que hubiese podido determinar la incidencia de la vacuna.
Objetivo específico 1: Consolidar y depurar la base de datos: Este objetivo se cumplió satisfactoriamente. A partir del registro individual del Ministerio de Salud de Colombia, se construyeron dos series temporales semanales de casos confirmados en Bogotá: 51 semanas correspondientes al período pre-vacuna (8 de marzo de 2020 al 14 de febrero de 2021) y 97 semanas para el período post-vacuna (21 de febrero de 2021 al 25 de diciembre de 2022), con el proceso de limpieza documentado en el Anexo 1.
Objetivo específico 2: Desarrollar y calibrar los modelos: Este objetivo se cumplió parcialmente. Se entrenaron exitosamente un modelo ARIMA sobre el logaritmo de los casos pre-vacuna y un modelo de Regresión Lineal como contrafactual. Ambos modelos mostraron un ajuste razonable sobre los datos de entrenamiento, con el modelo ARIMA superando significativamente a la regresión tanto en MAE como en AICc. Sin embargo, la ausencia de estacionalidad clara en la serie pre-vacuna limitó la capacidad del modelo ARIMA para capturar patrones cíclicos, lo que afectó la calidad de las proyecciones a largo plazo.
Objetivo específico 3: Comparar proyecciones con datos reales: Este objetivo se cumplió, aunque los resultados no fueron los esperados metodológicamente. Al proyectar 96 semanas hacia el período post-vacuna, el modelo ARIMA generó una tendencia lineal descendente que no logró capturar las oleadas de contagio observadas en la realidad. Los datos reales post-vacuna presentaron magnitudes muy superiores a las proyectadas, con picos que superan ampliamente el máximo predicho de 1.934 casos semanales.
Pregunta de investigación: Con base en los resultados obtenidos, no es posible confirmar ni desmentir estadísticamente la existencia de un cambio estructural asociado a la vacunación. Esto no se debe a que el cambio no exista, sino a una limitación técnica del modelo: el ARIMA con baja estacionalidad y horizonte de predicción largo tiende a converger hacia la media histórica, perdiendo capacidad explicativa.