A Consumer Demand Model
/*--------------------------------------------------------------
SAS Sample Library
Name: modex02.sas
Description: Example program from SAS/ETS User's Guide,
The MODEL Procedure
Title: A Consumer Demand Model
Product: SAS/ETS Software
Keys: nonlinear simultaneous equation models
PROC: MODEL
Notes:
--------------------------------------------------------------*/
data tlog1;
input t share1 share2 share3 p1 p2 p3;
datalines;
1 0.129 0.493 0.378 1.40406 1.49089 1.39449
2 0.126 0.499 0.375 1.43488 1.52051 1.52407
3 0.114 0.522 0.364 1.57969 1.46667 1.65631
4 0.119 0.511 0.370 1.49961 1.55867 1.92536
5 0.126 0.509 0.365 2.01051 1.61371 1.78626
6 0.127 0.497 0.376 1.65436 1.69078 1.70540
7 0.128 0.495 0.377 1.62652 1.66765 1.61266
8 0.119 0.514 0.367 1.66980 1.50343 1.47088
9 0.125 0.499 0.376 1.40209 1.48202 1.45782
10 0.108 0.523 0.369 1.38906 1.42591 1.51648
11 0.106 0.538 0.356 1.43997 1.34984 1.46885
12 0.102 0.544 0.354 1.33201 1.31234 1.42404
13 0.102 0.540 0.358 1.17398 1.27947 1.33307
14 0.136 0.471 0.393 1.12215 1.29747 1.22201
15 0.164 0.535 0.301 1.18175 1.27395 1.13321
16 0.111 0.532 0.357 1.08195 1.24290 1.10386
17 0.125 0.503 0.372 1.02606 1.17886 1.04558
18 0.127 0.497 0.376 1.01399 1.12550 0.95515
19 0.145 0.458 0.397 1.31784 1.11050 0.89666
20 0.164 0.492 0.314 1.13912 1.10141 0.89219
21 0.130 0.492 0.378 0.94897 1.06430 0.92483
22 0.139 0.472 0.389 1.03611 0.99587 0.88390
23 0.134 0.483 0.383 0.95167 0.97834 0.84329
24 0.138 0.475 0.387 0.94553 0.91948 0.82540
25 0.130 0.486 0.384 0.82124 0.88765 0.84305
26 0.142 0.467 0.391 0.91700 0.83821 0.81825
27 0.140 0.471 0.389 0.81815 0.80076 0.80307
28 0.139 0.473 0.388 0.75771 0.76853 0.78136
29 0.136 0.481 0.383 0.66028 0.76027 0.77448
30 0.129 0.483 0.388 0.72626 0.72469 0.74480
31 0.138 0.476 0.386 0.65864 0.69642 0.73169
32 0.141 0.470 0.389 0.70983 0.66085 0.70354
33 0.140 0.471 0.389 0.67501 0.64329 0.68928
34 0.140 0.472 0.388 0.64815 0.62016 0.67150
35 0.149 0.443 0.408 0.62117 0.60156 0.65453
36 0.140 0.472 0.388 0.61053 0.56857 0.62066
37 0.140 0.471 0.389 0.61021 0.53726 0.58696
38 0.140 0.472 0.388 0.57732 0.51423 0.55821
39 0.139 0.474 0.387 0.52595 0.49851 0.54516
40 0.138 0.476 0.386 0.48673 0.48049 0.52500
41 0.159 0.483 0.358 0.51146 0.45405 0.49703
42 0.137 0.478 0.385 0.43755 0.45166 0.49636
43 0.137 0.478 0.385 0.41167 0.43600 0.49146
44 0.138 0.475 0.387 0.43348 0.40635 0.46186
;
title1 'Consumer Demand--Translog Functional Form';
title2 'Asymmetric Model';
proc model data=tlog1;
endogenous share1 share2;
parms a1 a2 b11 b12 b13 b21 b22 b23 b31 b32 b33;
bm1 = b11 + b21 + b31;
bm2 = b12 + b22 + b32;
bm3 = b13 + b23 + b33;
lp1 = log(p1);
lp2 = log(p2);
lp3 = log(p3);
share1 = ( a1 + b11 * lp1 + b12 * lp2 + b13 * lp3 ) /
( -1 + bm1 * lp1 + bm2 * lp2 + bm3 * lp3 );
share2 = ( a2 + b21 * lp1 + b22 * lp2 + b23 * lp3 ) /
( -1 + bm1 * lp1 + bm2 * lp2 + bm3 * lp3 );
fit share1 share2
start=( a1 -.14 a2 -.45 b11 .03 b12 .47 b22 .98 b31 .20
b32 1.11 b33 .71 ) / outsused=smatrix sur;
run;
title2 'Symmetric Model';
proc model data=tlog1;
var share1 share2 p1 p2 p3;
parms a1 a2 b11 b12 b22 b31 b32 b33;
bm1 = b11 + b12 + b31;
bm2 = b12 + b22 + b32;
bm3 = b31 + b32 + b33;
lp1 = log(p1);
lp2 = log(p2);
lp3 = log(p3);
share1 = ( a1 + b11 * lp1 + b12 * lp2 + b31 * lp3 ) /
( -1 + bm1 * lp1 + bm2 * lp2 + bm3 * lp3 );
share2 = ( a2 + b12 * lp1 + b22 * lp2 + b32 * lp3 ) /
( -1 + bm1 * lp1 + bm2 * lp2 + bm3 * lp3 );
fit share1 share2
start=( a1 -.14 a2 -.45 b11 .03 b12 .47 b22 .98 b31 .20
b32 1.11 b33 .71 ) / sdata=smatrix sur;
run;
data _null_;
/* probchi( reduced-full, n-restrictions )*/
p = 1-probchi( 1.44, 3 );
put p=;
run;