Dynamic factor model and ARMA process in state equation
Posted: 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:
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.
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
After many trials, I could not find any useful representation for this problem.
Any clue?
Thank you very much.