1 Activo y objetivo

Empresa: JPMorgan Chase & Co. (NYSE: JPM), institución de servicios financieros.

Activo estudiado: acción ordinaria JPM. Mercado: Bolsa de Nueva York. Moneda: dólares estadounidenses.

Período de datos: 02/01/2019 a 30/10/2026.

Corte para entrenamiento: 07/04/2025.

Pregunta de investigación: ¿Qué tan bien permiten ARIMA, ARIMAX y SARIMAX describir el comportamiento de JPM y estimar sus precios futuros, comparados con los valores que realmente se observaron?

2 Contexto y datos

Los precios ajustados de JPM y SPY se descargaron desde Yahoo Finance mediante quantmod. La serie de JPM se dividió cronológicamente, sin aleatorizar las fechas. Se emplea SPY como variable explicativa rezagada un día de negociación en ARIMAX y SARIMAX.

JPMorgan trabaja en el sector financiero, por lo que para entender su acción también conviene mirar el contexto económico. Durante la pandemia de 2020 hubo mucha incertidumbre en los mercados; en 2022, los cambios en las tasas de interés fueron un tema importante para el negocio bancario; y el 1 de mayo de 2023 se anunció la operación por la cual JPMorgan adquirió gran parte de los activos y asumió ciertos pasivos de First Republic Bank (FDIC, 2023; JPMorgan Chase & Co., 2023). Estos hechos nos sirven para ubicar la historia de la empresa, pero no demuestran por sí solos que alguno haya causado un movimiento determinado del precio.

Lo que muestran los gráficos: En los precios ajustados, JPM pasó de US$ 80,07 a US$ 337,04 entre 02/01/2019 y 30/10/2026. Esto corresponde a un cambio de 320,91 % para todo el período. En los rendimientos vemos días con cambios mucho más fuertes que otros; el movimiento diario de mayor tamaño fue de 16,56 % en valor absoluto y se registró el 13/03/2020. Esos saltos ayudan a entender por qué mirar solo la línea de precios no es suficiente para evaluar un pronóstico.

3 Preparación y estacionariedad

Muestra y separación cronológica
Activo Inicio Fin Ultima_fecha_train N_train N_test Fuente
JPM 2019-01-02 2026-10-30 2025-04-07 1575 394 Yahoo Finance (precios ajustados)

Sobre la muestra: Usamos 1575 observaciones para probar y elegir modelos y dejamos las últimas 394 para evaluarlos. Mantener este orden es importante porque no sería correcto entrenar con precios que todavía no se conocían en la fecha del pronóstico.

ADF y KPSS estimados solamente en entrenamiento
Serie ADF_p KPSS_p
Log precio, train 0.4025 0.01
Primera diferencia del log, train 0.0100 0.10

Criterios para interpretar: en ADF la hipótesis nula es presencia de raíz unitaria; en KPSS la hipótesis nula es estacionariedad. Se analizan conjuntamente y no como pruebas infalibles.

Nuestra lectura: Para el logaritmo del precio, el ADF dio un valor p de 0,4025, por lo que no se puede rechazar la idea de que tenga raíz unitaria. Por su parte, el KPSS dio 0,0100: hay evidencia en contra de la estacionariedad. Para la primera diferencia del logaritmo, el ADF dio un valor p de 0,0100, por lo que se rechaza la idea de que tenga raíz unitaria. Por su parte, el KPSS dio 0,1000: no se encontró evidencia suficiente para descartar la estacionariedad. En la ACF de las diferencias encontramos 10 rezagos que sobrepasan aproximadamente las bandas de referencia entre los primeros 20. Esto da una idea inicial de la dependencia entre días, aunque no basta por sí solo para elegir un modelo.

4 Modelos econométricos considerados

4.1 ARIMA

ARIMA\((p,d,q)\) combina componentes autorregresivos (\(p\)), diferenciación (\(d\)) y media móvil (\(q\)). Una representación es:

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

Donde \(L\) es el operador de rezago y \(\varepsilon_t\) representa el error. Para precios en logaritmos se compararon de forma manual modelos con \(d=1\). Un ARIMA(0,1,0) sin deriva funciona como referencia de paseo aleatorio.

4.2 ARIMAX

ARIMAX incorpora información externa al modelo. Aquí se utiliza el rendimiento de SPY de la sesión bursátil anterior:

\[r_{JPM,t}=\beta_0+\beta_1 r_{SPY,t-1}+u_t,\]

con errores \(u_t\) que pueden seguir un proceso ARMA. El coeficiente de SPY representa una relación estimada, no una demostración causal. Para pronosticar hay que suministrar valores futuros para la variable explicativa.

4.3 SARIMAX

SARIMAX agrega componentes estacionales y una variable externa. La notación es ARIMA\((p,d,q)(P,D,Q)_s\) con regresores. Se probaron componentes estacionales AR y MA con \(s=5\) sesiones; esto es una aproximación de semana bursátil y no equivale a una semana calendario exacta.

