Forecasting with exogenous series

Use this forum to post questions about syntax problems or general programming issues. Questions on implementing a particular aspect of econometrics should go in "Econometrics Issues" below.
mgm
Posts: 3
Joined: Thu Apr 01, 2010 10:28 am

Forecasting with exogenous series

Unread post by mgm »

Dear Tom,


I need help in order to solve a problem related to forecasting with exogenous series.
I am working on a project that decomposes a series in trend and cycle. The “trend” component i consider as exogenous, and for the cycle i build an ARMA model.
It is something like:

Y(t) – y(t)TREND = cte + rho1 * (Y(t-1) – y(t-1)TREND) + rho2 * (Y(t-2) – y(t-2)TREND) + Ɛt

In this setup, i have values for “y(t)TREND” for t+1, t+2, ...

So, what i need is to forecast y(t+1), given y(t+1)TREND, in the model above.
I want the cycle component to fluctuate around the future mean level (the “exogenous” trend).

I am trying to implement this trough this piece of code:


nonlin beta1 beta2 rho1 rho2 rho3 cte

frml cyc cycle = %s(nameS1) - beta1 - beta2*%s(nameSTrend1)
compute beta1=1
compute beta2=1
compute rho1=1
compute rho2=1
compute rho3=1
compute cte = 0
nlls(frml=cyc) cycle

frml result resCycle = cyc(t) - cte - rho1*cyc(t-1) - rho2*cyc(t-2) - rho3*cyc(t-3)
nlls(frml=result) resCycle

group modelo cyc>>fcycle result>>fresCycle
declare vector[series] fcasts
forecast(model=modelo,from=2015:7,steps=3,results=fcasts,print)
print / fcasts(1) fcasts(2)

set cycle = fcasts(1)
set resCycle = fcasts(2)


The series “%s(nameS1)” is available through “2015:6” and values through “2015:9” are available to “%s(nameSTrend1)”.
The problema is, i am gettting “NAs” for the forecasted “%s(nameS1)”, as if there were no values available for the “%s(nameSTrend1)”.

What is wrong with the code ?

Thank you very much.

Marcos
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Forecasting with exogenous series

Unread post by TomDoan »

The problem is that your model never actually defines (explicitly) where the Y is created and the Y's are needed to extend the calculation outside the sample. (The second one implicitly defines it). Instead, you want to rewrite that as

frml result %s(nameS1) = beta1 + beta2*%s(nameSTrend1) + cte + rho1*cyc(t-1) + rho2*cyc(t-2) + rho3*cyc(t-3)

(You would need that to estimate the parameters anyway.)
mgm
Posts: 3
Joined: Thu Apr 01, 2010 10:28 am

Re: Forecasting with exogenous series

Unread post by mgm »

Tom, thank you very much. It worked just fine.
Post Reply