¿Qué es el modelo ARIMA?

Un modelo ARIMA (Autoregressive Integrated Moving Average) es una herramienta estadística utilizada para analizar y predecir series de tiempo. En términos simples, es como una “bola de cristal matemática” que usa datos pasados para estimar valores futuros, especialmente útil en finanzas para preveer precios, ventas o ingresos.

Desglose del nombre ARIMA 1. Autoregressive o autorregresivo (AR) → Usa valores pasados para predecir el futuro 2. Integrated (I) → Ajusta tendencias en los datos para hacerlos estacionarios (sin patrones cambiantes en el tiempo). 3.MAving Average o media móvil (MA)- → Suaviza fluctuaciones aleatorias a partir de errores pasados.

ARIMA combina estos tres elementos para crear una predicción más precisa.

Metodología Box-Jenkins

La metodología Box-Jenkins es un enfoque sistemático para construir modelos ARIMA con el objetivo de analizar y pronosticar series de tiempo. Fue desarrollada por George Box y Gwilym Jenkins y se basa en cuatro etapas clave:

1️⃣ Identificación 2️⃣ Estimación 3️⃣ Validación 4️⃣ Pronóstico

Se usa especialmente cuando se quiere encontrar el modelo ARIMA más adecuado para una serie de tiempo.

Paso 1. Idntificación del Modelo

Análisis exploratorio de la variable o extracción de señales Antes de ajustar un modelo ARIMA, es necesario entender la estructura de la serie de tiempo.

  1. Verificar estacionariedad (media y varianza constantes en el tiempo) 2. Diferenciar los datos por si hay una tendencia para hacer los datos estacionarios 3. Examinar los gráficos ACF y PACF para determinar los parámetro p y q
Min Max Media Mediana DesviacionEstandar CoefVar
78.6 775 252.7 205.4 165 0.653

La variable tiene un precio promedio de 252 USD en 20 años de historia, pero con una mediana de 205, lo que sugiere que la distribución podría estar sesgada a la derecha, es decir, hay algunos valores muy altos que elevan el promedio. La desviación estándar es alta indicando que los datos han fluctuado significativamente, lo cuál se alinea cuando vemos la gran diferencia entre mín y máx y un coeficiente de variación alto del 65.3%.

Extracción de señales

*Muchas series de tiempo son una combinación de varias influencias. Es por eso que, separar la tendencia, la estacionalidad y los componentes aleatorios permite entender mejor qué está impulsando los cambios en la serie.

Los modelos de pronóstico funcionan mejor cuando las señales subyacentes están bien definidas. Por ejemplo, si eliminamos la estacionalidad de una serie financiera, los modelos predictivos pueden enfocarse en la tendencia real y reducir errores. *Detectar cambios inesperados en la serie es más fácil cuando se eliminan componentes predecibles. Ejemplo: Si hay una caída abrupta en la variable podemos verificar si es una anomalía (ruido) o un cambio estructural en la economía.

En conclusión, la descomposición de series de tiempo permite comprender mejor los datos, mejorar predicciones y tomar decisiones más estratégicas. Es una herramienta clave en la analítica de negocios, especialmente en entornos donde las fluctuaciones en los datos pueden afectar inversiones, políticas económicas y estrategias empresariales.

Extracción señales variable 1

La acción muestra un crecimiento en el largo plazo, evidenciado por la tendencia positiva. Hay patrones estacionales claros, sin embargo no son altos, indicando que el efecto por estacionalidad es bajo. Existen movimientos aleatorios en el residuo, que se hacen más fuertes después de 2020, representando volatilidad debido a eventos inesperados como pandemia que trajo cambios en el mercado y eventos internos de la empresa.

Después de la descomposición temporal, se extrae la variable ajustada por estacionalidad para graficarla junto con la serie original:

Se crea la variabl1 ajustada por estacionalidad

Gráfico serie original VS ajustada Variable 1

En esta gráfica se confirma que la acción tiene un efecto por estacionalidad muy bajo, algo común en variables de activos finacieros debido a la naturaleza de los mercados de capitales.

