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
The analytical solution to this differential equation is
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 19.5.
Table 19.5: 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.