From: Kazimierz 
Subject: [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
_______________________________________________________