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 1978 2285.16 2.21601 0.82916 285.858 ... 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 |
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 |
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 |