[R] Forecasting using ARIMAX

siang.li.chua at acceval-intl.com siang.li.chua at acceval-intl.com
Wed Oct 15 09:25:01 CEST 2008


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



More information about the R-help mailing list