1. Portada y resumen ejecutivo

Activo: The Coca-Cola Company (NYSE: KO). Periodo analizado: 2 de enero de 2020 a 11 de noviembre de 2026 (1724 rendimientos diarios). Frecuencia: diaria (sesiones de negociación de la Bolsa de Nueva York). Variable externa: rendimiento del ETF SPDR S&P 500 (SPY), como aproximación del mercado accionario amplio. Capital virtual: USD 100.000. Horizonte de inversión: 21 sesiones bursátiles (aproximadamente un mes). Pregunta de investigación: ¿Qué especificación entre ARIMA, ARIMAX y SARIMAX ofrece un pronóstico defendible para la serie de Coca-Cola y qué decisión de inversión se deriva de su distribución de escenarios?

Conclusión ejecutiva. Tras comparar siete especificaciones ARIMA, ARIMAX y SARIMAX estimadas manualmente sobre train, se selecciona un ARIMA(0,0,0) sobre los rendimientos, equivalente a un paseo aleatorio con deriva (ARIMA(0,1,0)) para el log-precio. Los modelos con SPY tienen el mejor AICc, pero esa ventaja depende de conocer el rendimiento del mercado del mismo día; con SPY pronosticado, empeoran el pronóstico. Los términos estacionales (\(s = 5\)) no son significativos. En el test (julio de 2025 a noviembre de 2026), todos los modelos superan con amplitud al pronóstico ingenuo sin deriva (MAE de unos 6,04 USD frente a 8,81 USD), pero las diferencias entre ellos no son significativas, y todos subestiman la fuerte subida de KO en 2026. Los residuos muestran colas pesadas y volatilidad agrupada (efectos ARCH), por lo que los escenarios se simulan con bootstrap de residuos (10.000 trayectorias). Para el mes siguiente al 11 de noviembre de 2026, el modelo proyecta un rendimiento esperado de 0,95 % y una probabilidad de pérdida de 42,3 %. Ninguna de las dos condiciones de la regla (rendimiento mayor que 1 % y pérdida de 40 % o menos) se cumple, así que la decisión es mantener los USD 100.000 en efectivo; si se invirtiera, el portafolio terminaría entre unos 91.500 y 111.000 USD en el 90 % de los escenarios.

2. Fuente y análisis de mercado

The Coca-Cola Company es una empresa de bebidas no alcohólicas con productos vendidos en más de 200 países y territorios y un portafolio que incluye Coca-Cola, Sprite, Fanta, Powerade, Costa, Minute Maid y fairlife (The Coca-Cola Company, 2026). Su acción ordinaria cotiza en la Bolsa de Nueva York (NYSE) bajo el símbolo KO, en dólares estadounidenses, durante la sesión principal de 9:30 a. m. a 4:00 p. m. hora del Este, de lunes a viernes (New York Stock Exchange, s. f.).

La fuente de precios es Yahoo Finance (2026), tanto para KO como para SPY; los cálculos se realizan en R (R Core Team, 2026). Se usa el precio ajustado (Adjusted) porque incorpora dividendos y eventos corporativos: en una acción que reparte dividendos trimestrales, el precio de cierre “cae” mecánicamente en cada fecha ex-dividendo, y ese salto no es una pérdida real para el inversionista. Con el precio ajustado, el rendimiento medido se acerca al rendimiento total que efectivamente recibiría quien mantiene la acción.

Contexto económico

Coca-Cola pertenece al sector de consumo básico. Sus ventas dependen poco del ciclo económico, porque las bebidas son productos de compra frecuente y bajo precio; además tiene un alto poder de fijación de precios por la fuerza de sus marcas y una política de dividendos muy estable: en febrero de 2026 aprobó su aumento anual de dividendo número 64 consecutivo (The Coca-Cola Company, 2026). Por eso el mercado la trata como una acción defensiva: en la muestra de entrenamiento su beta frente a SPY es de 0,567 y la correlación de rendimientos diarios es de 0,586. Una beta menor que uno indica que KO se mueve en la misma dirección del mercado, pero con menor amplitud.

Estas características tienen implicaciones directas para la modelación:

  • Persistencia en el nivel y poca predictibilidad en los cambios. El precio de una acción líquida se comporta como un proceso con raíz unitaria; los rendimientos diarios, en cambio, deberían tener poca autocorrelación si el mercado incorpora rápido la información. Esto anticipa que el componente ARMA tendrá coeficientes pequeños.
  • Sensibilidad a una variable externa. Aunque es defensiva, KO responde a los movimientos generales del mercado (riesgo sistemático). Esa es la razón económica para incluir SPY como regresor en los modelos ARIMAX/SARIMAX.
  • Rupturas y volatilidad cambiante. Choques como la pandemia o cambios en la política monetaria alteran temporalmente la volatilidad, lo que puede generar heterocedasticidad condicional en los residuos.
  • Estacionalidad. Por tratarse de datos diarios, la única periodicidad natural es la semana bursátil de cinco sesiones (\(s = 5\)); no hay razones fundamentales fuertes para esperar un patrón semanal en los rendimientos de una empresa de este tamaño, así que esa hipótesis se contrasta con evidencia en la sección 5.

Se eligió la frecuencia diaria porque el horizonte de decisión es de un mes (21 sesiones): con datos mensuales solo habría unas 80 observaciones, insuficientes para separar train y test con un bloque de validación útil. La frecuencia diaria ofrece más de 1700 observaciones y permite observar con detalle los episodios de alta volatilidad.

Hecho / periodo Evidencia observada en KO Posible canal económico Fuente (APA)
Pandemia de COVID-19 (feb.–abr. de 2020) Caída de 37,0 % entre el 21 de febrero de 2020 y el 23 de marzo de 2020 (SPY: 33,7 %); volatilidad anualizada de 64,1 % frente a 20,3 % en toda la muestra. Cierre de restaurantes, estadios y eventos: el canal “fuera del hogar” (cerca de la mitad de los ingresos) se desplomó; en el segundo trimestre de 2020 el volumen global cayó 16 % y los ingresos netos 28 %. The Coca-Cola Company (2020)
Inflación y alzas de tasas (2022) Rendimiento de KO en 2022: 10,6 %, frente a -18,2 % de SPY. La Reserva Federal inició el ciclo de alzas en marzo de 2022. Coca-Cola trasladó costos a precios (precio/mezcla +11 % y ingresos orgánicos +16 % en el año), lo que reforzó su perfil defensivo frente a un mercado en caída. Board of Governors of the Federal Reserve System (2022); The Coca-Cola Company (2023)
Sucesión del CEO (anuncio 10 de diciembre de 2025; efectiva 31 de marzo de 2026) Rendimiento de KO en la semana del anuncio: 0,83 % (SPY: -1,70 %); entre el anuncio y la transición: 9,2 % (SPY: -4,2 %). Henrique Braun, director de operaciones, reemplaza a James Quincey, quien pasa a presidente ejecutivo. Es una sucesión interna que señala continuidad estratégica, por lo que se espera un efecto acotado sobre el precio. The Coca-Cola Company (2025)
Aumento de dividendo número 64 (19 de febrero de 2026) Dividendo trimestral de USD 0,51 a USD 0,53 por acción (≈4 %). Refuerza la imagen de flujo de caja estable; ayuda a explicar por qué la acción atrae inversionistas que buscan ingreso y baja volatilidad. The Coca-Cola Company (2026)

Hipótesis de inversión

Antes de estimar los modelos y de mirar el bloque de prueba se plantea la siguiente hipótesis: KO es una acción defensiva cuyo rendimiento diario es difícil de predecir a partir de su propia historia; por lo tanto, se espera que el modelo proyecte una apreciación mensual pequeña, cercana a su deriva histórica, y solo se tomará una posición larga si el pronóstico es lo bastante favorable y el riesgo de pérdida es acotado. La regla operativa, fijada desde el inicio del ejercicio, es:

Si el rendimiento esperado a 21 sesiones supera el 1 % y la probabilidad simulada de pérdida no supera el 40 %, se invierte todo el capital en KO; en caso contrario, el capital se mantiene en efectivo.

3. Base de datos y tratamiento

Verificación de la base de datos
Concepto Valor
Fuente de los datos archivo local datos_KO_SPY_YahooFinance.csv (descargado de Yahoo Finance con quantmod)
Primera fecha de precios 2020-01-02
Última fecha de precios 2026-11-11
Precios alineados (KO y SPY) 1725
Rendimientos diarios 1724
Fechas duplicadas 0
Valores faltantes 0
Precios no positivos 0
Frecuencia Diaria (solo sesiones en las que negocian ambos activos)
Unidades Precios ajustados en USD; rendimientos logarítmicos diarios
Descripción de las variables
Variable Descripcion Rol
KO_ajustado Precio ajustado de cierre de Coca-Cola (USD) Serie original
SPY_ajustado Precio ajustado de cierre del ETF SPY (USD) Insumo de la variable exógena
r_KO,t Rendimiento logarítmico diario de KO: ln(P_t) − ln(P_{t−1}) Variable modelada
r_SPY,t Rendimiento logarítmico diario de SPY (variable exógena) Regresor X_t

