Page 1 of 1

Ragged Edge ARMA Forecasting

Posted: Tue Jun 10, 2014 3:53 pm
Version 8, build June 4, 2014

I have multiple series that I want to forecast, with ARMA processes in their equations. The history is a ragged edge (ends in different periods for each endogenous variable, according to when data is released). If I start the model solve way back in history (period 700 in the example below), excluding actuals, then I get a forecast that (to all intents and purposes) does not include the ARMA processes. If I start the model solve in the first period with missing data for any of the endogenous variables (Y1, period 801 in the example below), then it includes the ARMA process for that variable, but doesn't for variables that start in different periods. If I start the model solve in the later period, it only incorporates the ARMA process for the second endogenous variable (Y2, period 803 in the example below).

So the question is: what is the best way of using a model object to forecast series with ARMA processes that have a ragged historical edge (obviously it's easy if there are no linkages between the series, simply forecast them individually, but if they are functions of each other)?

Code: Select all

`'create workfilewf u 1000'create independent variablesmpl @allseries X = nrnd'create series with AR error processsmpl 1 1series ARProcess = 1smpl 2 @lastARProcess = 0.8*@lag(ARProcess,1) + nrnd'series with MA error processsmpl @allseries MAResid = nrndseries MAProcess = MAResid + 0.7 * @lag(MAResid,1)'create dependent variablessmpl 1 800series Y1 = X + ARProcesssmpl 1 802series Y2 = X + MAProcess'estimate equations and add to modelmodel m_testsmpl 200 @lastequation eq_Y1.ls Y1 X AR(1)m_test.merge eq_Y1equation eq_Y2.ls Y2 X MA(1)m_test.merge eq_Y2'forecasting from different start dates%StartDateList = "700 801 803"for %startdate {%StartDateList}   m_test.scenario(n, a=%startdate) Forecast from Obs {%startdate} excluding actuals   m_test.exclude(actexist=t)   smpl %startdate @last   m_test.solvenext'graph showing differencesmpl 790 820for %Y Y1 Y2   %graphlist = @wcross(%Y,%StartDateList,"?_?") + " " + %Y   graph gr_{%Y}.line {%graphlist}   show gr_{%Y}next`