Ahora graficamos serie original vs tendencia

  • La extracción de la tendencia permite centrarse en los cambios estructurales de la serie.

  • Analizar la tendencia ayuda a prever escenarios futuros y anticipar posibles crisis o oportunidades en el sector o variable de análisis

Primero se debe obtener la tendencia de cada variable y luego graficarla

Tendencia Variable 1

Se aprecia una tendencia alcista a largo plazo que no parece dar indicios de cambiar pronto.

Ahora calculamos la tasa de crecimiento de la serie original vs tendencia:

Tasa de crecimiento de la serie de tendencia y original para la variable 1

## [1] 228
## [1] 228
## [1] 228

Gráfico variable original y tendencia variable 1: tasa de crecimiento anual

La tendencia de crecimiento anual intermensual de la acción de Berkshire Hathaway se ha mantenido, mayormente, por encima del 0%, aunque con ciclos de menor crecimiento. El peor desempeño se registró en 2009, como consecuencia de los efectos rezagados de la crisis subprime. Sin embargo, la acción ha mostrado patrones de crecimiento en ciclos de aproximadamente 3 a 4 años.

El punto máximo de crecimiento se alcanzó en agosto de 2021, con un 37%, impulsado por la recuperación tras la pandemia. Posteriormente, en 2022, el crecimiento se desaceleró, pero volvió a repuntar en julio de 2024, alcanzando un 26%. No obstante, este último ciclo parece haber finalizado, y la tendencia sugiere una nueva fase de desaceleración en el corto plazo.

Modelo ARIMA

Un modelo ARIMA (Autoregressive Integrated Moving Average) es una herramienta estadística utilizada para analizar y predecir series de tiempo. En términos simples, es como una “bola de cristal matemática” que usa datos pasados para estimar valores futuros, especialmente útil en finanzas para preveer precios, ventas o ingresos.

A continuación se aplica el test ADF para validar estacionariedad en el conjunto de entrenamiento de la variable 1, que es la elegida para pronosticar:

## 
##  Augmented Dickey-Fuller Test
## 
## data:  train_ts
## Dickey-Fuller = 0.95602, Lag order = 6, p-value = 0.99
## alternative hypothesis: stationary

El test ADF en la variable 1 arrojó un p-value igual a 0.99, este valor es mayor a 0.05, por tanto la serie es no estacionaria. De ese modo se debe ejecutar el código siguiente para diferenciar una vez la variable 1 y luego volver a aplicar el test ADF a esa serie diferenciada una vez:

Diferenciación en niveles variable 1

A continuación, se realiza el gráfico de la serie original y diferenciada (una vez) de la variable 1 para ver graficamente el cambio o ajuste:

Ejemplo Diferenciación en logaritmo

Cuando una serie de tiempo tiene una creciente varianza (lo que significa que la amplitud de las fluctuaciones aumenta con el tiempo), aplicar un logaritmo puede ayudar a estabilizar esta varianza. Muchas series económicas o financieras, como el precio de acciones o el Producto Interno Bruto (PIB), tienden a mostrar crecimiento exponencial o crecimiento en porcentaje (por ejemplo, tasas de crecimiento de doble dígito).

En conclusión, la aplicación de logaritmos en series de tiempo se realiza principalmente para lograr que la serie sea más estable, lineal y estacionaria. Esta transformación es relevante porque permite modelar mejor las series que siguen un crecimiento exponencial y facilita la aplicación de técnicas estadísticas que requieren estacionariedad.

A continuación se aplica la diferenciación logarítimica y la varible u objeto ahora se llama train_diff_log:

Ahora probamos estacionariedad en la serie diferenciada ( en nivel y logaritmo)

## 
##  Augmented Dickey-Fuller Test
## 
## data:  train_diff
## Dickey-Fuller = -6.6123, Lag order = 6, p-value = 0.01
## alternative hypothesis: stationary
## 
##  Augmented Dickey-Fuller Test
## 
## data:  train_diff_log
## Dickey-Fuller = -5.7008, Lag order = 6, p-value = 0.01
## alternative hypothesis: stationary