Los precios se descargan con el conector de Yahoo Finance de quantmod. Las dos series se unen por fecha (inner join) para comparar solo sesiones coincidentes; luego se revisan duplicados, faltantes y valores no positivos, ya que un precio cero o negativo impediría calcular logaritmos. La base procesada se guarda en datos_KO_SPY_YahooFinance.csv.

Evolución y estadística descriptiva

Estadísticos descriptivos de los rendimientos logarítmicos de KO
Estadistico Valor
N 1724,000000
Media 0,000451
Desviación estándar 0,012767
Mínimo -0,101728
Q1 -0,005604
Mediana 0,000684
Q3 0,006603
Máximo 0,062783
Asimetría -0,610758
Curtosis 10,955905
Desempeño anual (rendimientos, volatilidad y máxima caída en %)
Año Sesiones Rend. KO Rend. SPY Vol. anual KO Vol. anual SPY Máx. caída KO
2020 252 3,14 17,24 34,91 33,70 36,99
2021 252 11,37 28,73 15,26 12,99 8,74
2022 251 10,61 -18,18 19,76 24,26 16,66
2023 250 -4,43 26,18 13,51 13,07 17,27
2024 252 8,88 24,89 12,79 12,58 14,86
2025 250 15,60 17,72 17,47 19,33 9,82
2026 217 42,28 12,29 19,50 14,07 7,87

Interpretación de la evolución y estadística descriptiva

Entre el 2 de enero de 2020 y el 11 de noviembre de 2026, el precio ajustado de KO pasó de 44,87 a 97,57 USD, un aumento acumulado de 117,4 % (12,0 % anual compuesto). La trayectoria no fue lineal y se pueden distinguir varias etapas: el desplome de febrero–marzo de 2020, una recuperación gradual en 2021, la resistencia en 2022 (KO ganó 10,6 % mientras SPY perdía 18,2 %), un año 2023 débil y una fuerte valorización en 2025–2026. La serie en nivel cambia de media a lo largo del tiempo, por lo que no puede tratarse como estacionaria; esto anticipa la necesidad de diferenciar (trabajar con rendimientos).

Los rendimientos logarítmicos diarios oscilan alrededor de cero, pero su dispersión no es constante. El gráfico de volatilidad móvil muestra un pico extremo alrededor del 6 de abril de 2020, cuando la volatilidad anualizada de 21 sesiones superó el 80 %. El año de mayor volatilidad fue 2020 (34,9 % anualizada) y el más tranquilo, 2024 (12,8 %). Los periodos de alta volatilidad aparecen agrupados: a un día agitado suelen seguirle otros días agitados. Esa es la señal visual de heterocedasticidad condicional, que se confirma formalmente en el diagnóstico de residuos. También se observa que la volatilidad de KO es parecida a la de SPY en la mayoría de los años, pero fue menor en 2022 y 2025, los años de mayor turbulencia del mercado, lo que es coherente con su carácter defensivo.

En la tabla descriptiva, la media diaria es 0,000451 (cerca de 0,95 % por mes) y la desviación estándar 0,012767; es decir, el “ruido” diario es casi 30 veces mayor que la “señal” de la media. La asimetría de -0,611 indica que las caídas extremas son más fuertes que las subidas extremas (el mínimo diario fue -10,2 % y el máximo 6,3 %), y la curtosis de 10,96, muy superior a 3 (valor de la normal), revela colas pesadas. Por ello se anticipa que la normalidad será rechazada y que la simulación deberá usar un método que no dependa de ella.

Box–Cox y elección de transformación

Parámetro λ de Box–Cox estimado sobre el precio ajustado (solo train)
Método Lambda
Guerrero 1,3136
Máxima verosimilitud (loglik) 0,9000

Interpretación de la transformación Box–Cox

La transformación de Box–Cox (Box & Cox, 1964) busca estabilizar la varianza de una serie en nivel. Se estimó \(\lambda\) solo con los precios de train y con dos métodos: Guerrero (1,314) y máxima verosimilitud (0,900). Los dos valores están cerca de 1, lo que indica que, desde el punto de vista estadístico, la varianza del precio no cambia de forma sistemática con su nivel y no se requiere una transformación intensa. Además, los dos métodos no coinciden (uno queda por encima y otro por debajo de 1); eso es normal cuando el rango de precios es relativamente estrecho (en train el precio se movió entre 30,9 y 70,9 USD) y muestra que \(\lambda\) está estimado con poca precisión.

Aun así, se decide trabajar con el logaritmo del precio (\(\lambda = 0\)) y luego con su primera diferencia, por tres razones: (1) Box–Cox no resuelve el problema principal de la serie, que es la no estacionariedad en media; (2) en finanzas el logaritmo tiene una interpretación directa, pues \(\ln P_t - \ln P_{t-1}\) es el rendimiento continuo del día, que se suma en el tiempo y se convierte de nuevo en precio con \(P_{T+h} = P_T\exp(\sum r)\), algo indispensable para la simulación de la sección 8; y (3) el rendimiento hace comparables movimientos ocurridos a niveles de precio muy distintos (31 USD en marzo de 2020 frente a casi 100 USD en 2026). La estacionariedad de la serie transformada se verifica a continuación.

4. Fundamentación matemática

Operador rezago y procesos AR y MA

Esta sección sigue el enfoque de Box et al. (2015) y Hyndman y Athanasopoulos (2021). Sea \(L\) el operador rezago, definido por \(LY_t = Y_{t-1}\) y, en general, \(L^kY_t = Y_{t-k}\). Su utilidad es que permite escribir la dinámica de una serie como un polinomio que “actúa” sobre ella.

Proceso autorregresivo AR(p). El valor actual depende de sus propios \(p\) valores pasados más una innovación:

\[ Y_t = c + \phi_1Y_{t-1} + \cdots + \phi_pY_{t-p} + \varepsilon_t \;\;\Longleftrightarrow\;\; \underbrace{(1-\phi_1L-\cdots-\phi_pL^p)}_{\phi(L)}Y_t = c + \varepsilon_t . \]

Para el caso más simple, AR(1), sustituyendo hacia atrás repetidamente:

\[ Y_t = c + \phi_1Y_{t-1} + \varepsilon_t = c(1+\phi_1+\phi_1^2+\cdots) + \varepsilon_t + \phi_1\varepsilon_{t-1} + \phi_1^2\varepsilon_{t-2} + \cdots \]

La suma solo converge si \(|\phi_1|<1\); en ese caso el proceso es estacionario, con media \(\mu = c/(1-\phi_1)\) y varianza \(\sigma^2/(1-\phi_1^2)\). En general, un AR(p) es estacionario si todas las raíces del polinomio \(\phi(z)=0\) están fuera del círculo unitario (\(|z|>1\)). Si \(\phi_1 = 1\), los choques nunca se disipan y la serie tiene raíz unitaria: es un paseo aleatorio.

Proceso de medias móviles MA(q). El valor actual es una combinación de la innovación actual y de las \(q\) innovaciones pasadas:

\[ Y_t = \mu + \varepsilon_t + \theta_1\varepsilon_{t-1} + \cdots + \theta_q\varepsilon_{t-q} = \mu + \underbrace{(1+\theta_1L+\cdots+\theta_qL^q)}_{\theta(L)}\varepsilon_t . \]

Un MA finito siempre es estacionario. La condición relevante es la invertibilidad: si las raíces de \(\theta(z)=0\) están fuera del círculo unitario, el MA puede reescribirse como un AR infinito, \(\theta(L)^{-1}(Y_t-\mu)=\varepsilon_t\), y la innovación puede recuperarse de forma única con la historia observada. Por ejemplo, en un MA(1) se requiere \(|\theta_1|<1\).

Innovación o ruido blanco. \(\varepsilon_t\) es la parte de \(Y_t\) que no puede anticiparse con la información pasada. Se supone ruido blanco: \(E(\varepsilon_t)=0\), \(Var(\varepsilon_t)=\sigma^2\) constante y \(Cov(\varepsilon_t,\varepsilon_{t-k})=0\) para \(k\neq0\). La normalidad es un supuesto adicional, útil para construir intervalos, pero no hace parte de la definición de ruido blanco.

Del ARMA al ARIMA: el papel de \((1-L)^d\)

Al combinar ambas partes se obtiene el ARMA(p,q):

\[ \phi(L)Y_t = c + \theta(L)\varepsilon_t . \]

Los parámetros son \(p\) (cuántos rezagos de la serie), \(q\) (cuántos rezagos de la innovación) y, cuando la serie no es estacionaria en media, \(d\): el número de diferencias necesarias. La diferencia de primer orden es \((1-L)Y_t = Y_t - Y_{t-1}\). Si el log-precio sigue un paseo aleatorio con deriva,

\[ \ln P_t = \mu + \ln P_{t-1} + \varepsilon_t \;\;\Rightarrow\;\; (1-L)\ln P_t = \ln P_t - \ln P_{t-1} = r_t = \mu + \varepsilon_t , \]

es decir, la diferencia elimina la raíz unitaria y deja una serie estacionaria: el rendimiento logarítmico \(r_t\). Generalizando, el ARIMA(p,d,q) es

\[ \phi(L)(1-L)^dY_t = c + \theta(L)\varepsilon_t . \]

