I want to fit an AR(MA)X model to some data. The application is to describe the temperature of a single room. As disturbances/exogenous inputs to the room temperature is solar radiation, outdoor air temperature, and water-based radiator. I want to use statsmodels in Python which offers functions to fit ARMA models with exogenous input.

According to the documentation of the ARMAX implementation, the function fits a "regression with ARIMA errors" to the data. That is a model on the form

$\phi(L) ( y_t - X_t \beta) = \theta(L) \epsilon_t$,

$\implies y_t = \frac{\theta(L)}{\phi(L)} \epsilon_t + X_t \beta$

where $\theta$, $\phi$ are polynomials in the lag operator $L$. But this would not be the intuitive (for me at least) to formulate such a system since there is no transfer function from the exogenous inputs - only the errors. I would have appreciated a form like

$y_t = \frac{\theta(L)}{\phi(L)} \epsilon_t + \frac{\alpha(L)}{\phi(L)} X_t$,

where $\alpha$ is again a polynomial in the lag operator $L$.

So my question is: There must be a good reason for formulating the model in this way, but I don't see why? Hope you can help me! Cheers!


Ease of interpretation of the regression coefficient is a reason for preferring regression models with ARIMA errors over transfer functions and other relatives. According to Hyndman "ARIMAX model muddle",

[In the case of regression models with ARIMA errors], the regression coefficient has its usual interpretation. There is not much to choose between the models in terms of forecasting ability, but the additional ease of interpretation in the second one makes it attractive.

Whether the reason is compelling enough will depend on the application.

  • $\begingroup$ Thanks, Richard! :) Your reference actually explained quite well what the advantages of having ARMA errors are! But Hyndman also introduces the so-called "Dynamic regression models" or simply transfer function models. And I at least could not find any Python implementation for this... Are dynamic regression models just so rare, that no one has implemented this yet? $\endgroup$ – Ankerstjerne Mar 2 at 7:53
  • $\begingroup$ @Ankerstjerne, I do not use Python nor do I use dynamic regression models, so I am not the right person to answer the question. $\endgroup$ – Richard Hardy Mar 2 at 8:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.