As pointed out in the comments, the difference between the models is that auto.arima()
has not included an intercept. It selects a model, possibly including the constant, using the AICc. With one covariate, the model is
$$y_t = \beta_0 x_t + n_t$$
where $n_t$ is an ARIMA process. Note that the intercept is shifted to the ARIMA process. In this example, the selected model for $n_t$ does not include a constant.
If you know what model you want, why use auto.arima()
? Instead, you could use
arima(a,xreg=b)
which gives
Series: a
ARIMA(0,0,0) with non-zero mean
Coefficients:
intercept b
48638.40 -26143.23
s.e. 32410.27 27893.41
sigma^2 estimated as 93138232: log likelihood=-254.25
AIC=514.5 AICc=515.7 BIC=518.03
This is the same as the model obtained using lm(a~b)
. The estimates are identical, but the standard errors are different because they are estimated in a different way (numerically from the hessian matrix rather than using the inverse of $(X'X)$.)