Esta relación es central en el trabajo: estimar un ARIMA(p,0,q) sobre los rendimientos \(r_t\) equivale a estimar un ARIMA(p,1,q) sobre el log-precio, porque \(r_t=(1-L)\ln P_t\). Por eso, cuando las pruebas confirman que el log-precio tiene raíz unitaria y los rendimientos son estacionarios, se trabaja con \(d=0\) sobre \(r_t\).

ARIMAX: por qué una variable externa puede aportar información

El ARIMAX agrega un vector de regresores \(X_t\). La forma que estima forecast::Arima() es una regresión con errores ARMA:

\[ r_t = c + \beta' X_t + u_t, \qquad \phi(L)u_t = \theta(L)\varepsilon_t . \]

El componente autorregresivo solo usa la historia de la propia serie. Pero una parte importante del movimiento diario de una acción proviene de factores comunes a todo el mercado (noticias macroeconómicas, tasas de interés, apetito por riesgo). Esa información está en \(X_t\) y no en el pasado de \(r_t\). Con \(X_t = r_{SPY,t}\), la ecuación es el modelo de mercado de finanzas, y \(\beta\) es la sensibilidad de KO a los movimientos del mercado.

Dos advertencias:

  1. Asociación no es causalidad. Un \(\beta\) significativo indica que, condicional al resto del modelo, KO y SPY se mueven juntos. No prueba que SPY “cause” a KO: ambos responden a los mismos choques, y KO es incluso parte del S&P 500.
  2. Disponibilidad futura de \(X_{T+h}\). Para pronosticar \(r_{T+h}\) se necesita \(X_{T+h}\), que no se conoce en \(T\). Usar el valor observado sería data leakage. En este trabajo \(X_{T+h}\) se reemplaza por su propio pronóstico, construido solo con información hasta \(T\), y su incertidumbre se discute con escenarios.

SARIMA y SARIMAX: dinámica regular frente a estacional

Cuando existe un patrón que se repite cada \(s\) periodos, se agregan polinomios en \(L^s\):

\[ \Phi_P(L^s)\,\phi_p(L)\,(1-L)^d(1-L^s)^D\, Y_t = c + \beta'X_t + \Theta_Q(L^s)\,\theta_q(L)\,\varepsilon_t . \]

La notación es SARIMAX\((p,d,q)(P,D,Q)_s\):

  • \((p,d,q)\) es la dinámica regular: relación entre observaciones consecutivas (\(t\) con \(t-1\), \(t-2\), …).
  • \((P,D,Q)\) es la dinámica estacional: relación entre observaciones separadas por múltiplos de \(s\) (\(t\) con \(t-s\), \(t-2s\), …). \(P\) son los rezagos autorregresivos estacionales, \(D\) las diferencias estacionales \((1-L^s)\) y \(Q\) las medias móviles estacionales.
  • \(s\) es la periodicidad: 12 en datos mensuales con patrón anual, 4 en trimestrales y, en datos bursátiles diarios, \(s=5\) si existiera un patrón semanal.

Por ejemplo, el SARIMAX\((1,0,1)(1,0,1)_5\) evaluado más adelante se escribe como \((1-\Phi_1L^5)(1-\phi_1L)u_t = (1+\Theta_1L^5)(1+\theta_1L)\varepsilon_t\); al multiplicar los polinomios aparecen términos en \(L^1, L^5\) y \(L^6\). Los términos estacionales solo se justifican si hay evidencia (picos en la ACF/PACF en los rezagos 5, 10, 15…, diferencias sistemáticas por día de la semana o conocimiento del mercado).

Nota sobre heterocedasticidad condicional

Los modelos anteriores suponen \(Var(\varepsilon_t)=\sigma^2\) constante. En series financieras es frecuente que los periodos de alta volatilidad se agrupen (heterocedasticidad condicional). Si el diagnóstico la detecta, la media pronosticada por el ARIMA sigue siendo válida, pero los intervalos con varianza constante pueden ser demasiado anchos en periodos tranquilos y demasiado estrechos en periodos turbulentos. La extensión natural sería un modelo ARCH/GARCH (Engle, 1982; Bollerslev, 1986), por ejemplo \(\sigma_t^2 = \omega + \alpha\,\varepsilon_{t-1}^2 + \beta_G\,\sigma_{t-1}^2\). Esa modelación está fuera del alcance de este trabajo, que se concentra en ARIMA, ARIMAX y SARIMAX; aquí se señala como extensión y sus implicaciones se tienen en cuenta al interpretar los intervalos y la simulación.

5. Identificación y calibración

Separación cronológica

Partición cronológica de los rendimientos
Bloque Desde Hasta Observaciones Proporcion
Train 2020-01-03 2025-06-30 1379 0,8
Test 2025-07-01 2026-11-11 345 0,2

Se reserva el 20 % final de las observaciones como test (345 sesiones, desde el 1 de julio de 2025 hasta el 11 de noviembre de 2026). La proporción se justifica por el tipo de decisión: con un horizonte de inversión de 21 sesiones, el bloque de prueba permite aplicar la regla de inversión 16 veces de forma consecutiva, y evaluar el pronóstico en más de un año de mercado. A su vez, el 80 % de train (1379 sesiones) incluye episodios muy distintos (pandemia, inflación, alzas de tasas y recuperación), lo que da variedad para estimar los modelos.

La separación respeta el orden temporal y se fija antes de cualquier cálculo dependiente de la muestra. Por eso, el λ de Box–Cox, las pruebas de estacionariedad, la ACF/PACF, los parámetros de los modelos (incluido el modelo que pronostica SPY) y la selección del modelo final se obtienen solo con train. El test se usa una única vez para medir la capacidad de generalización y no para volver a especificar los modelos.

Estacionariedad

Pruebas de estacionariedad sobre train
Serie Prueba Estadistico Valor p
Log-precio ADF (H0: raíz unitaria) -4,2432 0,01
Log-precio KPSS nivel (H0: estacionaria) 14,1491 0,01
Log-precio KPSS tendencia (H0: estacionaria alrededor de tendencia) 0,8713 0,01
Rendimientos ADF (H0: raíz unitaria) -10,9972 0,01
Rendimientos KPSS nivel (H0: estacionaria) 0,0413 0,10

Nota: tseries acota los valores p de ADF y KPSS a sus tablas (0,01 y 0,10); un valor de 0,01 debe leerse como “menor o igual a 0,01” y uno de 0,10 como “mayor o igual a 0,10”.

Las pruebas se aplican con un nivel de significancia del 5 %. Recuérdese que ADF (Dickey & Fuller, 1979) y KPSS (Kwiatkowski et al., 1992) tienen hipótesis nulas opuestas: ADF parte de que hay raíz unitaria, KPSS de que la serie es estacionaria.

Log-precio. ADF arroja un valor p ≤ 0,01 y rechaza la raíz unitaria, mientras que KPSS rechaza la estacionariedad tanto en nivel (estadístico 14,15) como alrededor de una tendencia (0,87), en ambos casos con valor p ≤ 0,01. Las pruebas se contradicen. El rechazo de ADF tiene una explicación concreta: adf.test incluye una tendencia lineal y, dentro de train, el desplome de 2020 seguido de la recuperación produce una apariencia de “regreso” a la tendencia que la prueba interpreta como reversión. Sin embargo, la ACF del log-precio (siguiente apartado) decae muy lentamente, KPSS rechaza con holgura y la teoría financiera indica que el precio de una acción líquida no regresa a un nivel fijo. Ante la duda, es más costoso no diferenciar una serie con raíz unitaria (regresiones espurias, pronósticos que regresan artificialmente a una media) que diferenciarla de más; por eso se toma \(d = 1\) para el log-precio.

Rendimientos. ADF rechaza la raíz unitaria (p ≤ 0,01; estadístico -11,00) y KPSS no rechaza la estacionariedad (p ≥ 0,10; estadístico 0,041). Ambas pruebas coinciden: los rendimientos son estacionarios. En consecuencia, los modelos se estiman sobre los rendimientos con \(d = 0\), lo que equivale a modelos con \(d = 1\) sobre el log-precio.

ACF y PACF

Primeros 10 rezagos de la ACF y PACF de los rendimientos (banda = ±0,0528)
Rezago ACF PACF Fuera de banda (±1,96/√n)
1 -0,0304 -0,0304 No
2 0,0759 0,0751 Sí
3 -0,0543 -0,0502 Sí
4 -0,1022 -0,1116 Sí
5 0,0863 0,0902 Sí
6 -0,0538 -0,0366 Sí
7 0,0977 0,0718 Sí
8 -0,0250 -0,0163 No
9 0,0808 0,0827 Sí
10 -0,0157 -0,0185 No
Autocorrelación de los rendimientos de KO por submuestra
Submuestra Observaciones Ljung-Box (20) Valor p
Train completo 1379 89,9057 0,0000
Solo 2020 252 51,8615 0,0001
2021 a fin de train 1127 20,5050 0,4268

En el log-precio, la ACF parte de valores cercanos a 1 y decae muy despacio, mientras que la PACF tiene un solo pico dominante en el rezago 1: es el patrón típico de un proceso con raíz unitaria y confirma la necesidad de diferenciar.

En los rendimientos, todas las autocorrelaciones son pequeñas (la mayor, en valor absoluto, es 0,102 en el rezago 4), pero varias quedan fuera de la banda ±0,053, en especial en los rezagos 2, 3, 4, 5, 6, 7, 9. No hay un corte limpio en la ACF ni en la PACF que sugiera un AR o un MA de orden alto, y los signos se alternan sin un patrón claro.

La tabla por submuestras explica este resultado: la dependencia proviene casi por completo de 2020 (Ljung-Box con valor p de 0,0001), mientras que entre 2021 y el fin de train no hay autocorrelación significativa (valor p de 0,427). Además, las bandas ±1,96/√n suponen varianza constante; cuando hay agrupamiento de volatilidad, como en 2020, esas bandas son demasiado estrechas y exageran la significancia.

Con esta evidencia, la identificación sugiere órdenes bajos. Se proponen como candidatos: ARIMA(0,0,0) (rendimiento igual a una media más ruido, que equivale a un paseo aleatorio con deriva en el log-precio y sirve como referencia de mercado eficiente), ARIMA(1,0,0) y ARIMA(0,0,1) (para recoger la autocorrelación del primer rezago) y ARIMA(1,0,1) (combinación mínima de ambas partes). No se proponen órdenes mayores porque las autocorrelaciones fuera de banda son de magnitud muy baja, cambian de signo y dependen de un solo año; agregarlas implicaría sobreajustar 2020.

¿Hay estacionalidad semanal (\(s=5\))?

Rendimiento de KO por día de la semana (train)
Dia Rend. medio (%) Desv. est. (%) Sesiones
lunes 0,0881 1,4390 256
martes 0,0143 1,1376 285
miércoles 0,0155 1,2836 283
jueves -0,0548 1,4342 278
viernes 0,0952 1,2528 277
ACF y PACF en los rezagos estacionales (múltiplos de 5)
Rezago ACF PACF Fuera de banda
5 0,0863 0,0902 Sí
10 -0,0157 -0,0185 No
15 -0,0095 -0,0041 No
20 -0,0574 -0,0460 Sí
25 -0,0317 -0,0421 No
30 -0,0100 -0,0081 No

Para decidir si se justifica un componente estacional con \(s = 5\) se revisaron tres tipos de evidencia:

  1. Efecto día de la semana. Los rendimientos medios por día varían entre -0,055 % y 0,095 %, pero la prueba F de igualdad de medias (regresión de los rendimientos sobre variables indicadoras del día) tiene un valor p de 0,658, de modo que no se rechaza que todos los días tengan el mismo rendimiento medio.
  2. Rezagos múltiplos de 5. La ACF es significativa en el rezago 5 (0,086) y marginalmente en el 20, pero no en 10, 15, 25 ni 30. Un patrón estacional real debería repetirse en los múltiplos; un pico aislado es más coherente con ruido o con la volatilidad de 2020.
  3. Conocimiento del mercado. No hay razones económicas para que la demanda de bebidas, ni la valoración de la empresa, siga un ciclo semanal. Los efectos de calendario documentados en la literatura son pequeños y tienden a desaparecer cuando se conocen.

La evidencia de estacionalidad es débil. Aun así, se estima un SARIMAX\((1,0,1)(1,0,1)_5\) para contrastarla formalmente: si los términos estacionales no resultan significativos y no mejoran el pronóstico, se descartan.

Variable exógena: elección y pronóstico sin data leakage

Elección. Se usa el rendimiento diario del ETF SPY, que replica el índice S&P 500, como aproximación del mercado accionario de EE. UU. La justificación económica es el modelo de mercado: una parte del rendimiento de cualquier acción se explica por un factor común (expectativas macroeconómicas, tasas de interés, apetito por riesgo) que el pasado de KO no contiene. SPY tiene además ventajas prácticas: negocia en el mismo horario y calendario que KO, es muy líquido y está disponible en la misma fuente. Se consideraron otras variables, como el rendimiento del bono del Tesoro a 10 años, el índice del dólar (buena parte de las ventas de Coca-Cola ocurre fuera de EE. UU.) o el precio de insumos como el azúcar y el aluminio. Se descartaron porque su relación diaria con KO es más débil o indirecta y porque enfrentan el mismo problema de disponibilidad futura descrito a continuación.

Disponibilidad de \(X_{T+h}\). El coeficiente de SPY mide la relación contemporánea: el rendimiento de KO del día \(t\) se asocia con el de SPY del mismo día. Para pronosticar KO en \(T+h\) se necesitaría conocer SPY en \(T+h\), que no está disponible en \(T\). Hay tres opciones: (a) usar el SPY realmente observado, lo cual es data leakage y haría lucir al modelo mejor de lo que es; (b) pronosticar SPY con información disponible hasta \(T\); o (c) trabajar con escenarios. Aquí se usa (b) en todas las evaluaciones fuera de muestra y (c) para la sensibilidad de la sección 8. El modelo de SPY se elige entre cuatro especificaciones simples, solo con datos de train y por AICc.

Modelos para pronosticar el rendimiento de SPY (solo train)
Modelo AICc BIC
ARIMA(0,0,0) -7949,23 -7938,78
ARIMA(1,0,0) -7980,63 -7964,96
ARIMA(0,0,1) -7974,95 -7959,28
ARIMA(1,0,1) -7986,97 -7966,08

El modelo seleccionado para SPY es un ARIMA(1,0,1), con \(\phi_1\) = -0,471 y \(\theta_1\) = 0,316. Estos coeficientes casi se compensan entre sí, de modo que el pronóstico de SPY converge en pocos días a su media de train (0,052 % diario, unos 1,11 % por mes). En la práctica, esto significa que lo que el ARIMAX puede aportar fuera de muestra a partir de SPY es poco más que una constante. La mejora de ajuste que SPY genera dentro de la muestra proviene de conocer el valor contemporáneo del mercado, información que no existe al momento de pronosticar. Esta es una limitación de fondo de usar regresores contemporáneos, y se verá reflejada en la validación y en el test.

Estimación de los candidatos sobre train

Los órdenes candidatos se proponen manualmente a partir de la identificación anterior; no se usa auto.arima() en ningún punto. Todos se estiman por máxima verosimilitud sobre el bloque de entrenamiento con la función Arima() del paquete forecast (Hyndman & Khandakar, 2008); las pruebas ADF y KPSS usan el paquete tseries (Trapletti & Hornik, 2024).

Criterios de información y raíces (|raíz| > 1 indica estacionariedad/invertibilidad)
Modelo Parametros LogLik AIC AICc BIC Raíz mín. AR Raíz mín. MA
SARIMAX(1,0,1)(1,0,1)[5] + SPY 6 4320,352 -8626,704 -8626,623 -8590,100 1,201 1,272
ARIMAX(0,0,0) + SPY 2 4310,835 -8615,669 -8615,652 -8599,982 — —
ARIMAX(1,0,1) + SPY 4 4312,396 -8614,792 -8614,748 -8588,647 6,499 9,356
ARIMA(0,0,0) 1 4021,198 -8038,396 -8038,387 -8027,938 — —
ARIMA(1,0,1) 3 4023,165 -8038,330 -8038,301 -8017,414 2,237 2,505
ARIMA(1,0,0) 2 4021,834 -8037,668 -8037,651 -8021,981 32,940 —
ARIMA(0,0,1) 2 4021,752 -8037,504 -8037,487 -8021,817 — 37,764
Coeficientes estimados, errores estándar y significancia (train)
Modelo Parametro Coeficiente Error_estandar Estadistico_z Valor_p
ARIMA(0,0,0) intercept 0,0003 0,0004 0,8636 0,3878
ARIMA(1,0,0) ar1 -0,0304 0,0269 -1,1281 0,2593
ARIMA(1,0,0) intercept 0,0003 0,0003 0,8924 0,3722
ARIMA(0,0,1) ma1 -0,0265 0,0252 -1,0516 0,2930
ARIMA(0,0,1) intercept 0,0003 0,0003 0,8873 0,3749
ARIMA(1,0,1) ar1 -0,4470 0,1588 -2,8153 0,0049
ARIMA(1,0,1) ma1 0,3992 0,1609 2,4815 0,0131
ARIMA(1,0,1) intercept 0,0003 0,0003 0,9009 0,3676
ARIMAX(0,0,0) + SPY intercept 0,0000 0,0003 0,0269 0,9786
ARIMAX(0,0,0) + SPY SPY 0,5670 0,0211 26,8314 0,0000
ARIMAX(1,0,1) + SPY ar1 0,1539 0,2753 0,5589 0,5762
ARIMAX(1,0,1) + SPY ma1 -0,1069 0,2761 -0,3872 0,6986
ARIMAX(1,0,1) + SPY intercept 0,0000 0,0003 0,0297 0,9763
ARIMAX(1,0,1) + SPY SPY 0,5674 0,0210 27,0809 0,0000
SARIMAX(1,0,1)(1,0,1)[5] + SPY ar1 0,1695 0,2271 0,7465 0,4554
SARIMAX(1,0,1)(1,0,1)[5] + SPY ma1 -0,1119 0,2276 -0,4917 0,6229
SARIMAX(1,0,1)(1,0,1)[5] + SPY sar1 0,3995 0,2217 1,8023 0,0715
SARIMAX(1,0,1)(1,0,1)[5] + SPY sma1 -0,3003 0,2306 -1,3019 0,1930
SARIMAX(1,0,1)(1,0,1)[5] + SPY intercept 0,0000 0,0004 0,0234 0,9814
SARIMAX(1,0,1)(1,0,1)[5] + SPY SPY 0,5681 0,0208 27,3058 0,0000

Interpretación de los coeficientes y criterios de información

Modelos ARIMA. En ARIMA(1,0,0) y ARIMA(0,0,1) el término dinámico es pequeño (-0,030 y -0,026) y no significativo (valores p de 0,259 y 0,293). En ARIMA(1,0,1), en cambio, ambos términos son significativos (AR(1) = -0,447, p = 0,0049; MA(1) = 0,399, p = 0,0131), pero tienen signos opuestos y magnitudes parecidas. En el polinomio \((1 - \phi_1L)\) frente a \((1 + \theta_1L)\), las raíces (2,24 y 2,50) están cerca una de la otra: es una cuasi-cancelación, en la que cada término compensa casi por completo al otro. Por eso el modelo tiene una log-verosimilitud apenas 1,97 puntos mayor que la de ARIMA(0,0,0) y un AICc prácticamente idéntico. La significancia individual, en este caso, no implica que el modelo capture una dinámica económicamente relevante. Todas las raíces están fuera del círculo unitario, así que todos los candidatos son estacionarios e invertibles. La constante (rendimiento medio diario, 0,031 %) no es estadísticamente distinta de cero, algo esperable cuando la volatilidad es tan alta frente a la media.

Modelos con SPY. El coeficiente \(\beta\) de SPY es muy estable entre especificaciones (entre 0,567 y 0,568) y muy significativo (estadístico z cercano a 27). Se interpreta así: en un día en que SPY sube 1 %, KO sube en promedio alrededor de 0,57 %, manteniendo lo demás constante. Esto confirma su carácter defensivo (beta menor que 1). Es una asociación estadística, no un efecto causal: KO forma parte del S&P 500 y ambos responden a las mismas noticias. Al incluir SPY, los términos AR y MA del ARIMAX(1,0,1) dejan de ser significativos (p = 0,576 y 0,699), lo que indica que la poca autocorrelación de KO estaba ligada a movimientos generales del mercado.

SARIMAX. Ningún término ARMA, regular ni estacional, es significativo al 5 % (SAR(1): p = 0,072; SMA(1): p = 0,193), en línea con la débil evidencia de estacionalidad.

Criterios de información. El SARIMAX tiene el menor AICc (-8.626,6), y el ARIMAX(0,0,0) el menor BIC. Pero la diferencia de unos 590 puntos de AICc entre los modelos con SPY y sin SPY no se debe a una mejor dinámica: se debe a que SPY contemporáneo “explica” cerca del 34 % de la varianza diaria de KO. Ese ajuste solo es alcanzable si se conoce el SPY del mismo día, algo imposible al pronosticar. Entre los modelos sin SPY, los criterios prácticamente empatan y el BIC, que penaliza más los parámetros, favorece a ARIMA(0,0,0). Por eso el AICc, por sí solo, no es suficiente para elegir: debe complementarse con significancia, parsimonia, diagnóstico y capacidad de pronóstico con la información realmente disponible.

6. Diagnóstico de residuos y selección del modelo

Diagnóstico de todos los candidatos

Valores p de las pruebas sobre los residuos de train (H0: ruido blanco / normalidad / sin efecto ARCH)
Modelo Ljung-Box (20) Ljung-Box e² (20) Jarque-Bera ARCH-LM (12)
ARIMA(0,0,0) 7,70e-11 0,00e+00 0,00e+00 4,17e-97
ARIMA(1,0,0) 1,68e-10 0,00e+00 0,00e+00 5,88e-95
ARIMA(0,0,1) 1,38e-10 0,00e+00 0,00e+00 3,02e-95
ARIMA(1,0,1) 6,02e-10 0,00e+00 0,00e+00 3,28e-93
ARIMAX(0,0,0) + SPY 8,62e-07 0,00e+00 0,00e+00 4,81e-29
ARIMAX(1,0,1) + SPY 1,91e-07 0,00e+00 0,00e+00 1,78e-27
SARIMAX(1,0,1)(1,0,1)[5] + SPY 8,78e-05 0,00e+00 0,00e+00 3,54e-25

Ningún candidato produce residuos de ruido blanco en sentido estricto. Ljung-Box (Ljung & Box, 1978) rechaza la ausencia de autocorrelación en todos (valores p entre 7,7e-11 y 8,8e-05). Los modelos con SPY reducen el estadístico, pero no lo suficiente. Ljung-Box sobre los residuos al cuadrado y ARCH-LM rechazan con valores p prácticamente nulos en todos los casos: la varianza de los errores depende de su pasado. Jarque-Bera (Jarque & Bera, 1987) rechaza la normalidad en todos los casos, y ARCH-LM (Engle, 1982) confirma la heterocedasticidad condicional.

Estas conclusiones son comunes a todas las especificaciones, de modo que el diagnóstico no permite descartar un modelo frente a otro: los problemas son propios de los datos (volatilidad agrupada y colas pesadas), no de un orden mal elegido. Hay además un efecto entre las pruebas: cuando existe heterocedasticidad condicional, Ljung-Box tiende a rechazar más de lo que debería, porque supone varianza constante. Por eso el resultado de Ljung-Box se lee junto con la evidencia de que la autocorrelación desaparece después de 2020.

Validación interna dentro de train y regla de selección

Tablero de selección con información de train (RMSE con rendimiento cero: 1,0492 p.p.)
Modelo Parametros AICc BIC Términos ARMA ARMA no signif. (5 %) Raíces válidas RMSE valid. (p.p.) MAE valid. (p.p.) Admisible
ARIMA(0,0,0) 1 -8038,387 -8027,938 0 0 Sí 1,0481 0,7875 Sí
ARIMA(0,0,1) 2 -8037,487 -8021,817 1 1 Sí 1,0485 0,7882 No
ARIMA(1,0,0) 2 -8037,651 -8021,981 1 1 Sí 1,0487 0,7885 No
ARIMA(1,0,1) 3 -8038,301 -8017,414 2 0 Sí 1,0502 0,7923 Sí
ARIMAX(0,0,0) + SPY 2 -8615,652 -8599,982 0 0 Sí 1,0743 0,8000 Sí
ARIMAX(1,0,1) + SPY 4 -8614,748 -8588,647 2 2 Sí 1,0962 0,8105 No
SARIMAX(1,0,1)(1,0,1)[5] + SPY 6 -8626,622 -8590,100 4 4 Sí 1,1025 0,8066 No

Como el diagnóstico no discrimina entre candidatos y el AICc premia un ajuste que no puede replicarse fuera de muestra, la selección se hace con una regla explícita que solo usa train:

  1. Especificación admisible: todos los términos ARMA (regulares y estacionales) significativos al 5 % y raíces fuera del círculo unitario. Esto descarta ARIMA(1,0,0), ARIMA(0,0,1), ARIMAX(1,0,1) y SARIMAX, que incluyen términos sin respaldo estadístico.
  2. Pronóstico con información disponible: train se divide a su vez en un sub-bloque de estimación (80 %, hasta el 21 de mayo de 2024) y uno de validación (20 % final de train). Cada modelo se estima en el primer bloque y se evalúa un paso adelante en el segundo, con parámetros fijos y con SPY reemplazado por su pronóstico. El test no interviene.
  3. Parsimonia: entre los admisibles se elige el de menor RMSE de validación; si otro está a menos de 0,5 % de ese RMSE, se prefiere el de menos parámetros.

El resultado es claro. ARIMA(0,0,0) tiene el menor error de validación (1,0481 p.p.) y es el que más mejora, aunque marginalmente, frente al pronóstico de rendimiento cero (1,0492 p.p.). ARIMA(1,0,1) es admisible, pero pronostica peor (1,0502 p.p.), lo que confirma que su cuasi-cancelación no aporta capacidad predictiva. Los modelos con SPY, que dominaban por AICc, son los peores en validación (1,0743 p.p. o más): sin el SPY real del día, el regresor solo añade el error del pronóstico de SPY.

El modelo seleccionado sobre los rendimientos es, por lo tanto, \(r_t = \mu + \varepsilon_t\), que equivale a un ARIMA(0,1,0) con deriva sobre el log-precio: \(\ln P_t = \mu + \ln P_{t-1} + \varepsilon_t\). Es la especificación que la teoría de mercados eficientes en su forma débil (Fama, 1970) predice para una acción grande y líquida: el mejor pronóstico del rendimiento es su promedio, y el del precio es el último precio más una deriva. Elegirlo no es “no modelar”. Es el resultado de un proceso de identificación que no encontró dinámica explotable, y es preferible a forzar un modelo más complejo que solo ajusta mejor el pasado.

Modelo seleccionado: ARIMA(0,0,0).

Diagnóstico del modelo seleccionado

Diagnóstico de residuos: ARIMA(0,0,0)
Prueba Hipótesis nula Estadistico Valor p
Ljung-Box (20 rezagos) Sin autocorrelación 89,9057 0
Ljung-Box sobre e² (20 rezagos) Sin autocorrelación en la varianza 2387,0554 0
Jarque-Bera Normalidad 4441,7041 0
Shapiro-Wilk (complementaria) Normalidad 0,8950 0
ARCH-LM (12 rezagos) Sin efectos ARCH 489,3096 0

El gráfico temporal de los residuos muestra media cercana a cero pero varianza claramente inestable: la volatilidad anualizada de los residuos fue 34,9 % en 2020 frente a 12,8 % en 2024. La ACF de los residuos tiene algunos rezagos fuera de banda, los mismos de los rendimientos (el modelo no filtra dinámica en la media), y Ljung-Box rechaza (estadístico 89,9, p < 0,001). Sin embargo, como se vio por submuestras, esa autocorrelación se concentra en 2020 y no es estable.

El histograma es más puntiagudo que la normal y tiene colas largas; el gráfico Q-Q se separa de la recta en ambos extremos, más en el inferior. Jarque-Bera (4.442, p < 0,001) rechaza la normalidad, y Shapiro-Wilk, usado como complemento, también la rechaza. Esta última prueba es muy sensible en muestras de más de mil datos, por lo que se le da un peso secundario. Ljung-Box sobre \(e_t^2\) y ARCH-LM (489, p < 0,001) confirman los efectos ARCH.

En síntesis, los residuos cumplen \(E(\varepsilon_t) \approx 0\) y su autocorrelación es pequeña y no persistente, pero no cumplen varianza constante ni normalidad. Esto tiene tres implicaciones prácticas: (1) el pronóstico puntual de la media sigue siendo utilizable; (2) los intervalos de predicción con varianza constante promedian periodos calmados y turbulentos, así que serán demasiado anchos en calma y demasiado estrechos en crisis; y (3) la simulación de escenarios no debe suponer normalidad, por lo que se usa bootstrap de residuos. La corrección completa requeriría un modelo GARCH para la varianza, que se deja como extensión.

7. Train-test y capacidad predictiva

Pronóstico multi-paso desde el fin de train

En esta evaluación el analista se ubica en \(T_0\) = 30 de junio de 2025 y pronostica todo el bloque de prueba (345 sesiones) de una sola vez, con los parámetros de train y con SPY reemplazado por su pronóstico. Es el escenario más exigente, porque no se incorpora ninguna información posterior a \(T_0\).

Errores del pronóstico multi-paso del precio en test (MAE y RMSE en USD; MAPE en %; MASE adimensional)
Modelo MAE MAPE MASE RMSE
ARIMA(1,0,1) 6,0224 7,3703 13,6528 7,8689
ARIMAX(1,0,1) + SPY 6,0326 7,3821 13,6758 7,8828
ARIMA(1,0,0) 6,0379 7,3873 13,6880 7,8928
ARIMA(0,0,0) 6,0419 7,3928 13,6971 7,8964
ARIMA(0,0,1) 6,0448 7,3951 13,7035 7,9025
ARIMAX(0,0,0) + SPY 6,0496 7,4003 13,7145 7,9102
SARIMAX(1,0,1)(1,0,1)[5] + SPY 6,0619 7,4079 13,7424 7,9439
Ingenuo (paseo aleatorio) 8,8098 10,6114 19,9719 11,7755

Cómo leer las métricas. El MAE y el RMSE están en dólares por acción; el MAPE en porcentaje del precio; el MASE no tiene unidades. En las cuatro, menor es mejor. El RMSE penaliza más los errores grandes que el MAE. El MAPE es interpretable aquí porque el precio está lejos de cero (no se usaría con rendimientos, que oscilan alrededor de cero y harían explotar el cociente). El MASE (Hyndman & Koehler, 2006) divide el MAE del test por el error medio de un pronóstico ingenuo a un día dentro de train (0,441 USD). Como aquí se pronostica a 345 días, el MASE es mayor que 1 en todos los casos, incluido el propio pronóstico ingenuo (19,97). Por eso un MASE mayor que 1 no significa que el modelo pierda contra el ingenuo; la comparación correcta es con la fila del ingenuo, evaluada en el mismo horizonte.

Resultados. Todos los modelos superan con claridad al paseo aleatorio sin deriva (MAE de 8,81 USD frente a cerca de 6,04 USD del modelo seleccionado). Pero las diferencias entre modelos son mínimas: entre el mejor (ARIMA(1,0,1), MAE 6,022) y el peor (SARIMAX, MAE 6,062) hay menos de 4 centavos de dólar. La razón es que a tantos pasos todos los pronósticos convergen a lo mismo: el último precio de train más la deriva estimada. La ventaja frente al ingenuo proviene de la deriva (la tendencia alcista de largo plazo de KO), no de la dinámica ARMA ni de SPY.

Los gráficos muestran lo que las métricas resumen: el pronóstico es una curva suave y creciente, mientras que el precio observado subió 42,7 % durante el test, mucho más que la deriva histórica. Por eso todos los modelos subestiman el final del periodo. El intervalo del 95 % cubrió el 100 % de los días, una cobertura “perfecta” que en realidad refleja un intervalo demasiado ancho: su varianza constante incorpora la volatilidad de 2020, mientras que el test fue un periodo relativamente tranquilo. Es la consecuencia práctica de los efectos ARCH identificados en el diagnóstico.

¿El mejor en train es el mejor en test? No exactamente. Por AICc el favorito era el SARIMAX y en test es el de mayor error. El modelo seleccionado con la regla de train, ARIMA(0,0,0), queda en la mitad de la tabla, y ARIMA(1,0,1) obtiene el menor error. Sin embargo, esas diferencias son de centésimas y se ponen a prueba con la evaluación un paso adelante.

Pronóstico un paso adelante (rendimientos)

Errores un paso adelante en test (MAE y RMSE en puntos porcentuales; parámetros fijos de train)
Modelo MAE RMSE MASE Acierto de signo (%)
ARIMA(1,0,1) 0,8491 1,1283 0,9727 53,0435
ARIMA(1,0,0) 0,8493 1,1292 0,9730 50,1449
ARIMA(0,0,1) 0,8493 1,1294 0,9730 49,8551
ARIMA(0,0,0) 0,8499 1,1312 0,9736 50,7246
Rendimiento cero (paseo aleatorio) 0,8499 1,1336 0,9737 —
ARIMAX(0,0,0) + SPY 0,8538 1,1338 0,9781 48,9855
ARIMAX(1,0,1) + SPY 0,8590 1,1409 0,9841 46,0870
SARIMAX(1,0,1)(1,0,1)[5] + SPY 0,8631 1,1554 0,9888 50,7246
Prueba de Diebold-Mariano (H0: igual precisión un paso adelante, pérdida cuadrática)
Comparacion Estadístico DM Valor p
ARIMA(0,0,0) vs. ARIMA(1,0,1) 0,7889 0,4307
ARIMA(0,0,0) vs. SARIMAX(1,0,1)(1,0,1)[5] + SPY -2,1792 0,0300
ARIMA(0,0,0) vs. rendimiento cero -1,4409 0,1505

Esta segunda evaluación es más cercana al uso práctico: cada día del test se pronostica el rendimiento del día siguiente con los parámetros de train y la información hasta el día anterior (SPY también se pronostica un paso adelante). Las métricas están en puntos porcentuales de rendimiento. El MASE compara con el error medio del pronóstico de rendimiento cero en train, y el acierto de signo indica en qué porcentaje de días el modelo anticipó correctamente si KO subía o bajaba. El MAPE no se reporta porque los rendimientos reales toman valores muy cercanos a cero y el cociente pierde sentido.

Los resultados confirman la conclusión anterior. Los modelos sin SPY tienen errores prácticamente iguales al pronóstico ingenuo de rendimiento cero (RMSE de 1,1312 frente a 1,1336 p.p.), y los modelos con SPY quedan por detrás de todos ellos. Ningún modelo anticipa la dirección del mercado mejor que una moneda al aire: los aciertos de signo están entre 46,1 % y 53,0 %, cuando el 50,7 % de los días del test fueron alcistas.

La prueba de Diebold-Mariano (Diebold & Mariano, 1995) formaliza la comparación. No hay diferencia significativa entre el modelo seleccionado y ARIMA(1,0,1) (p = 0,431), ni frente al rendimiento cero (p = 0,151). En cambio, el modelo seleccionado es significativamente más preciso que el SARIMAX con SPY (p = 0,030). Es decir, el test no contradice la selección hecha en train: la ligera ventaja de ARIMA(1,0,1) no es estadísticamente distinguible, y la desventaja del modelo que ganaba por AICc sí lo es. No se reespecifica el modelo con base en el test, para no convertirlo en un mecanismo de sobreajuste.

8. Pronóstico e inversión

Regla de decisión definida antes de observar el test

Se administra un capital virtual de USD 100.000. La regla se fijó en la sección 2, antes de calcular cualquier resultado de test: se toma una posición larga en KO solo si el rendimiento esperado a 21 sesiones supera el 1 % y la probabilidad simulada de pérdida no supera el 40 %; de lo contrario, el capital permanece en efectivo. No se permiten posiciones cortas ni apalancamiento. El umbral del 1 % busca que la ganancia esperada compense, al menos, el costo de oportunidad de la liquidez y los costos de transacción no modelados; el límite de 40 % exige que el escenario favorable sea claramente más probable que el desfavorable. Es una regla académica, no una recomendación financiera, y no incorpora impuestos, comisiones ni deslizamiento.

Simulación de escenarios: método

La simulación genera 10.000 trayectorias de 21 sesiones. Como Jarque–Bera rechaza la normalidad de los residuos, las innovaciones no se generan con una distribución normal sino mediante bootstrap de residuos: (1) se toman los residuos del modelo seleccionado en train y se centran en cero; (2) para cada día simulado se remuestrea al azar, con reemplazo, uno de esos residuos; (3) el choque se propaga con los pesos \(\psi\) del modelo (su representación de medias móviles) y se suma a la media pronosticada; (4) los rendimientos se acumulan y se convierten en precios, \(P_{T+h}^{(m)} = P_T\exp\big(\sum_{k=1}^{h} r_{T+k}^{(m)}\big)\).

La ventaja del bootstrap es que no impone una distribución teórica y conserva las colas pesadas observadas. Sus limitaciones son que solo reproduce choques del tamaño de los ya vistos en train y que, al remuestrear días al azar, ignora que la volatilidad se agrupa en el tiempo (los efectos ARCH del diagnóstico); en un mes turbulento el riesgo real puede ser mayor al simulado. Además, no incorpora la incertidumbre de la estimación de los parámetros. Por eso los resultados deben leerse como escenarios de riesgo, no como precios garantizados.

Decisión en \(T_0\) y evaluación con lo efectivamente observado

El equipo se ubica en \(T_0\) = 30 de junio de 2025 (último día de train), con el modelo seleccionado y sin conocer ningún precio posterior.

Decisión en T0 = 2025-06-30 para un horizonte de 21 sesiones
Medida Valor
Precio de entrada P(T0) (USD) 68,39
Rendimiento esperado (pronóstico puntual) 0,644 %
Precio medio simulado 68,94
Percentil 5 % 62,27
Mediana (percentil 50 %) 68,94
Percentil 95 % 75,78
Probabilidad de pérdida 44,45 %
Decisión de la regla Mantener el 100 % en efectivo
Evaluación financiera de la decisión en T0 con los precios efectivamente observados
Concepto Valor
Fecha de cierre de la posición 2025-07-30
Precio observado al cierre (USD) 66,46
Rendimiento observado de KO -2,83 %
Valor final de la estrategia (USD) 100.000,00
Valor final si se hubiera invertido (USD) 97.173,14
¿Dónde quedó el resultado real dentro de la distribución simulada? Percentil 26,8

En \(T_0\) el modelo proyecta un rendimiento de 0,64 % a 21 sesiones (la deriva histórica de train) y una probabilidad de pérdida de 44,5 %. Ninguna de las dos condiciones de la regla se cumple: el rendimiento esperado no llega al 1 % y la probabilidad de pérdida supera el 40 %. Por eso el capital se mantiene en efectivo. Al mirar lo que ocurrió después, KO cayó 2,83 % en ese mes; la decisión evitó una pérdida de 2.827 USD. El resultado observado cayó en el percentil 27 de la distribución simulada, dentro del rango de escenarios previstos. La simulación no “acertó” la caída, pero sí la consideraba un escenario plausible.

Aplicación de la regla mes a mes durante el test

Para evaluar la regla en más de un mes, se aplica cada 21 sesiones a lo largo de todo el bloque de prueba. En cada fecha de decisión se usan los parámetros estimados en train (no se reestiman con el test) y solo los datos observados hasta ese día para actualizar el estado del modelo y el pronóstico de SPY.

Decisiones mensuales durante el test (parámetros fijos de train)
Decision Cierre Rend. esperado (%) Prob. pérdida (%) Posicion Rend. KO observado (%) Rend. estrategia (%)
2025-06-30 2025-07-30 0,64 44,80 Efectivo -2,83 0
2025-07-30 2025-08-28 0,64 43,35 Efectivo -0,57 0
2025-08-28 2025-09-29 0,64 44,55 Efectivo -2,65 0
2025-09-29 2025-10-28 0,64 44,65 Efectivo 6,24 0
2025-10-28 2025-11-26 0,64 43,15 Efectivo 3,88 0
2025-11-26 2025-12-29 0,64 45,00 Efectivo -3,06 0
2025-12-29 2026-01-29 0,64 45,20 Efectivo 4,66 0
2026-01-29 2026-03-02 0,64 43,70 Efectivo 9,25 0
2026-03-02 2026-03-31 0,64 45,05 Efectivo -4,55 0
2026-03-31 2026-04-30 0,64 45,05 Efectivo 3,56 0
2026-04-30 2026-06-01 0,64 44,00 Efectivo -0,15 0
2026-06-01 2026-07-01 0,64 43,75 Efectivo 4,04 0
2026-07-01 2026-07-31 0,64 47,10 Efectivo 7,75 0
2026-07-31 2026-08-31 0,64 47,25 Efectivo 1,23 0
2026-08-31 2026-09-30 0,64 44,05 Efectivo -2,34 0
2026-09-30 2026-10-29 0,64 44,60 Efectivo 7,83 0
Resultado acumulado entre 2025-06-30 y 2026-10-29
Estrategia Valor final (USD) Rendimiento total (%) Meses invertido Máx. caída (%)
Regla del modelo 100.000,0 0,00 0 0,00
Comprar y mantener KO 135.714,9 35,71 16 5,94
Efectivo 100.000,0 0,00 0 0,00

Durante el test, la regla nunca recomendó invertir: en las 16 fechas de decisión el rendimiento esperado fue de 0,64 % y la probabilidad de pérdida estuvo entre 43 % y 47 %. El resultado se explica por la forma del modelo: con ARIMA(0,0,0) el pronóstico es la misma media en todas las fechas, así que la decisión es siempre igual. KO subió en 9 de los 16 meses y la estrategia de comprar y mantener habría terminado en 135.715 USD (35,7 %), con una caída máxima de solo 5,9 %.

El costo de oportunidad es alto y debe interpretarse con sentido común. El problema no es tanto del modelo como de la regla: exige un rendimiento esperado mayor que 1 % mensual, por encima de la deriva histórica de KO en train (0,64 %), lo que solo ocurriría si el modelo tuviera capacidad de anticipar meses mejores que el promedio. Como los rendimientos diarios de KO son casi impredecibles, la regla se vuelve estructuralmente conservadora. A posteriori, el test coincidió con una de las mejores rachas de KO en la muestra (en 2026 subió más de 40 %), algo que ningún modelo basado en la historia podía anticipar. La regla no se modifica después de ver estos resultados, porque eso sería ajustar la estrategia al test. La lección queda registrada para el diseño de futuras reglas: el umbral debería compararse con la deriva esperada del activo y con el rendimiento del efectivo.

Pronóstico operativo desde la última fecha disponible

Concluida la evaluación, el modelo seleccionado se reestima con toda la muestra (misma especificación, sin cambiar órdenes por lo visto en test) y se aplica la regla desde la última observación, 11 de noviembre de 2026, para el siguiente mes bursátil.

Distribución simulada del precio de KO a 21 sesiones desde 2026-11-11
Medida Valor
Último precio ajustado (USD) 97,57
Precio puntual pronosticado al horizonte 98,50
Rendimiento esperado (puntual) 0,951 %
Precio medio simulado 98,65
Percentil 5 % 89,30
Mediana (percentil 50 %) 98,63
Percentil 95 % 108,27
Probabilidad de pérdida 42,33 %
Distribución del valor final del portafolio (USD)
Medida Valor si se invierte (USD) Valor si se mantiene en efectivo (USD)
Percentil 5 % 91.519,06 100.000,00
Mediana (percentil 50 %) 101.081,44 100.000,00
Percentil 95 % 110.969,27 100.000,00
Media 101.107,59 100.000,00
Posición adoptada según la regla de decisión
Concepto Valor
Decisión Mantener el capital en efectivo según la regla definida
Precio de entrada (USD) 97,57
Horizonte (sesiones) 21
Capital invertido en KO (USD) 0,00
Capital en efectivo (USD) 100.000,00
Acciones teóricas compradas 0,00

Escenarios para X(T+h) = rendimiento de SPY y su efecto sobre KO (β = 0,499, estimado con toda la muestra)
Escenario Rend. SPY a 21 sesiones (%) Rend. esperado KO, modelo de mercado (%) ¿Supera el umbral de 1 %?
Bajista (percentil 5 % histórico) -7,251 -3,332 No
Base (pronóstico ARIMA de SPY) 1,001 0,873 No
Alcista (percentil 95 % histórico) 8,119 4,363 Sí

Con toda la muestra, la deriva estimada sube (incluye la fuerte valorización del test) y el rendimiento esperado a 21 sesiones es de 0,95 %, con un precio puntual de 98,50 USD. La distribución simulada va de 89,30 USD (percentil 5 %) a 108,27 USD (percentil 95 %), con una mediana de 98,63 USD. La probabilidad de terminar por debajo del precio de entrada es 42,3 %. Si se invirtiera el capital, el valor mediano sería 101.081 USD, pero en el 5 % de los peores escenarios se perderían al menos 8.481 USD.

Decisión: Mantener el capital en efectivo según la regla definida. El rendimiento esperado queda por debajo del umbral del 1 % y la probabilidad de pérdida supera el 40 %. La decisión se aproxima al límite de la regla, pero no lo cruza. El mensaje de la simulación es que la ganancia esperada (alrededor de 1.108 USD) es pequeña frente al rango de resultados posibles (cerca de 19.450 USD entre los percentiles 5 y 95). Estos escenarios describen riesgo, no precios garantizados. Como el bootstrap no reproduce el agrupamiento de la volatilidad, si el mercado entrara en un periodo turbulento el rango real podría ser más amplio que el simulado.

¿Qué pasaría con SPY? El modelo final no usa SPY, por lo que su pronóstico no depende de \(X_{T+h}\). Aun así, la tabla de escenarios muestra la sensibilidad con el modelo de mercado (\(\beta\) = 0,499). En el escenario base, en el que SPY sube 1,00 % en el mes según su propio ARIMA, el rendimiento esperado de KO sería 0,87 %, también por debajo del umbral. Solo en un mes muy alcista para el mercado (percentil 95 histórico) se superaría el 1 %. Pero ese escenario no puede conocerse por anticipado, y esa es justamente la razón por la que el regresor contemporáneo no mejora el pronóstico.

9. Conclusiones y limitaciones

1. ¿Qué características de la serie determinaron la especificación elegida?

Fueron cuatro. El log-precio no es estacionario (KPSS rechaza y la ACF decae lentamente), lo que fijó \(d = 1\) sobre el log-precio, es decir, \(d = 0\) sobre los rendimientos. Los rendimientos tienen autocorrelaciones muy pequeñas que provienen casi por completo de 2020 y desaparecen después, lo que llevó a órdenes bajos. No hay evidencia de estacionalidad semanal (prueba F con p = 0,66 y términos estacionales no significativos). Por último, los rendimientos tienen volatilidad agrupada y colas pesadas (curtosis de 11,0), lo que condicionó cómo se construyen los intervalos y los escenarios.

2. ¿Cuál modelo fue seleccionado y por qué?

Se seleccionó ARIMA(0,0,0) sobre los rendimientos, equivalente a un ARIMA(0,1,0) con deriva sobre el log-precio. No fue el de menor AICc: ese lugar lo ocupó el SARIMAX con SPY, cuya ventaja proviene de usar el SPY del mismo día, que no está disponible al pronosticar, y cuyos términos ARMA no son significativos. Entre los modelos con especificación admisible (términos significativos y raíces válidas), ARIMA(0,0,0) tuvo el menor error en la validación interna de train y es el más parsimonioso. ARIMA(1,0,1), su principal rival, tiene coeficientes que casi se cancelan y no mejoró el pronóstico.

3. ¿Los residuos cumplen razonablemente con las condiciones esperadas?

Parcialmente. Su media es cercana a cero y la autocorrelación es pequeña e inestable (significativa por el episodio de 2020, pero no después). En cambio, ARCH-LM y Ljung-Box sobre los residuos al cuadrado muestran heterocedasticidad condicional, y Jarque-Bera rechaza la normalidad. Estas fallas son comunes a todos los candidatos, porque son propias de los rendimientos financieros diarios. No invalidan el pronóstico de la media, pero sí afectan los intervalos: con varianza constante resultaron demasiado anchos en un test tranquilo.

4. ¿El test confirma o contradice la selección de train?

La confirma en lo esencial. Los modelos con SPY, favoritos por AICc, pronosticaron peor, y la diferencia frente al modelo seleccionado es significativa según Diebold-Mariano. ARIMA(1,0,1) fue marginalmente mejor en test, pero la diferencia no es significativa. Todos los modelos superaron con amplitud al paseo aleatorio sin deriva en el pronóstico multi-paso, gracias a la deriva, aunque subestimaron la fuerte subida de 2026. Un mejor ajuste en train no garantizó un mejor pronóstico: el modelo más complejo fue el de peor desempeño fuera de muestra.

5. ¿Qué decisión produce la regla y qué riesgos muestra la simulación?

La regla mantiene el capital en efectivo, tanto en \(T_0\) como en cada mes del test y en el pronóstico operativo actual (rendimiento esperado de 0,95 % y probabilidad de pérdida de 42,3 %). La simulación muestra que, invirtiendo, el valor del portafolio a un mes estaría entre 91.519 y 110.969 USD en el 90 % de los escenarios. La decisión evitó la pérdida del primer mes, pero dejó pasar una valorización de 35,7 % durante el test.

Respuesta a la pregunta de investigación. La especificación más defendible para KO es el paseo aleatorio con deriva (ARIMA(0,1,0) con deriva en el log-precio). Su pronóstico es sencillo, pero honesto: supera al ingenuo sin deriva, no es superado de forma significativa por modelos más complejos y no depende de información futura. La decisión que se deriva de su distribución de escenarios, con la regla definida, es no invertir. Para un activo defensivo con poca predictibilidad de corto plazo, esa decisión refleja más el diseño de la regla que una señal negativa sobre la acción.

Alcance, limitaciones y posibles extensiones

  • Alcance. El modelo sirve como referencia de la tendencia de largo plazo y como base para cuantificar el riesgo a un mes. No sirve para anticipar movimientos diarios ni cambios de tendencia.
  • Varianza no constante. Los efectos ARCH afectan los intervalos y los escenarios. La extensión natural es un ARIMA-GARCH (Bollerslev, 1986), que haría que los intervalos se ensanchen o se estrechen según la volatilidad reciente.
  • Variable exógena. SPY contemporáneo no sirve para pronosticar. Una extensión sería probar regresores rezagados o variables con información adelantada (por ejemplo, expectativas de tasas o sorpresas en resultados), siempre disponibles en \(T\).
  • Regla de inversión. El umbral fijo del 1 % resultó más exigente que la deriva del activo. Una regla alternativa podría comparar el rendimiento esperado con la tasa libre de riesgo o ajustar el tamaño de la posición al riesgo, en lugar de una decisión de todo o nada.
  • Supuestos de la simulación. No incorpora la incertidumbre de los parámetros, costos de transacción, impuestos ni deslizamiento, y el bootstrap solo reproduce choques del tamaño de los observados en train.
  • Rupturas. La muestra contiene un choque extremo (2020) que domina varias pruebas. Un análisis de estabilidad de parámetros o un modelo con cambios de régimen permitiría evaluar si la dinámica es distinta antes y después de la pandemia.
  • Carácter académico. Los resultados no constituyen una recomendación de inversión.

10. Referencias y reproducibilidad

Reproducibilidad. El documento se ejecuta de principio a fin con rmarkdown::render(). Las simulaciones usan set.seed(20261109) (y semillas fijas por cada decisión mensual). Los datos provienen de Yahoo Finance (descargados con quantmod) y se guardan en datos_KO_SPY_YahooFinance.csv; si el archivo no existe, el código lo descarga de nuevo con la fecha de corte fija. Versión de R y de los paquetes utilizados:

## R version 4.6.2 (2026-10-29)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.5 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
##  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
##  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
## [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
## 
## time zone: UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] moments_0.14.1  knitr_1.52      tidyr_1.3.2     dplyr_1.2.1    
##  [5] ggplot2_4.0.3   FinTS_0.4-9     tseries_0.10-63 forecast_9.0.2 
##  [9] quantmod_0.4.29 TTR_0.24.4      xts_0.14.3      zoo_1.9-1      
## 
## loaded via a namespace (and not attached):
##  [1] sass_0.4.10        generics_0.1.4     lattice_0.23-1     digest_0.6.39     
##  [5] magrittr_2.0.5     evaluate_1.0.5     grid_4.6.2         RColorBrewer_1.1-3
##  [9] fastmap_1.2.0      jsonlite_2.0.0     purrr_1.2.2        scales_1.4.0      
## [13] jquerylib_0.1.4    cli_3.6.6          rlang_1.3.0        withr_3.0.3       
## [17] cachem_1.1.0       yaml_2.3.12        tools_4.6.2        parallel_4.6.2    
## [21] colorspace_2.1-4   curl_8.1.0         vctrs_0.7.3        R6_2.6.1          
## [25] lifecycle_1.0.5    pkgconfig_2.0.3    urca_1.3-4         pillar_1.11.1     
## [29] bslib_0.12.0       gtable_0.3.6       glue_1.8.1         Rcpp_1.1.2        
## [33] xfun_0.62          tibble_3.3.1       tidyselect_1.2.1   rstudioapi_0.19.0 
## [37] farver_2.1.2       htmltools_0.5.9    nlme_3.1-171       labeling_0.4.3    
## [41] rmarkdown_2.32     timeDate_4052.112  fracdiff_1.5-4     compiler_4.6.2    
## [45] S7_0.2.2           quadprog_1.5-8