En el test ADF se muestra que el valor que puede tomar d=1:

El p-value ya es menor a 0.05 con una primera diferencia en ambos casos: niveles o con logaritmo natural. Por tanto el valor que puede tomar d es igual a 1

Identificación manual de p y q

¿Qué hacen estos gráficos?

ACF (Autocorrelation Function)

Muestra la correlación de la serie con sus rezagos.

Ayuda a determinar el parámetro q en un modelo ARIMA(p, d, q).

PACF (Partial Autocorrelation Function)

Muestra la correlación parcial entre la serie y un rezago específico, eliminando el efecto de rezagos intermedios.

Ayuda a determinar el parámetro p en un modelo ARIMA(p, d, q).

Recordemos El eje X representa los rezagos (lags). El eje Y muestra la autocorrelación parcial en cada rezago. Las líneas azules punteadas son los intervalos de confianza (aproximadamente 95%). Si una barra sobrepasa estos límites, indica una autocorrelación significativa. Si las barras caen dentro de los límites, no son significativamente diferentes de cero

En el código siguiente se crean los correlogramas para determinar los posibles valores que puedeo tomar el parámetro p y q:

Interpretación correlogramas

Se puede observar que los valores que podrian tomar p y q serian:

p=14 p=7 q=14 q=7 (P optimo=14) (q óptimo=7)

El modelo óptimo para esta variable seria (14,1,7)

Paso 2. Estimación manual del modelo

AIC y BIC: Se usan para comparar modelos; cuanto más bajos, mejor.

Métricas de evaluación

Estimación del modelo identificado (14,1,7)

## Series: train_ts 
## ARIMA(14,1,7) 
## 
## Coefficients:
##          ar1      ar2     ar3      ar4     ar5      ar6     ar7     ar8     ar9
##       0.1011  -0.2295  0.0701  -0.1634  0.2260  -0.1702  0.8513  0.2318  0.1504
## s.e.  0.0965   0.0953  0.0909   0.0831  0.0974   0.0844  0.0860  0.0717  0.0763
##          ar10     ar11    ar12    ar13     ar14      ma1     ma2      ma3
##       -0.0273  -0.0099  0.0731  0.0827  -0.2069  -0.2664  0.2905  -0.0024
## s.e.   0.0806   0.0761  0.0760  0.0806   0.0811   0.0795  0.0768   0.0776
##          ma4      ma5     ma6      ma7
##       0.1366  -0.3756  0.2657  -0.8940
## s.e.  0.0585   0.0854  0.0634   0.0834
## 
## sigma^2 = 200.8:  log likelihood = -955.64
## AIC=1955.28   AICc=1960.03   BIC=2031.48
## 
## Training set error measures:
##                    ME     RMSE      MAE       MPE    MAPE      MASE
## Training set 1.306659 13.49696 9.150558 0.3050869 3.75307 0.2369126
##                      ACF1
## Training set 0.0001933458

Mean Absolute Error (MAE)

Representa el error absoluto promedio entre las predicciones del modelo y los valores reales.

Root Mean Squared Error (RMSE)

Similar al MAE, pero da más peso a los errores grandes, porque eleva las diferencias al cuadrado antes de promediarlas.

Comparación con MAE: El RMSE es ligeramente mayor que el MAE, es posible que haya algunos errores grandes que estén influyendo más en el RMSE, pero no son muy significativos.

Mean Absolute Percentage Error (MAPE) = 3.75%

Expresa el error en términos relativos, como porcentaje del valor real.

Interpretación: En promedio, el modelo se equivoca en un 3,75% al predecir el precio de la acción de Berkshire Hathaway

Regla general: MAPE < 10% → Muy buen modelo ✅ 10%-20% → Modelo aceptable 👍 20%-50% → Modelo pobre ⚠️ 50% → Modelo muy malo ❌

En este caso, un MAPE de 3.89% sugiere un muy buen modelo para pronostico.

Significancia de coeficientes

