Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The MODEL Procedure

Analyzing the Structure of Large Models

PROC MODEL provides several features to aid in analyzing the structure of the model program. These features summarize properties of the model in various forms.

The following Klein's model program is used to introduce the LISTDEP, BLOCK, and GRAPH options.

   proc model  out=m data=klein listdep graph block;
      endogenous c p w i x wsum k y;
      exogenous  wp g t year;
      parms c0-c3 i0-i3 w0-w3;
      a: c = c0 + c1 * p + c2 * lag(p) + c3 * wsum;
      b: i = i0 + i1 * p + i2 * lag(p) + i3 * lag(k);
      c: w = w0 + w1 * x + w2 * lag(x) + w3 * year;
      x = c + i + g;
      y = c + i + g-t;
      p = x-w-t;
      k = lag(k) + i;
      wsum = w + wp;
      id year;
   run;

Dependency List

The LISTDEP option produces a dependency list for each variable in the model program. For each variable, a list of variables that depend on it and a list of variables it depends on is given. The dependency list produced by the example program is shown in Figure 14.77.

The MODEL Procedure

Dependency Listing For Program
Symbol----------- Dependencies
c Current values affect: ERROR.c PRED.x RESID.x ERROR.x PRED.y RESID.y ERROR.y
p Current values affect: PRED.c RESID.c ERROR.c PRED.i RESID.i ERROR.i ERROR.p
  Lagged values affect: PRED.c PRED.i
w Current values affect: ERROR.w PRED.p RESID.p ERROR.p PRED.wsum RESID.wsum ERROR.wsum
i Current values affect: ERROR.i PRED.x RESID.x ERROR.x PRED.y RESID.y ERROR.y PRED.k RESID.k ERROR.k
x Current values affect: PRED.w RESID.w ERROR.w ERROR.x PRED.p RESID.p ERROR.p
  Lagged values affect: PRED.w
wsum Current values affect: PRED.c RESID.c ERROR.c ERROR.wsum
k Current values affect: ERROR.k
  Lagged values affect: PRED.i RESID.i ERROR.i PRED.k RESID.k

Figure 14.77: A Portion of the LISTDEP Output for Klein's Model

BLOCK Listing

The BLOCK option prints an analysis of the program variables based on the assignments in the model program. The output produced by the example is shown in Figure 14.78.

The MODEL Procedure
Model Structure Analysis
(Based on Assignments to Endogenous Model Variables)

Exogenous Variables wp g t year
Endogenous Variables c p w i x wsum k y

NOTE: The System Consists of 2 Recursive Equations and 1 Simultaneous Blocks.

Block Structure of the System
Block 1 c p w i x wsum

Dependency Structure of the System
Block 1 Depends On All_Exogenous
k Depends On Block 1 All_Exogenous
y Depends On Block 1 All_Exogenous

Figure 14.78: The BLOCK Output for Klein's Model

One use for the block output is to put a model in recursive form. Simulations of the model can be done with the SEIDEL method, which is efficient if the model is recursive and if the equations are in recursive order. By examining the block output, you can determine how to reorder the model equations for the most efficient simulation.

Adjacency Graph

The GRAPH option displays the same information as the BLOCK option with the addition of an adjacency graph. An X in a column in an adjacency graph indicates that the variable associated with the row depends on the variable associated with the column. The output produced by the example is shown in Figure 14.79.

The MODEL Procedure

Adjacency Matrix for Graph of System
Variable   c p w i x wsum k y wp g t year
                    * * * *
c   X X . . . X . . . . . .
p   . X X . X . . . . . X .
w   . . X . X . . . . . . X
i   . X . X . . . . . . . .
x   X . . X X . . . . X . .
wsum   . . X . . X . . X . . .
k   . . . X . . X . . . . .
y   X . . X . . . X . X X .
wp * . . . . . . . . X . . .
g * . . . . . . . . . X . .
t * . . . . . . . . . . X .
year * . . . . . . . . . . . X

(Note: * = Exogenous Variable.)

Transitive Closure Matrix of Sorted System
Block Variable   c p w i x wsum k y
1 c   X X X X X X . .
1 p   X X X X X X . .
1 w   X X X X X X . .
1 i   X X X X X X . .
1 x   X X X X X X . .
1 wsum   X X X X X X . .
  k   X X X X X X X .
  y   X X X X X X . X

Adjacency Matrix for Graph of System Including Lagged Impacts
Block Variable   c p w i x wsum k y wp g t year
                      * * * *
1 c   X L . . . X . . . . . .
1 p   . X X . X . . . . . X .
1 w   . . X . L . . . . . . X
1 i   . L . X . . L . . . . .
1 x   X . . X X . . . . X . .
1 wsum   . . X . . X . . X . . .
  k   . . . X . . L . . . . .
  y   X . . X . . . X . X X .
  wp * . . . . . . . . X . . .
  g * . . . . . . . . . X . .
  t * . . . . . . . . . . X .
  year * . . . . . . . . . . . X

(Note: * = Exogenous Variable.)

Figure 14.79: The GRAPH Output for Klein's Model

The first and last graphs are straightforward. The middle graph represents the dependencies of the nonexogenous variables after transitive closure has been performed (that is, A depends on B, and B depends on C, so A depends on C). The preceding transitive closure matrix indicates that K and Y do not directly or indirectly depend on each other.

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.