5 Estimación manual y selección en entrenamiento

Candidatos ARIMA sobre logaritmos del precio
Modelo AIC BIC Ljung-Box (valor p)
ARIMA(0,1,0) sin deriva -7957.780 -7952.418 p < 0,001
ARIMA(0,1,0) con deriva -7957.340 -7946.617 p < 0,001
ARIMA(1,1,0) -7974.619 -7963.896 p < 0,001
ARIMA(0,1,1) -7971.480 -7960.757 p < 0,001
ARIMA y ARIMAX sobre rendimientos (%)
Modelo AIC BIC Ljung-Box (valor p)
ARIMA(0,0,0) rendimientos 6539.736 6550.459 p < 0,001
ARIMAX(0,0,0) con SPY rezagado 6523.636 6539.720 p < 0,001
ARIMAX(1,0,0) con SPY rezagado 6522.703 6544.148 p < 0,001
ARIMAX(0,0,1) con SPY rezagado 6523.649 6545.095 p < 0,001
Candidatos SARIMAX sobre rendimientos (%)
Modelo AIC BIC Ljung-Box (valor p)
SARIMAX estacional AR(1) s=5 6517.813 6539.258 p < 0,001
SARIMAX estacional MA(1) s=5 6517.173 6538.618 p < 0,001
Comparación por BIC: solo modelos de rendimientos, solo TRAIN
Modelo AIC BIC Ljung-Box (valor p) Familia
SARIMAX estacional MA(1) s=5 6517.173 6538.618 p < 0,001 SARIMAX
SARIMAX estacional AR(1) s=5 6517.813 6539.258 p < 0,001 SARIMAX
ARIMAX(0,0,0) con SPY rezagado 6523.636 6539.720 p < 0,001 ARIMA/ARIMAX
ARIMAX(1,0,0) con SPY rezagado 6522.703 6544.148 p < 0,001 ARIMA/ARIMAX
ARIMAX(0,0,1) con SPY rezagado 6523.649 6545.095 p < 0,001 ARIMA/ARIMAX
ARIMA(0,0,0) rendimientos 6539.736 6550.459 p < 0,001 ARIMA/ARIMAX

Candidato elegido por BIC en entrenamiento: SARIMAX estacional MA(1) s=5.

Interpretación de los ARIMA: Probamos cuatro opciones sin usar una selección automática. Entre estos ARIMA sobre log-precios, el menor BIC fue el de ARIMA(1,1,0), y el AIC también señaló ese mismo modelo. Los dos criterios sirven para comparar ajustes, pero BIC castiga más los modelos que agregan parámetros. Por eso no nos fijamos solo en qué tan compleja es cada alternativa.

Interpretación de los ARIMAX: En ARIMAX quisimos probar si el comportamiento de SPY del día anterior aporta información sobre JPM. El coeficiente estimado de ese rezago fue -0,1637. Al comparar el modelo sencillo de rendimientos sin SPY (BIC 6.550,46) con el que agrega SPY (BIC 6.539,72), el segundo quedó mejor según BIC. Esto habla de una relación estadística en el entrenamiento, no significa que SPY cause directamente los cambios de JPM.

Interpretación de los SARIMAX: Para comprobar si servía agregar un componente cada cinco sesiones, estimamos una versión AR estacional y otra MA estacional. Entre esas dos alternativas, el menor BIC fue el de SARIMAX estacional MA(1) s=5. Al poner todos los candidatos de rendimientos en la misma comparación, quedó primero SARIMAX estacional MA(1) s=5. La diferencia de BIC frente al ARIMAX(0,0,0) con SPY fue de 1,10 puntos. Es una diferencia pequeña, así que no es una prueba clara de que el componente estacional sea necesario.

Selección para evaluar: Con los datos de entrenamiento, el modelo con menor BIC fue SARIMAX estacional MA(1) s=5 (BIC = 6.538,62). Lo dejamos establecido antes de revisar el conjunto de prueba. Esta comparación se hizo entre modelos que explican rendimientos porcentuales y utilizan la misma muestra, para no mezclar escalas de precios y retornos. Aunque el SARIMAX obtuvo el menor BIC, su ventaja frente al ARIMAX fue pequeña y por eso lo tomamos como candidato, no como una superioridad definitiva.

Advertencia metodológica: no se comparan AIC/BIC directamente entre modelos que usan log-precios y modelos que usan retornos porcentuales, porque las escalas y variables dependientes son diferentes.

6 Diagnóstico de residuos

Las tablas anteriores incluyen valores \(p\) de Ljung-Box (rezago 20), utilizado para evaluar si queda autocorrelación serial en los errores. Un valor \(p\) bajo puede indicar que quedan patrones sin explicar.

