Dynamic factor model and ARMA process in state equation

For questions regarding programming in the EViews programming language.

Moderators: EViews Gareth, EViews Moderator, EViews Jason, EViews Matt

mmog
Posts: 3
Joined: Wed May 22, 2013 2:54 am

Dynamic factor model and ARMA process in state equation

Postby mmog » Wed May 22, 2013 3:28 am

Hi,

I'm trying to estimate a particular Dynamic Factor Model in the following state-space system:

Signal Equation:
y(1,t)=a(1)*F(t)+u(1,t)
...
y(i,t)=a(i)*F(t)+u(i,t)

State Equations:
F(t)=b1*F(t-1)+b2*F(t-2)+E(t)-h*E(t-1)
u(1,t)=d(i)*u(1,t-1)+w(1,t)
...
u(i,t)=d(i)*u(i,t-1)+w(i,t)


That is quite close to a standard Dynamic Factor Model. However, the common factor (F) is allowed to follow an ARMA(2,1) process, rather than a usual AR(2) process, and residuals (u) follow an AR(1) process. This is the issue!

Suppose for a moment we got 3 variables (y1, y2, y3) and the common factor (F1) follows a standard AR(2) process, with innovation variance (V(eps)) set to 1 for ease of computation. Hence, the state-space representation should be:

Code: Select all

sspace dfm dfm.append @signal y1=c(1)*F1+e1 dfm.append @signal y2=c(2)*F1+e2 dfm.append @signal y3=c(3)*F1+e3 dfm.append @state F1=c(4)*F1(-1)+c(5)*F2(-1)+[ename=eps, var=1] dfm.append @state F2=F1(-1) dfm.append @state e1=c(6)*e1(-1)+[ename = e12, var=exp(c(9))] dfm.append @state e2=c(7)*e2(-1)+[ename = e22, var=exp(c(10))] dfm.append @state e3=c(8)*e3(-1)+[ename = e32, var=exp(c(11))] dfm.append @evar cov(e12,e22) = c(12) dfm.append @evar cov(e12,e32) = c(13) dfm.append @evar cov(e22,e32) = c(14) dfm.ml dfm.makestates *_ss
Now, it does work and that's fine. My problem is, how do you write the same state-space representation, but with an ARMA specification in the state equation for F1? It looks like a quite though programming issue (or at least apparently), because the state equation for F1 only allows for lagged terms (of course) and the innovation eps cannot be used elsewhere.
After many trials, I could not find any useful representation for this problem.

Any clue?

Thank you very much.

EViews Glenn
EViews Developer
Posts: 2682
Joined: Wed Oct 15, 2008 9:17 am

Re: Dynamic factor model and ARMA process in state equation

Postby EViews Glenn » Wed May 22, 2013 9:26 am

You need to move the error into a state (actually multiple states, to handle the lags in the MAs). To see how this works, use the Proc/Specify State Space on a new equation and specify ARMA errors. You'll see the state space form.

mmog
Posts: 3
Joined: Wed May 22, 2013 2:54 am

Re: Dynamic factor model and ARMA process in state equation

Postby mmog » Thu May 23, 2013 2:57 am

Dear Glenn,

thank you for your reply. However, maybe I do not understand your point, but I think what you are suggesting is akin to formulate a MA specification for the signal equations (y1, y2, y3), and not for the state equation. In practice, what I am looking for should be the following:

Code: Select all

sspace dfm dfm.append @signal y1=c(1)*F1+e1 dfm.append @signal y2=c(2)*F1+e2 dfm.append @signal y3=c(3)*F1+e3 dfm.append @state F1=c(4)*F1(-1)+c(5)*F2(-1)+[ename=eps, var=1]+c(15)*eps(-1) dfm.append @state F2=F1(-1) dfm.append @state e1=c(6)*e1(-1)+[ename = e12, var=exp(c(9))] dfm.append @state e2=c(7)*e2(-1)+[ename = e22, var=exp(c(10))] dfm.append @state e3=c(8)*e3(-1)+[ename = e32, var=exp(c(11))] dfm.append @evar cov(e12,e22) = c(12) dfm.append @evar cov(e12,e32) = c(13) dfm.append @evar cov(e22,e32) = c(14) dfm.ml dfm.makestates *_ss
and this (c(15)*eps(-1)) is unluckily not allowed.

Am I interprenting correctly your suggestion?

Thanks.

EViews Glenn
EViews Developer
Posts: 2682
Joined: Wed Oct 15, 2008 9:17 am

Re: Dynamic factor model and ARMA process in state equation

Postby EViews Glenn » Thu May 23, 2013 10:40 am

Correct. The states have to follow an AR process of some sort.


Return to “Programming”

Who is online

Users browsing this forum: No registered users and 2 guests