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
avoiding when ETA()=0
4 messages
2 people
Latest: Feb 13, 2003
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
_______________________________________________________