Getting Started: SIMLIN Procedure

The SIMLIN procedure processes the coefficients in a data set created by the SYSLIN procedure using the OUTEST= option or by another regression procedure such as PROC REG. To use PROC SIMLIN you must first produce the coefficient data set and then specify this data set on the EST= option of the PROC SIMLIN statement. You must also tell PROC SIMLIN which variables are endogenous and which variables are exogenous. List the endogenous variables in an ENDOGENOUS statement, and list the exogenous variables in an EXOGENOUS statement.

The following example illustrates the creation of an OUTEST= data set with PROC SYSLIN and the computation and printing of the reduced form coefficients for the model with PROC SIMLIN.

   proc syslin data=in outest=e;
      model y1 = y2 x1;
      model y2 = y1 x2;
   run;

   proc simlin est=e;
      endogenous y1 y2;
      exogenous x1 x2;
   run;

If the model contains lagged endogenous variables you must also use a LAGGED statement to tell PROC SIMLIN which variables contain lagged values, which endogenous variables they are lags of, and the number of periods of lagging. For dynamic models, the TOTAL and INTERIM= options can be used on the PROC SIMLIN statement to compute and print total and impact multipliers. (See "Dynamic Multipliers" later in this section for an explanation of multipliers.)

In the following example the variables Y1LAG1, Y2LAG1, and Y2LAG2 contain lagged values of the endogenous variables Y1 and Y2. Y1LAG1 and Y2LAG1 contain values of Y1 and Y2 for the previous observation, while Y2LAG2 contains 2 period lags of Y2. The LAGGED statement specifies the lagged relationships, and the TOTAL and INTERIM= options request multiplier analysis. The INTERIM=2 option prints matrices showing the impact that changes to the exogenous variables have on the endogenous variables after 1 and 2 periods.

   data in; set in;
     y1lag1 = lag(y1);
     y2lag1 = lag(y2);
     y2lag2 = lag2(y2);
   run;

   proc syslin data=in outest=e;
      model y1 = y2 y1lag1 y2lag2 x1;
      model y2 = y1 y2lag1 x2;
   run;

   proc simlin est=e total interim=2;
      endogenous y1 y2;
      exogenous x1 x2;
      lagged y1lag1 y1 1 y2lag1 y2 1 y2lag2 y2 2;
   run;

After the reduced form of the model is computed, the model can be simulated by specifying an input data set on the PROC SIMLIN statement and using an OUTPUT statement to write the simulation results to an output data set. The following example modifies the PROC SIMLIN step from the preceding example to simulate the model and stores the results in an output data set.

   proc simlin est=e total interim=2 data=in;
      endogenous y1 y2;
      exogenous x1 x2;
      lagged y1lag1 y1 1 y2lag1 y2 1 y2lag2 y2 2;
      output out=sim predicted=y1hat y2hat
                     residual=y1resid y2resid;
   run;