RE: calculation of time-to-nadir
From: "Olofsen, E. (ANST)" E.Olofsen@lumc.nl
Subject: RE:[NMusers] calculation of time-to-nadir
Date: Tue, August 3, 2004 9:15 am
Nick,
I've adapted your example control file (see below) to simulate a set
of cases (9999) with different values of K, to study the performance
of TNAD, which is the estimator of TMIN. Across the set of cases,
there seems to be no significant dependence on TINC, while TOL does
increase precision with an order of magnitude. It must be noted
however, that TMIN is considerably less well estimated than NADIR.
Erik
TINC mean(TNAD-TMIN) SD(TNAD-TMIN)
100 0.00897 0.0279 TOL=6
10 0.00707 0.0267
1 0.00728 0.0248
100 0.000716 0.00268 TOL=7
10 0.000760 0.00263
1 0.000728 0.00274
100 6.43E-05 0.000261 TOL=8
10 8.26E-05 0.000264
1 7.29E-05 0.000259
100 7.74E-06 2.65E-05 TOL=9
10 8.05E-06 2.66E-05
1 8.05E-06 2.70E-05
$PROBLEM Nadir
$INPUT ID TIME AMT CMT DV
$DATA nadir.d
$SUBROUTINES ADVAN6 TOL=6
$MODEL
COMP = CENTRAL
COMP = EFFECT
COMP = NADIR
COMP = TMIN
$PK
K = THETA(1)*EXP(ETA(1))
KOUT = THETA(2)
C0 = THETA(3)
SLOPE = THETA(4)
KIN=KOUT*C0
F2=C0
$DES
DCP=A(1)
DCE=A(2)
DADT(1) = -K*DCP
D2 = KIN*(1-SLOPE*DCP) - DCE*KOUT
DADT(2) = D2
IF (D2.LT.0) THEN
DADT(3) = D2 ; Y(3) is conc 'lost' from effect site
DADT(4) = 1 ; Y(4) is elapsed time up to nadir
ELSE
DADT(3) = 0
DADT(4) = 0
ENDIF
$ERROR
CP = A(1)
CE = A(2)
NADIR = C0+A(3)
TNAD = A(4)
;Theoretical time of nadir for limear PD model
TMIN = (LOG(K)-LOG(KOUT))/(K-KOUT)
;Analytical solutions of CP and CE
CPA = 100*EXP(-K*TIME)
DM1 = KIN*SLOPE*100
DM2 = KIN/KOUT
DM3 = DM1/(K-KOUT)
CEA = (F2-DM2-DM3)*EXP(-KOUT*TIME)+DM3*EXP(-K*TIME)+DM2
; Analytical minimum of CE
CEMIN = (F2-DM2-DM3)*EXP(-KOUT*TMIN)+DM3*EXP(-K*TMIN)+DM2
IF (TIME.EQ.0) THEN
ERRA = 0
ERRB = 0
ERRM = 0
ERRT = 0
ELSE
ERRA = CP-CPA
ERRE = CE-CEA
ERRM = NADIR-CEMIN
ERRT = TNAD-TMIN
ENDIF
Y = CE*(1+ERR(1))
$THETA
0.01 ; k
0.03 ; keq
100 ; C0
0.01 ; Slope
$OMEGA
0.01
$SIGMA
0 FIX
0.001 ; cverr
$SIM (123456) SUBPROBLEMS=1 ONLYSIM
$TABLE ID TIME CP CPA ERRA CE CEA ERRE NADIR CEMIN ERRM TNAD TMIN ERRT
NOPRINT NOHEADER FILE=stream
Awk (-v NID=nid -v TINC=tinc) file to generate a data file:
BEGIN {
print "#ID TIME AMT CMT DV"
for (id=1; id<=NID; id++) {
print id, "0 1 2 ."
print id, "0 100 1 ."
for (t=0; t<=100; t+=TINC) print id, t, ". . .";
}
}
_______________________________________________________