Modelo ARIMAX
O ARIMAX adiciona regressores externos (exógenos) ao framework ARIMA. É o modelo natural quando a série temporal é determinada não apenas por seus próprios valores passados, mas também por fatores externos observáveis, como preço, temperatura ou gasto promocional.
Por que variáveis exógenas?
Modelos ARIMA puros exploram apenas a estrutura de autocorrelação da série. Muitas séries reais também são determinadas por fatores externos:
- A demanda de eletricidade depende da temperatura.
- As vendas no varejo dependem de promoções de preço e feriados.
- O tráfego de um site depende do gasto em publicidade.
- As reservas aéreas dependem dos preços de combustível e de indicadores econômicos.
Incluir essas variáveis como regressores pode melhorar drasticamente a precisão da previsão quando seus valores futuros são conhecidos ou podem ser previstos de forma independente.
Dois modelos relacionados, mas diferentes
Existem dois modelos comumente chamados de ARIMAX, e eles são matematicamente distintos:
Modelo 1: ARIMAX (modelo exógeno verdadeiro)
As variáveis exógenas \(x_t\) entram diretamente na equação diferenciada:
\[\Phi(L)(1-L)^d y_t = \beta x_t + \Theta(L)\varepsilon_t\]
Os polinômios AR e MA operam sobre \(y_t\) diferenciada. O regressor \(x_t\) não é diferenciado. Este é um modelo restrito: ele assume que \(x_t\) é estritamente exógeno e não retroalimenta \(y_t\).
Modelo 2: Regressão com erros ARIMA (recomendado)
A regressão acontece primeiro, e o modelo ARIMA é aplicado aos resíduos:
\[y_t = \beta x_t + \eta_t, \qquad \Phi(L)(1-L)^d\eta_t = \Theta(L)\varepsilon_t\]
Aqui \(\eta_t\) segue um processo ARIMA. O regressor entra na série não diferenciada, e a diferenciação se aplica apenas ao processo de erro. Essa é a formulação usada por forecast::auto.arima() com xreg.
⚠️ ARIMAX e regressão com erros ARIMA não são o mesmo modelo
A diferença-chave: no Modelo 1, o operador de diferenciação se aplica a \(\beta x_t y_t\), o que significa que \(x_t\) também é implicitamente diferenciado. No Modelo 2, \(x_t\) entra na equação de nível e apenas os erros são diferenciados.
Na prática, o Modelo 2 (regressão com erros ARIMA) é quase sempre o preferido porque:
- O coeficiente \(\beta\) tem uma interpretação direta como o efeito de \(x_t\) sobre \(y_t\) em níveis.
- Ele lida com a não estacionariedade de \(y_t\) sem exigir que \(x_t\) seja diferenciada.
- É o que
Arima(y, xreg = x)eauto.arima(y, xreg = x)de fato ajustam no R.
Quando se fala em ARIMAX no trabalho aplicado, geralmente se refere ao Modelo 2.
Exemplo: demanda de eletricidade e temperatura
A demanda de eletricidade em meia hora é fortemente influenciada pela temperatura (efeitos de aquecimento e refrigeração). Modelamos a demanda diária de pico como função da temperatura média diária, com erros ARIMA capturando a autocorrelação restante.

A relação em forma de U (demanda de refrigeração em temperaturas altas, demanda de aquecimento em temperaturas baixas) é capturada incluindo tanto \(\text{temp}\) quanto \(\text{temp}^2\) como regressores. O componente ARIMA lida com a autocorrelação semanal restante.
Previsão com ARIMAX
Para prever \(h\) passos adiante, valores futuros das variáveis exógenas devem ser fornecidos:
# Future temperature scenarios
temp_future <- c(22, 24, 25, 26, 28, 27, 23) # next 7 days
xreg_future <- cbind(temp = temp_future,
temp2 = temp_future^2)
forecast(fit_x, xreg = xreg_future, h = 7)
Essa é a restrição prática fundamental do ARIMAX: a previsão é condicional aos valores futuros do regressor. Se o próprio regressor é incerto (por exemplo, uma previsão de temperatura), a incerteza em \(x_t\) deve ser propagada para os intervalos de previsão.

Os dois cenários produzem previsões de demanda muito diferentes, ilustrando o valor de incorporar a temperatura como regressor. O ARIMA puro produziria uma única previsão sem essa estrutura condicional.
Quando usar o ARIMAX
| Situação | Modelo recomendado |
|---|---|
| \(y_t\) depende de \(x_t\) externo conhecido | ARIMAX (regressão com erros ARIMA) |
| \(y_t\) e \(x_t\) se influenciam mutuamente | VAR (vetores autorregressivos) |
| Apenas autocorrelação, sem variáveis externas | ARIMA |
| Sazonalidade + fatores externos | SARIMAX (ARIMAX sazonal) |
| Relação não linear com \(x_t\) | Inclua \(x_t^2\), interações, ou use modelos de ML |
💡 ARIMAX em R
library(forecast)
# Fit regression with ARIMA errors
fit <- auto.arima(y, xreg = x_matrix)
# Manual specification
Arima(y, order = c(1,1,1), xreg = x_matrix)
# Forecast (must supply future xreg values)
forecast(fit, xreg = x_future, h = nrow(x_future))
# Check residuals as usual
checkresiduals(fit)
O argumento xreg aceita uma matriz de regressores. Cada coluna é um regressor. O R ajusta o Modelo 2 (regressão com erros ARIMA), não a formulação ARIMAX pura.