Lo que entendemos de la prueba: Para el modelo que elegimos con entrenamiento, Ljung-Box dio p < 0,001. Como es menor al 5 %, todavía hay señales de autocorrelación que el modelo no explicó bien. Esto se debe tener en cuenta al usarlo para pronosticar, ya que un BIC pequeño no garantiza que los errores se comporten como esperamos.

7 Evaluación de pronósticos fuera de muestra

Para evitar usar información futura en ARIMAX y SARIMAX, el primer valor del rezago SPY proviene del cierre de entrenamiento. En las sesiones siguientes se supone SPY = 0 % diario como escenario. No son los valores observados del mercado en test.

Errores de pronóstico sobre el 20 % final (test)
Modelo MAE MAPE MASE RMSE
ARIMA(0,1,0) sin deriva 94.221 30.385 60.068 99.085
ARIMA(0,1,0) con deriva 67.094 21.809 42.774 69.677
ARIMA(1,1,0) 94.622 30.519 60.324 99.467
ARIMA(0,1,1) 94.447 30.460 60.212 99.300
ARIMA(0,0,0) rendimientos 67.094 21.809 42.774 69.677
ARIMAX(0,0,0) con SPY rezagado 62.948 20.500 40.131 65.363
ARIMAX(1,0,0) con SPY rezagado 65.209 21.217 41.572 67.692
ARIMAX(0,0,1) con SPY rezagado 64.410 20.963 41.063 66.871
SARIMAX estacional AR(1) s=5 66.371 21.621 42.313 68.753
SARIMAX estacional MA(1) s=5 66.403 21.631 42.333 68.786

Comparación de resultados: Al comparar los precios estimados con los observados en el 20 % final, el menor MAE lo consiguió ARIMAX(0,0,0) con SPY rezagado con 62,95 dólares de error absoluto promedio. El menor RMSE lo tuvo ARIMAX(0,0,0) con SPY rezagado con 65,36. El modelo que habíamos elegido con BIC en entrenamiento (SARIMAX estacional MA(1) s=5) terminó con MAE de 66,40 y MAPE de 21,63 %. Como referencia, el ARIMA(0,1,0) sin deriva tuvo MAE de 94,22. En este caso, la elección hecha con entrenamiento no fue la que dio el menor MAE del test. Es una diferencia útil para distinguir entre ajustar un modelo a datos anteriores y pronosticar precios que todavía no se conocen.

Algo importante al leer el gráfico: cada modelo hizo sus estimaciones desde la misma fecha de corte. No se volvieron a ajustar los modelos cuando se iban conociendo los precios del conjunto de prueba. Por eso, si una curva se aparta bastante de la real, no necesariamente significa que se haya ejecutado mal el código; también puede ser que el modelo no haya anticipado un cambio en el mercado. El supuesto de rendimiento futuro de SPY igual a cero es solo un escenario, no una predicción comprobada del SPY.

8 Conclusiones, fuentes y reproducibilidad

Balance del ejercicio (para revisión del equipo): Al terminar el ejercicio, vemos que elegir el modelo no es solamente comparar una cifra de AIC o BIC. Primero revisamos si la serie necesita diferencias, después probamos opciones ARIMA, ARIMAX y SARIMAX y finalmente comprobamos qué pasó con los datos que dejamos aparte. Entre los modelos de rendimientos, SARIMAX estacional MA(1) s=5 quedó primero según BIC en entrenamiento; en la prueba, el menor MAE correspondió a ARIMAX(0,0,0) con SPY rezagado. Como los residuos del candidato elegido todavía muestran autocorrelación, sus resultados deben tomarse con precaución. Además, los pronósticos con SPY dependen de un supuesto sencillo sobre sus rendimientos futuros. Por eso consideramos los pronósticos como estimaciones que pueden equivocarse y no como precios seguros.

8.1 Referencias de consulta

Federal Deposit Insurance Corporation. (2023, 1 de mayo). First Republic Bank. https://www.fdic.gov/resources/resolutions/bank-failures/failed-bank-list/first-republic.html

JPMorgan Chase & Co. (2023, 1 de mayo). JPMorgan Chase acquires substantial majority of assets and assumes certain liabilities of First Republic Bank. https://www.jpmorganchase.com/ir/news/2023/jpmc-acquires-substantial-majority-of-assets-and-assumes-certain-liabilities-of-first-republic-bank

JPMorgan Chase & Co. (2026). Investor Relations. https://www.jpmorganchase.com/ir

Hyndman, R. J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (3.ª ed.). OTexts. https://otexts.com/fpp3/

8.2 Uso de herramientas y responsabilidad académica

Utilizamos herramientas de inteligencia artificial como apoyo para ordenar y optimizar el código en R y facilitar la compilación del informe en R Markdown. También nos sirvieron para preparar borradores de algunas explicaciones. La idea del trabajo, la selección del activo y la organización del análisis partieron de lo trabajado por nosotros en clase. Nos sirvio mucho para centrarnos en el analisis y guiar a la IA según la necesidad en cuanto al codigo.