Page 1 of 1

Dynamic factor model and ARMA process in state equation

Posted: Wed May 22, 2013 3:28 am
by mmog
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.

Re: Dynamic factor model and ARMA process in state equation

Posted: Wed May 22, 2013 9:26 am
by EViews Glenn
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.

Re: Dynamic factor model and ARMA process in state equation

Posted: Thu May 23, 2013 2:57 am
by mmog
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.

Re: Dynamic factor model and ARMA process in state equation

Posted: Thu May 23, 2013 10:40 am
by EViews Glenn
Correct. The states have to follow an AR process of some sort.