Simulation returns negative CP values

3 messages 3 people Latest: Apr 07, 2014

Simulation returns negative CP values

From: Matthew Hui Date: April 07, 2014 technical
Dear all, I just finished building my model and I am going onto the simulation. However I constantly generated some negative CP values without being able to identify the underlying problem. Here is my control stream: $SUBROUTINE ADVAN2 TRANS1 $PK ;ETA SIMULATION - LIMIT TO 3*SD IF (ICALL.EQ.4.AND.NEWIND.NE.2) THEN DO WHILE (ABS(ETA(1)).GT.0.594) ; 0.594 = SQRT(0.0392)*3 CALL SIMETA(ETA) ENDDO ENDIF ;CLEARANCE TVCL=THETA(1) CL=TVCL*(1+(THETA(5)*LOG(CYP2B6+1)))*(1+(THETA(4)*((WT/63.5)-1)))*(1+ETA(1)) ;VOLUME OF DISTRIBUTION TVVD=THETA(2) V=TVVD S2=V ;REQUIRED CONSTANT K=CL/V KA=THETA(3) REPI=IREP $THETA 2.51 ; THETA(1) 200 ; THETA(2) 0.445 ; THETA(3) FIXED 0.368 ; THETA(4) 2.88 ; THETA(5) $ERROR IF (ICALL.EQ.4.AND.NEWIND.NE.2) THEN DO WHILE (ABS(EPS(1)).GT.0.863) ; 0.863 = SQRT(0.0827)*3 CALL SIMEPS(EPS) ENDDO ENDIF Y=F*(1+EPS(1)) $OMEGA 0.0392 $SIGMA 0.0827 $SIMULATION (2315625 NORMAL NEW) SUBPROBLEMS=10 I wonder if that was due to some ETA(1) or EPS(1) less than -1 being generated. But I thought I had already used the whileloop to avoid this from happening. Thanks in advance, matthew

RE: Simulation returns negative CP values

From: Bill Denney Date: April 07, 2014 technical
Hi Matthew, It looks like you're going to some rather extreme efforts to achieve your goal, and dependent on your assay, having negative CP values may not be wrong. For the negative CP values, usually a PK assay has a component of both additive and either proportional or exponential error from the basal noise in the measurement (additive) and the layering of that noise with the integration routine (proportional/exponential). When your assay has a low LOQ and/or you are simulating to times below that LOQ, your simulation can have random error (via additive EPS) that will go negative. This is normal and to be expected. There are a few ways to manage this, though I've not seen the method of attempting to ensure that the value is ≤3 stdev from the mean before. A more typical method of handing it would be like: IIVCL=ETA(1) IF (IIVCL .LE. -0.594) IIVCL=-0.594 IF (IIVCL .GE. 0.594) IIVCL=0.594 Though, usually a well-defined ETA standard deviation should not need to be truncated. (Sometimes with PD it is required-especially with questionnaires but with PK it is not very common.) Needing to truncate this may be a sign that additional model evaluation (especially around the shrinkage of your etas) should be considered. For LOQ questions, I more commonly handle this during post-processing by flagging simulated values as BLQ if they are below the assay LOQ and then using that in the plotting (e.g. for plotting show them as 0.5*LOQ and compare the percentage of simulated vs. observed values with a given dose/treatment/regimen at a time point that are BLQ as one of the simulation goodness-of-fit evaluations. Thanks, Bill
Quoted reply history
From: [email protected] [mailto:[email protected]] On Behalf Of Matthew Hui Sent: Monday, April 07, 2014 4:39 AM To: NONMEM user network (for question and remarks) Subject: [NMusers] Simulation returns negative CP values Dear all, I just finished building my model and I am going onto the simulation. However I constantly generated some negative CP values without being able to identify the underlying problem. Here is my control stream: $SUBROUTINE ADVAN2 TRANS1 $PK ;ETA SIMULATION - LIMIT TO 3*SD IF (ICALL.EQ.4.AND.NEWIND.NE.2) THEN DO WHILE (ABS(ETA(1)).GT.0.594) ; 0.594 = SQRT(0.0392)*3 CALL SIMETA(ETA) ENDDO ENDIF ;CLEARANCE TVCL=THETA(1) CL=TVCL*(1+(THETA(5)*LOG(CYP2B6+1)))*(1+(THETA(4)*((WT/63.5)-1)))*(1+ETA(1)) ;VOLUME OF DISTRIBUTION TVVD=THETA(2) V=TVVD S2=V ;REQUIRED CONSTANT K=CL/V KA=THETA(3) REPI=IREP $THETA 2.51 ; THETA(1) 200 ; THETA(2) 0.445 ; THETA(3) FIXED 0.368 ; THETA(4) 2.88 ; THETA(5) $ERROR IF (ICALL.EQ.4.AND.NEWIND.NE.2) THEN DO WHILE (ABS(EPS(1)).GT.0.863) ; 0.863 = SQRT(0.0827)*3 CALL SIMEPS(EPS) ENDDO ENDIF Y=F*(1+EPS(1)) $OMEGA 0.0392 $SIGMA 0.0827 $SIMULATION (2315625 NORMAL NEW) SUBPROBLEMS=10 I wonder if that was due to some ETA(1) or EPS(1) less than -1 being generated. But I thought I had already used the whileloop to avoid this from happening. Thanks in advance, matthew

Re: Simulation returns negative CP values

From: Penny Zhu Date: April 07, 2014 technical
Hi Matthew. I see what you are trying to do by bounding the eta. Is it possible to output the eta values for each subject/data record and verify that the eta is correctly bounded( no eta less then -1) Sent from my iPhone
Quoted reply history
On Apr 7, 2014, at 5:16 AM, "Matthew Hui" <[email protected]<mailto:[email protected]>> wrote: Dear all, I just finished building my model and I am going onto the simulation. However I constantly generated some negative CP values without being able to identify the underlying problem. Here is my control stream: $SUBROUTINE ADVAN2 TRANS1 $PK ;ETA SIMULATION - LIMIT TO 3*SD IF (ICALL.EQ.4.AND.NEWIND.NE.2) THEN DO WHILE (ABS(ETA(1)).GT.0.594) ; 0.594 = SQRT(0.0392)*3 CALL SIMETA(ETA) ENDDO ENDIF ;CLEARANCE TVCL=THETA(1) CL=TVCL*(1+(THETA(5)*LOG(CYP2B6+1)))*(1+(THETA(4)*((WT/63.5)-1)))*(1+ETA(1)) ;VOLUME OF DISTRIBUTION TVVD=THETA(2) V=TVVD S2=V ;REQUIRED CONSTANT K=CL/V KA=THETA(3) REPI=IREP $THETA 2.51 ; THETA(1) 200 ; THETA(2) 0.445 ; THETA(3) FIXED 0.368 ; THETA(4) 2.88 ; THETA(5) $ERROR IF (ICALL.EQ.4.AND.NEWIND.NE.2) THEN DO WHILE (ABS(EPS(1)).GT.0.863) ; 0.863 = SQRT(0.0827)*3 CALL SIMEPS(EPS) ENDDO ENDIF Y=F*(1+EPS(1)) $OMEGA 0.0392 $SIGMA 0.0827 $SIMULATION (2315625 NORMAL NEW) SUBPROBLEMS=10 I wonder if that was due to some ETA(1) or EPS(1) less than -1 being generated. But I thought I had already used the whileloop to avoid this from happening. Thanks in advance, matthew