Page 2 of 2

Re: "Invalid endogenous variable specification for system"

Posted: Fri Mar 18, 2011 10:07 am
by alex_hk90
Glad we got it figured out...
By the way, where is the stuff about FIML in the manual? I can't seem to find it.

And while this is almost certainly in the manual, what is the log-likelihood function and how can it be changed?

Re: "Invalid endogenous variable specification for system"

Posted: Fri Mar 18, 2011 11:48 am
by EViews Glenn
I had thought there was more of a discussion of systems and of FIML in particular in the manual. Sorry about that. I must be thinking of some other discussion (or perhaps some of my own notes). I'll have to make a note that we *really* should add a discussion of some of these issues to the docs. I don't think the people who wrote the FIML discussion did a very good job (or much of a job at all)...

As to the likelihood, it's the usual FIML likelihood. The only issue is that if you have more than one variable on the left-hand side of the equation we normalize with respect to the first variable found on the line. Typically, this isn't an issue since people usually specify their equations in explicit form as in

y1 = c(1)*y2 + c(3)*Z + e1
y2 = c(2)*y1 + e2

Certainly this is the way that most specifications appear in the literature. But one could certainly write the model as

y1 + c(1)*y2 = c(3)*Z + e1
-c(2)*y1 + y2 = e2

Now systems don't allow you explicitly to identify the endogenous variables in the system so we have to derive them syntactically. Hence the rule. Ideally, allowing you to tag the endogenous would be good so that you don't have to rewrite the spec. But I'm not certain how much work that would be. I'll put it on the list of things to consider...

Sorry again for the confusion...

Re: "Invalid endogenous variable specification for system"

Posted: Tue Mar 29, 2011 2:45 pm
by alex_hk90
You do, however, still have the problem that your system isn't really identified since it has a solution where C(1)=C(2)=...=C(6)=0 yields residuals of 0.
Does anyone have any ideas on how I could avoid this problem? I'm trying to use a system to replicate the arbitrary (Cholesky-style) identification example in the SVAR section of the manual:
@e1 = C(1)*@u1
@e2 = C(2)*@e1 + C(3)*@u2
@e3 = C(4)*@e1 + C(5)*@e2 + C(6)*@u3

So in the form Ae_t = Bu_t, B is a diagonal matrix and A is lower triangular with the diagonal elements each restricted to 1.

Now in the form u_t = A0*e_t, this simply means a lower triangular A0 matrix.
So the system (structural form) to estimate (in matrices) is (for a VAR(1)):
A0*x_t = A0*k + A0*C1*x_t-1 + epsilon_t
where k is the vector of constants and C1 is the estimated matrix from the reduced form:
x_t = k + C1*x_t-1 + e_t

Thus I make the system to be (var01 is the reduced form VAR(1) with a constant):
C(1)*X = C(1)*var01.c(1,4) + C(1)*(var01.c(1,1)*X(-1) + var01.c(1,2)*INFL(-1) + var01.c(1,3)*I_P(-1))

C(3)*INFL + C(2)*X = C(2)*var01.c(1,4) + C(3)*var01.c(2,4) + (C(2)*var01.c(1,1) + C(3)*var01.c(2,1))*X(-1) + (C(2)*var01.c(1,2) + C(3)*var01.c(2,2))*INFL(-1) + (C(2)*var01.c(1,3) + C(3)*var01.c(2,3))*I_P(-1)

C(6)*I_P + C(4)*X + C(5)*INFL = C(4)*var01.c(1,4) + C(5)*var01.c(2,4) + C(6)*var01.c(3,4) + (C(4)*var01.c(1,1) + C(5)*var01.c(2,1) + C(6)*var01.c(3,1))*X(-1) + (C(4)*var01.c(1,2) + C(5)*var01.c(2,2) + C(6)*var01.c(3,2))*INFL(-1) + (C(4)*var01.c(1,3) + C(5)*var01.c(2,3) + C(6)*var01.c(3,3))*I_P(-1)

But obviously this has the problem mentioned that there is a solution where all the coefficients are zero.

I want to be able to replicate the SVAR manually using the system object so I can make sure I'm generating the IRFs (impulse response functions) correctly when I do this for the SVAR that can't be done using the 'Estimate Structural Factorization' procedure. It feels like I'm missing something obvious here but I've been struggling with this all day and still can't see it.