## 
## z test of coefficients:
## 
##        Estimate Std. Error  z value  Pr(>|z|)    
## ar1   0.1011218  0.0965199   1.0477 0.2947865    
## ar2  -0.2295234  0.0953395  -2.4074 0.0160651 *  
## ar3   0.0700697  0.0909074   0.7708 0.4408363    
## ar4  -0.1633998  0.0830665  -1.9671 0.0491721 *  
## ar5   0.2260343  0.0974264   2.3201 0.0203381 *  
## ar6  -0.1702053  0.0844021  -2.0166 0.0437372 *  
## ar7   0.8513000  0.0860136   9.8973 < 2.2e-16 ***
## ar8   0.2318292  0.0716624   3.2350 0.0012163 ** 
## ar9   0.1504196  0.0762783   1.9720 0.0486114 *  
## ar10 -0.0272739  0.0805888  -0.3384 0.7350369    
## ar11 -0.0099084  0.0760504  -0.1303 0.8963396    
## ar12  0.0730695  0.0759656   0.9619 0.3361117    
## ar13  0.0826766  0.0806103   1.0256 0.3050642    
## ar14 -0.2068581  0.0810536  -2.5521 0.0107071 *  
## ma1  -0.2664108  0.0795227  -3.3501 0.0008078 ***
## ma2   0.2904983  0.0767818   3.7834 0.0001547 ***
## ma3  -0.0023854  0.0776421  -0.0307 0.9754907    
## ma4   0.1365597  0.0584818   2.3351 0.0195391 *  
## ma5  -0.3756000  0.0854410  -4.3960 1.103e-05 ***
## ma6   0.2657429  0.0634190   4.1903 2.786e-05 ***
## ma7  -0.8940297  0.0833684 -10.7238 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Interpretación significancia coeficientes

ar7 y ma1, ma2, ma5, ma6 y ma7, son altamente significativos (***), lo que significa que estos coeficientes tiene un impacto importante en el modelo. Como ambos componentes son significativos, entonces continuo con la validación de residuos del modelo.

Paso 3. Validación de residuos del modelo estimado manual

La validación de residuos es crucial para determinar si el modelo ARIMA es adecuado o si necesita mejoras. El objetivo es verificar que los residuos (errores de predicción) se comporten como ruido blanco, es decir, sin patrones detectables.

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(14,1,7)
## Q* = 13.599, df = 3, p-value = 0.003505
## 
## Model df: 21.   Total lags used: 24

1. Serie de residuos (gráfico superior)

Muestra cómo se comportan los errores a lo largo del tiempo. Idealmente, deberían oscilar alrededor de cero sin tendencias evidentes ni grandes acumulaciones de error. Problema posible: Se observan picos alrededor de 2022, lo que podría indicar cambios estructurales en los datos (como efectos de los malos resultados de la compañía ese año que estuvieron muy ligados al pobre desempeño de la bolsa americana en 2022 debido a los rezagos de la pandemia).

Función de Autocorrelación (gráfico inferior izquierdo, ACF de residuos)

Si el modelo es adecuado, los residuos no deben mostrar correlaciones significativas en el tiempo.

Interpretación: La mayoría de las barras están dentro de las líneas azules (intervalos de confianza). Sin embargo, algunos rezagos parecen salir del rango, lo que sugiere que aún puede haber estructura no capturada en los datos. Esto indica que el modelo podría mejorarse pero es un modelo aceptable.

Histograma de residuos con ajuste normal (gráfico inferior derecho)

Sirve para verificar si los errores siguen una distribución normal, lo cual es un supuesto clave en ARIMA. Interpretación: La curva roja representa la distribución normal teórica. Los residuos se acercan a la normalidad, pero hay algunos valores extremos (colas más gruesas de lo esperado). Esto indica que puede haber eventos atípicos o datos no bien explicados por el modelo (en este caso pandemia y otros fundamentales de EEUU).

Conclusión y acciones recomendadas

✅ El modelo ARIMA (14, 1, 7) parece razonablemente bueno, pero tiene algunas señales que podría mejorarse

