Hi Siang Li. It would help if you explained what packages you are
using. auto.arima() is in the forecast package and arimax appears to
be from the TSA package.
Using auto.arima() to select the orders is inappropriate because you
are ignoring the regressors. auto.arima() does not currently handle
regressors, but you can get something that is at least consistent by
using lm() to fit a linear model with the regressors and then apply
auto.arima() to the residuals to select the order. Sometime, I'll add
regressors into auto.arima().
On your specific questions:
1. Fit the model using all the data.
2. Ask the author of the TSA package.
Rob
<siang.li.chua <at> acceval-intl.com> writes:
>
> Dear R-helpers,
>
> I would appreicate if someone can help me on the transfer parameter in
ARIMAX and also see what I am doing is correct.
>
> I am using ARIMAX with 2 Exogeneous Variables and 10 years data are as
follows:
>
> DepVar Period, depVar, IndepVar1 Period, indepVar1, IndepVar2 Period,
indepVar2
> Jan 1998,708,Jan 1998,495,Jan 1998,245.490
> Feb 1998,670,Feb 1998,421.25,Feb 1998,288.170
> Mar 1998,642.5,Mar 1998,395,Mar 1998,254.950
> Apr 1998,610,Apr 1998,377.5,Apr 1998,230.640
> :
>
> > (nrowDepVar <- nrow(depVar))
> [1] 545
> > (nTest <- nInstance + nHorizon - 1) #number of latest points
reserved for testing
> [1] 13
> > (nTrain <- nrowDepVar - nTest)
> [1] 532
>
> First I use auot.arima to find the best (p,d,q).
>
> > modArima <- auto.arima(depVar[1:nTrain,], trace=TRUE)
>
> ARIMA(2,1,2) with drift : 4402.637
> ARIMA(0,1,0) with drift : 4523.553
> ARIMA(1,1,0) with drift : 4410.036
> ARIMA(0,1,1) with drift : 4442.558
> ARIMA(1,1,2) with drift : 4401.178
> ARIMA(1,1,1) with drift : 4399.421
> ARIMA(1,1,1) : 4398.502
> ARIMA(0,1,1) : 4443.709
> ARIMA(2,1,1) : 4400.818
> ARIMA(1,1,0) : 4409.569
> ARIMA(1,1,2) : 4400.196
> ARIMA(0,1,0) : 4526.782
> ARIMA(2,1,2) : 4401.824
>
> Best model: ARIMA(1,1,1)
>
> > (bestOrder <-
cbind(modArima$arma[1],modArima$arma[5],modArima$arma[2]))
> [,1] [,2] [,3]
> [1,] 1 1 1
> > (bestSessionOrder <-
cbind(modArima$arma[3],modArima$arma[6],modArima$arma[4]))
> [,1] [,2] [,3]
> [1,] 0 1 0
> > modArimax <- arimax(depVar[1:nTrain,], order=bestOrder,
> xtransf=data.frame(indepVar[1:nTrain,]))
>
> After testing and validation, I think the model is robust enough go for
real forecasting.
>
> Q1. Since my model is trained until Jul 2007, I shall 'update' the
model to to include values up to Sep 2007,
> how can I 'update' it?
>
> Q2. Now, say I am forecasting for next month Nov 2008. But I yet to have
Nov 08 data for the 2 independent
> variables In fact currently, I only have Sep 2008 values. I think the
parameter transfer is the solution?
> Would appreciate someone can shed some light on how I can proceed.
>
> Many Thanks.
>
> siangli
_____________________________
Rob J Hyndman
Professor of Statistics, Monash University
Editor-in-Chief, International Journal of Forecasting
http://www.robjhyndman.com/