Nonlinear FIML Estimation

/*--------------------------------------------------------------

                    SAS Sample Library

        Name: modex08.sas
 Description: Example program from SAS/ETS User's Guide,
              The MODEL Procedure
       Title: Nonlinear FIML Estimation
     Product: SAS/ETS Software
        Keys: nonlinear simultaneous equation models
        PROC: MODEL
       Notes:

--------------------------------------------------------------*/

data bodkin;
   input z1 z2 z3 z4 z5;
datalines;
1.33135 0.64629 0.4026 -20 0.24447
1.39235 0.66302 0.4084 -19 0.23454
1.41640 0.65272 0.4223 -18 0.23206
1.48773 0.67318 0.4389 -17 0.22291
1.51015 0.67720 0.4605 -16 0.22487
1.43385 0.65175 0.4445 -15 0.21879
1.48188 0.65570 0.4387 -14 0.23203
1.67115 0.71417 0.4999 -13 0.23828
1.71327 0.77524 0.5264 -12 0.26571
1.76412 0.79465 0.5793 -11 0.23410
1.76869 0.71607 0.5492 -10 0.22181
1.80776 0.70068 0.5052  -9 0.18157
1.54947 0.60764 0.4679  -8 0.22931
1.66933 0.67041 0.5283  -7 0.20595
1.93377 0.74091 0.5994  -6 0.19472
1.95460 0.71336 0.5964  -5 0.17981
2.11198 0.75159 0.6554  -4 0.18010
2.26266 0.78838 0.6851  -3 0.16933
2.33228 0.79600 0.6933  -2 0.16279
2.43980 0.80788 0.7061  -1 0.16906
2.58714 0.84547 0.7567   0 0.16239
2.54865 0.77232 0.6796   1 0.16103
2.26042 0.67880 0.6136   2 0.14456
1.91974 0.58529 0.5145   3 0.20079
1.80000 0.58065 0.5046   4 0.18307
1.86020 0.62007 0.5711   5 0.18352
1.88201 0.65575 0.6184   6 0.18847
1.97018 0.72433 0.7113   7 0.20415
2.08232 0.76838 0.7461   8 0.18847
1.94062 0.69806 0.6981   9 0.17800
1.98646 0.74679 0.7722  10 0.19979
2.07987 0.79083 0.8557  11 0.21115
2.28232 0.88462 0.9925  12 0.23453
2.52779 0.95750 1.0877  13 0.20937
2.62747 1.00285 1.1834  14 0.19843
2.61235 0.99329 1.2565  15 0.18898
2.52320 0.94857 1.2293  16 0.17203
2.44632 0.97853 1.1889  17 0.18140
2.56478 1.02591 1.2249  18 0.19431
2.64588 1.03760 1.2669  19 0.19492
2.69105 0.99669 1.2708  20 0.17912
;

title1 "Nonlinear FIML Estimation";

proc model data=bodkin;
   parms c1-c5;
   endogenous z1 z2;
   exogenous z3 z4 z5;

   eq.g1 = c1 * 10 **(c2 * z4) * (c5*z1**(-c4)+
           (1-c5)*z2**(-c4))**(-c3/c4) - z3;
   eq.g2 = (c5/(1-c5))*(z1/z2)**(-1-c4) -z5;

   fit g1 g2 / fiml ;
run;