⚠️ Posibles mejoras:

  • Revisar la estructura del modelo: Se pueden probar otros órdenes ARIMA o incluso modelos más complejos como SARIMA o modelos con variables exógenas (ARIMAX).

  • Manejo de valores atípicos: Considerar incluir un término de intervención si eventos como la pandemia afectaron la serie.

  • Transformación de datos: Si los residuos no son normales, una transformación logarítmica o Box-Cox puede ayudar.

Recordar: El supuesto de normalidad significa que los errores o residuos de un modelo deben seguir una distribución normal (o “campana de Gauss”). Si los errores son normales, podemos hacer predicciones más confiables y usar ciertas pruebas estadísticas que asumen esta propiedad.

Paso 4. Pronóstico (modelo manual)

El modelo sigue la tendencia general, pero tiene un sesgo de sobreestimación.

Si la serie tiene patrones estacionales fuertes y no están bien capturados, el modelo puede fallar en prever las fluctuaciones. En ese caso se puede mejorar el modelo, al trabajar desde el inicio con la serie ajustada por estacionalidad en caso de que se detecte un componente estacional fuerte.

Pronóstico en el test de prueba (ene, feb y mar 2025) y gráfico

Métricas de evaluación del modelo manual dentro del periodo de prueba

## MAE Manual:  47.40484
## RMSE Manual:  52.02847

MAE (Mean Absolute Error)

Indica el error promedio en unidades de la variable, es decir, precio de acción (en dólares) RMSE (Root Mean Squared Error)

Penaliza más los errores grandes debido a la elevación al cuadrado antes de calcular la raíz.

A continuación se calcula la Tabla de pronóstico modelo manual VS los datos reales u observado en ene, feb y mar 2025

##     Tiempo Observado Pronosticado
## 1 2025.000   702.614     671.5615
## 2 2025.083   775.000     697.3042
## 3 2025.167   744.708     711.2418

Ahora pronosticamos fuera del periodo de análisis: Abril 2025

Es decir, le sumamos al periodo de prueba (ene,feb,mar 2025) una observación más (abril 2025). Es decir, se estan pronosticando 4 observaciones o meses:

##     Tiempo Pronostico
## 1 2025.000   671.5615
## 2 2025.083   697.3042
## 3 2025.167   711.2418
## 4 2025.250   720.5989
## [1] "Pronóstico para abril 2025: 2025.25 = 720.59893211233"

Otra forma para calcular un valor futuro (fuera de muestra)-Modelo manual, es decir, en caso de que no se haga la división inicial de conjunto de entrenamiento y prueba:

Si no hay conjunto de prueba o test y solo quieres el siguiente punto u observación, el código a usar seria algo asi:

## [1] "Pronóstico para abr 2025: 671.561495345975"

Modelo ARIMA automático

Usa la función auto.arima() de forecast en R para seleccionar automáticamente los mejores parámetros (p,d,q).

✅ Ventajas:

✔ Optimización automática: Encuentra los valores óptimos de ARIMA sin intervención manual. ✔ Ahorra tiempo: Útil cuando hay muchas series a modelar. ✔ Evita sesgo humano: Reduce el riesgo de elegir un modelo incorrecto por falta de experiencia. ✔ Incluye corrección por estacionalidad si se usa con seasonal = TRUE. ✔ Suele funcionar bien en la mayoría de los casos, ya que usa criterios como AIC/BIC para optimizar.

❌ Desventajas: ❌ Puede no ser el mejor modelo posible, ya que depende del criterio de selección. ❌ Menos interpretabilidad: No siempre es claro por qué eligió ciertos parámetros. ❌ Puede ignorar conocimiento experto sobre la serie o factores externos.

Identificación automática del modelo ARIMA

El modelo automático identificado es (0,2,2). Si se compara el AIC o BIC de este modelo frente el modelo manual (14,1,7), se obtiene un valor mucho más bajo el BIC en este modelo automático y un AIC muy similar. Probablemente pudiera ser un buen modelo para pronosticar la variable precios de la acción BRKa

