### 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)?

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 workfile`

wf u 1000

'create independent variable

smpl @all

series X = nrnd

'create series with AR error process

smpl 1 1

series ARProcess = 1

smpl 2 @last

ARProcess = 0.8*@lag(ARProcess,1) + nrnd

'series with MA error process

smpl @all

series MAResid = nrnd

series MAProcess = MAResid + 0.7 * @lag(MAResid,1)

'create dependent variables

smpl 1 800

series Y1 = X + ARProcess

smpl 1 802

series Y2 = X + MAProcess

'estimate equations and add to model

model m_test

smpl 200 @last

equation eq_Y1.ls Y1 X AR(1)

m_test.merge eq_Y1

equation 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.solve

next

'graph showing difference

smpl 790 820

for %Y Y1 Y2

%graphlist = @wcross(%Y,%StartDateList,"?_?") + " " + %Y

graph gr_{%Y}.line {%graphlist}

show gr_{%Y}

next