Example 19.6 General Form Equations

Data for this example are generated. General form equations are estimated and forecast by using PROC MODEL. The system is a basic supply and demand model.

The following statements specify the form of the model:

title1 "General Form Equations for Supply-Demand Model";

proc model outmodel=model;
   var price quantity income unitcost;
   parms d0-d2 s0-s2;
   eq.demand=d0+d1*price+d2*income-quantity;
   eq.supply=s0+s1*price+s2*unitcost-quantity;
run;

Three data sets are used in this example. The first data set, HISTORY, is used to estimate the parameters of the model. The ASSUME data set is used to produce a forecast of PRICE and QUANTITY. Notice that the ASSUME data set does not need to contain the variables PRICE and QUANTITY. The HISTORY data set is shown as follows:

data history;
   input year income unitcost price quantity;
datalines;
1976    2221.87    3.31220     0.17903    266.714
1977    2254.77    3.61647     0.06757    276.049

   ... more lines ...   

The ASSUME data set is shown as follows:

data assume;
   input year income unitcost;
datalines;
1986    2571.87    2.31220
1987    2609.12    2.45633
1988    2639.77    2.51647
1989    2667.77    1.65617
1990    2705.16    1.01601
;

The third data set, GOAL, used in a forecast of PRICE and UNITCOST as a function of INCOME and QUANTITY is as follows:

   data goal;
      input year income quantity;
   datalines;
   1986    2571.87     371.4
   1987    2721.08     416.5
   1988    3327.05     597.3
   1989    3885.85     764.1
   1990    3650.98     694.3
   ;

The following statements fit the model to the HISTORY data set and solve the fitted model for the ASSUME data set.

proc model model=model outmodel=model;

/* estimate the model parameters */
   fit supply demand / data=history outest=est n2sls;
   instruments income unitcost year;
run;

/* produce forecasts for income and unitcost assumptions */
   solve price quantity / data=assume out=pq;
run;

title2 "Parameter Estimates for the System";
proc print data=est;
run;

title2 "Price Quantity Solution";
proc print data=pq;
run;

The model summary of the supply and demand model is shown as follows:

Output 19.6.1 Model Summary
General Form Equations for Supply-Demand Model

The MODEL Procedure

Model Summary
Model Variables 4
Parameters 6
Equations 2
Number of Statements 3

Model Variables price quantity income unitcost
Parameters d0 d1 d2 s0 s1 s2
Equations demand supply

The 2 Equations to Estimate
supply = F(s0(1), s1(price), s2(unitcost))
demand = F(d0(1), d1(price), d2(income))
Instruments 1 income unitcost year

The estimation results are shown in Output 19.6.2 and the OUTEST= data set is show in Output 19.6.3. The output data set produced by the SOLVE statement is shown in Output 19.6.4.

Output 19.6.2 Output from the FIT Statement
General Form Equations for Supply-Demand Model

The MODEL Procedure

Nonlinear 2SLS Summary of Residual Errors 
Equation DF Model DF Error SSE MSE Root MSE R-Square Adj R-Sq
supply 3 7 3.3240 0.4749 0.6891    
demand 3 7 1.0829 0.1547 0.3933    

Nonlinear 2SLS Parameter Estimates
Parameter Estimate Approx Std Err t Value Approx
Pr > |t|
d0 -395.887 4.1841 -94.62 <.0001
d1 0.717328 0.5673 1.26 0.2466
d2 0.298061 0.00187 159.65 <.0001
s0 -107.62 4.1780 -25.76 <.0001
s1 201.5711 1.5977 126.16 <.0001
s2 102.2116 1.1217 91.12 <.0001

Output 19.6.3 Listing of OUTEST= Data Set Created in the FIT Statement
General Form Equations for Supply-Demand Model
Parameter Estimates for the System

Obs _NAME_ _TYPE_ _STATUS_ _NUSED_ d0 d1 d2 s0 s1 s2
1   2SLS 0 Converged 10 -395.887 0.71733 0.29806 -107.620 201.571 102.212

Output 19.6.4 Listing of OUT= Data Set Created in the First SOLVE Statement
General Form Equations for Supply-Demand Model
Price Quantity Solution

Obs _TYPE_ _MODE_ _ERRORS_ price quantity income unitcost year
1 PREDICT SIMULATE 0 1.20473 371.552 2571.87 2.31220 1986
2 PREDICT SIMULATE 0 1.18666 382.642 2609.12 2.45633 1987
3 PREDICT SIMULATE 0 1.20154 391.788 2639.77 2.51647 1988
4 PREDICT SIMULATE 0 1.68089 400.478 2667.77 1.65617 1989
5 PREDICT SIMULATE 0 2.06214 411.896 2705.16 1.01601 1990

The following statements produce the goal-seeking solutions for PRICE and UNITCOST by using the GOAL dataset.

title2 "Price Unitcost Solution";

/* produce goal-seeking solutions for
     income and quantity assumptions*/
proc model model=model;
   solve price unitcost / data=goal out=pc;
run;

proc print data=pc;
run;

The output data set produced by the final SOLVE statement is shown in Output 19.6.5.

Output 19.6.5 Listing of OUT= Data Set Created in the Second SOLVE Statement
General Form Equations for Supply-Demand Model
Price Unitcost Solution

Obs _TYPE_ _MODE_ _ERRORS_ price quantity income unitcost year
1 PREDICT SIMULATE 0 0.99284 371.4 2571.87 2.72857 1986
2 PREDICT SIMULATE 0 1.86594 416.5 2721.08 1.44798 1987
3 PREDICT SIMULATE 0 2.12230 597.3 3327.05 2.71130 1988
4 PREDICT SIMULATE 0 2.46166 764.1 3885.85 3.67395 1989
5 PREDICT SIMULATE 0 2.74831 694.3 3650.98 2.42576 1990