## Series: train_ts 
## ARIMA(0,2,2) 
## 
## Coefficients:
##           ma1     ma2
##       -1.1613  0.1794
## s.e.   0.0662  0.0660
## 
## sigma^2 = 234.5:  log likelihood = -975.47
## AIC=1956.94   AICc=1957.04   BIC=1967.32
## 
## Training set error measures:
##                    ME     RMSE      MAE       MPE     MAPE      MASE
## Training set 1.154322 15.18328 10.16417 0.2136382 3.877487 0.2631555
##                     ACF1
## Training set -0.01041522
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value  Pr(>|z|)    
## ma1 -1.161302   0.066192 -17.545 < 2.2e-16 ***
## ma2  0.179444   0.066020   2.718  0.006567 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Series: train_ts 
## ARIMA(0,2,2) 
## 
## Coefficients:
##           ma1     ma2
##       -1.1613  0.1794
## s.e.   0.0662  0.0660
## 
## sigma^2 = 234.5:  log likelihood = -975.47
## AIC=1956.94   AICc=1957.04   BIC=1967.32
## 
## Training set error measures:
##                    ME     RMSE      MAE       MPE     MAPE      MASE
## Training set 1.154322 15.18328 10.16417 0.2136382 3.877487 0.2631555
##                     ACF1
## Training set -0.01041522

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,2,2)
## Q* = 36.928, df = 22, p-value = 0.02409
## 
## Model df: 2.   Total lags used: 24

Pronóstico modelo Arima (0,2,2)

## MAE Manual:  40.92667
## RMSE Manual:  49.18755

El modelo automático (0,2,2) parece pronosticar mejor dentro de prueba, ya que las métricas de evaluación MAE y RMSE son menores en este modelo. Sin embargo el modelo anterior captura mejor los movimientos bruscos en el precio.

##     Tiempo Observado Pronosticado
## 1 2025.000   702.614     694.2298
## 2 2025.083   775.000     699.8473
## 3 2025.167   744.708     705.4648

Ahora pronosticamos fuera del periodo de análisis

Le sumamos al periodo de prueba una observación más. Es decir, se estan pronosticando 4 observaciones o trimestres.

##     Tiempo Pronostico
## 1 2025.000   694.2298
## 2 2025.083   699.8473
## 3 2025.167   705.4648
## 4 2025.250   711.0823
## [1] "Pronóstico para enero 2025: 2025.25 = 711.082320775763"

Otra forma para calcular un valor futuro (fuera de muestra)

## [1] "Pronóstico para octubre 2024: 694.229829845532"

Modelo SARIMA automático

Este modelo podria ser una solución o mejora al modelo arima tradicional ya que recoge el efecto estacional de las variables, es recomendable por tanto para datos que si tienen un componente estacional fuerte.

Un SARIMA (Seasonal ARIMA) es un modelo que combina:

✅ Un modelo ARIMA tradicional para capturar relaciones entre valores pasados y errores. ✅ Un componente estacional, útil cuando los datos muestran patrones repetitivos en el tiempo (por ejemplo, ventas trimestrales, datos mensuales de temperatura, etc.).

Básicamente, es como un ARIMA mejorado que puede manejar ciclos estacionales.

## Series: train_ts 
## ARIMA(0,2,2) 
## 
## Coefficients:
##           ma1     ma2
##       -1.1613  0.1794
## s.e.   0.0662  0.0660
## 
## sigma^2 = 234.5:  log likelihood = -975.47
## AIC=1956.94   AICc=1957.04   BIC=1967.32

Vemos que en este caso resultan los mismos parámetros que en el modelo automático sin estacionalidad, por lo que el pronóstico será el mismo que el modelo anterior.

Conclusión

Ningún modelo logra predecir con precisión el precio de la acción de Berkshire Hathaway. Aunque los modelos cumplen con las métricas estadísticas de evaluación, sus pronósticos presentan desviaciones significativas respecto al valor real. Por ejemplo, en febrero, ambos modelos registraron errores superiores a 70 dólares. En este contexto, un modelo con un error medio (MAE) de 40 dólares resulta ineficaz para aplicaciones en el mundo real.