From: KazimierzSubject: [NMusers] avoiding when ETA()=0 Date:Tue, 11 Feb 2003 17:52:43 +0100 Dear NM users, I would like test some algorithms with ETA(). For example: (arithmetic expression)/(ABS(ETA(1)) + ABS(ETA(2))). My question is When ETA()=0 during the run (FOCE, INTERACTION)? I tryed adding a small mumber (0.1E-06) - but it caused great gradient values. I shoul greatly appreciate for indicating me a way for avoiding sytuations when particular ETA's=0 (testing ICALL?). Kazimierz H. Kozlowski, Pharm.D. The Children's Memorial Health Institute Laboratory of Pharmacokinetic Warsaw, Poland E-mail: khkoz@czd.waw.pl _______________________________________________________ From: VPIOTROV@PRDBE.jnj.com Subject:RE: [NMusers] avoiding when ETA()=0 Date: Wed, 12 Feb 2003 14:57:59 +0100 Kazimierz, A general method of avoiding some value of ETA is via the EXIT option within IF statments, e.g., ... IF (ETA(1).EQ.0) EXIT 1 100 IF (ETA(2).EQ.0) EXIT 1 200 ... $EST .......... NOABORT Hope it will work in your case. Best regards, Vladimir _______________________________________________________ From: Kazimierz Subject:Re: [NMusers] avoiding when ETA()=0 Date: Wed, 12 Feb 2003 16:37:41 +0100 Dear Dr Piotrovski, Thank you for your response. The NONMEM during some ICALL (<2?) probably requires ETA()=0 when $PK or $ERROR calling. Assuming that individual error is mainly <>0, EXIT could be correct only in some ICALL=2, ICALL=4. For examample: $PK ER1=SQR(ETA(1)*ETA(1)) ER2=SQR(ETA(2)*ETA(2)) ER12=ER1+ER2 IF (ICALL.GE.2.AND.ER12.EQ.0) EXIT 1,100 IF (ICALL.GE.2.AND.ER12.NE.0) THEN VD=(ER2*(TVVD1+ETA(1))+ER1*(TVVD2+ETA(2)))/ER12 ENDIF IF (ICALL.LT.2.AND.ER1.EQ.0) VD=TVVD1 ; when during initialization some ETA()=0 ? IF (ICALL.LT.2.AND.ER2.EQ.0) VD=TVVD2 ; when ER12=0 VD=TVVD1= TVVD2 $EST ...FOCE INTERACTION....... NOABORT sincerely Yours Kazimierz H. Kozlowski, Pharm.D. The Children's Memorial Health Institute Laboratory of Pharmacokinetic Warsaw, Poland E-mail: khkoz@czd.waw.pl _______________________________________________________ From:VPIOTROV@PRDBE.jnj.com Subject:RE: [NMusers] avoiding when ETA()=0 Date: Thu, 13 Feb 2003 10:29:43 +0100 Kazimierz, You are right, IF(ETA(1).EQ.0) EXIT 1 100 cannot be used here because NONMEM fixes ETAs to zero at certain calls to $PK. This can only be used to protect from overflow if ETA becomes too high or too low, and EXP(ETA(.)) is used as the random effect model, e.g., IF(ABS(ETA(1)).GT.30) EXIT 1 100 Best regards, Vladimir _______________________________________________________