Modelo ARIMAX
ARIMAX añade regresores externos (exógenos) al marco ARIMA. Es el modelo natural cuando la serie de tiempo está influida no solo por sus propios valores pasados, sino también por factores externos observables como el precio, la temperatura o el gasto en publicidad.
¿Por qué variables exógenas?
Los modelos ARIMA puros explotan únicamente la estructura de autocorrelación de la serie. Muchas series reales también están condicionadas por factores externos:
- La demanda de electricidad depende de la temperatura.
- Las ventas minoristas dependen de las promociones de precio y los festivos.
- El tráfico web depende del gasto en publicidad.
- Las reservas aéreas dependen del precio del combustible y los indicadores económicos.
Incluir estas variables como regresores puede mejorar sustancialmente la precisión de las predicciones cuando sus valores futuros son conocidos o pueden predecirse de forma independiente.
Dos modelos relacionados pero distintos
Existen dos modelos que se denominan habitualmente ARIMAX, y son matemáticamente diferentes:
Modelo 1: ARIMAX (modelo exógeno verdadero)
Las variables exógenas \(x_t\) entran directamente en la ecuación diferenciada:
\[\Phi(L)(1-L)^d y_t = \beta x_t + \Theta(L)\varepsilon_t\]
Los polinomios AR y MA operan sobre \(y_t\) diferenciada. El regresor \(x_t\) no se diferencia. Es un modelo restringido: asume que \(x_t\) es estrictamente exógena y no retroalimenta \(y_t\).
Modelo 2: Regresión con errores ARIMA (recomendado)
La regresión ocurre primero y el modelo ARIMA se aplica a los residuos:
\[y_t = \beta x_t + \eta_t, \qquad \Phi(L)(1-L)^d\eta_t = \Theta(L)\varepsilon_t\]
Aquí \(\eta_t\) sigue un proceso ARIMA. El regresor entra en la serie sin diferenciar y la diferenciación se aplica solo al proceso de error. Esta es la formulación que usa forecast::auto.arima() con xreg.
⚠️ ARIMAX y regresión con errores ARIMA no son el mismo modelo
La diferencia clave: en el Modelo 1 el operador de diferenciación se aplica a \(\beta x_t y_t\), lo que implica que \(x_t\) también se diferencia implícitamente. En el Modelo 2, \(x_t\) entra en la ecuación de niveles y solo los errores se diferencian.
En la práctica, el Modelo 2 (regresión con errores ARIMA) es casi siempre preferido porque:
- El coeficiente \(\beta\) tiene una interpretación directa como el efecto de \(x_t\) sobre \(y_t\) en niveles.
- Gestiona la no estacionariedad de \(y_t\) sin requerir diferenciar \(x_t\).
- Es lo que
Arima(y, xreg = x)yauto.arima(y, xreg = x)ajustan realmente en R.
Cuando en la práctica aplicada se habla de ARIMAX, normalmente se refieren al Modelo 2.
Ejemplo: demanda eléctrica y temperatura
La demanda de electricidad está fuertemente condicionada por la temperatura (efectos de calefacción y refrigeración). Modelamos la demanda diaria máxima como función de la temperatura media diaria, con errores ARIMA que capturan la autocorrelación residual.

La relación en forma de U (demanda de refrigeración a temperaturas altas, demanda de calefacción a bajas) se captura incluyendo tanto \(\text{temp}\) como \(\text{temp}^2\) como regresores. El componente ARIMA gestiona la autocorrelación semanal residual.
Predicción con ARIMAX
Para predecir \(h\) pasos adelante, deben proporcionarse los valores futuros de las variables exógenas:
# Escenarios de temperatura futura
temp_future <- c(22, 24, 25, 26, 28, 27, 23) # próximos 7 días
xreg_future <- cbind(temp = temp_future,
temp2 = temp_future^2)
forecast(fit_x, xreg = xreg_future, h = 7)
Esta es la restricción práctica clave del ARIMAX: la predicción es condicional a los valores futuros del regresor. Si el regresor es en sí mismo incierto (p. ej., una previsión de temperatura), la incertidumbre sobre \(x_t\) debe propagarse a los intervalos de predicción.

Los dos escenarios producen predicciones de demanda muy diferentes, lo que ilustra el valor de incorporar la temperatura como regresor. Un ARIMA puro produciría una única predicción sin esta estructura condicional.
¿Cuándo usar ARIMAX?
| Situación | Modelo recomendado |
|---|---|
| \(y_t\) depende de \(x_t\) externo conocido | ARIMAX (regresión con errores ARIMA) |
| \(y_t\) y \(x_t\) se influyen mutuamente | VAR (vectorautorregresión) |
| Solo autocorrelación, sin variables externas | ARIMA |
| Estacionalidad + factores externos | SARIMAX (ARIMAX estacional) |
| Relación no lineal con \(x_t\) | Incluir \(x_t^2\), interacciones o modelos de ML |
💡 ARIMAX en R
library(forecast)
# Ajustar regresión con errores ARIMA
fit <- auto.arima(y, xreg = x_matrix)
# Especificación manual
Arima(y, order = c(1,1,1), xreg = x_matrix)
# Predicción (hay que proporcionar los valores futuros de xreg)
forecast(fit, xreg = x_future, h = nrow(x_future))
# Verificar residuos como de costumbre
checkresiduals(fit)
El argumento xreg acepta una matriz de regresores. Cada columna es un regresor. R ajusta el Modelo 2 (regresión con errores ARIMA), no la formulación ARIMAX pura.