MODEL Procedure

Example 24.11 Monte Carlo Simulation

(View the complete code for this example.)

This example illustrates how the form of the error in a ODE model affects the results from a static and dynamic estimation. The differential equation studied is

StartFraction d y Over d t EndFraction equals a minus a y

The analytical solution to this differential equation is

y equals 1 minus normal e normal x normal p left-parenthesis minus a t right-parenthesis

The first data set contains errors that are strictly additive and independent. The data for this estimation are generated by the following DATA step:

data drive1;
   a = 0.5;
   do iter=1 to 100;
      do time = 0 to 50;
         y = 1 - exp(-a*time) + 0.1 *rannor(123);
         output;
      end;
   end;
run;

The second data set contains errors that are cumulative in form:

data drive2;
   a = 0.5;
   yp = 1.0 + 0.01 *rannor(123);
   do iter=1 to 100;
      do time = 0 to 50;
         y = 1 - exp(-a)*(1 - yp);
         yp = y + 0.01 *rannor(123);
         output;
      end;
   end;
run;

The following statements perform the 100 static estimations for each data set:

title1 'Monte Carlo Simulation of ODE';

proc model data=drive1 noprint;
   parm a 0.5;
   dert.y = a - a * y;
   fit y / outest=est;
   by iter;
run;

Similar statements are used to produce 100 dynamic estimations with a fixed and an unknown initial value. The first value in the data set is used to simulate an error in the initial value. The following PROC UNIVARIATE statements process the estimations:

proc univariate data=est noprint;
   var a;
   output out=monte mean=mean p5=p5 p95=p95;
run;

proc print data=monte;
run;

The results of these estimations are summarized in Table 6.

Table 6: Monte Carlo Summary, A=0.5

Estimation Additive Error Cumulative Error
Type mean p95 p5 mean p95 p5
Static 0.77885 1.03524 0.54733 0.57863 1.16112 0.31334
Dynamic fixed 0.48785 0.63273 0.37644 3.8546E24 8.88E10 -51.9249
Dynamic unknown 0.48518 0.62452 0.36754 641704.51 1940.42 -25.6054


For this example model, it is evident that the static estimation is the least sensitive to misspecification.

Last updated: June 19, 2025