From: Justin Wilkins <jwilkins@uctgsh1.uct.ac.za>
Subject: [NMusers] Hessians of posterior density
Date: 6/29/2003 6:02 AM
Hi all,
Can anyone shed some light on situations that might give rise to errors
like the one below?
<usual output file stuff>
MONITORING OF SEARCH:
0HESSIAN OF POSTERIOR DENSITY IS NON-POSITIVE-DEFINITE DURING SEARCH
In my case it came up when I fixed the additive error component
(THETA(4)) in my model to zero: W=SQRT(THETA(4)**2+THETA(5)**2*F*F)
(using the $SIGMA 1 FIX trick).
Works fine when THETA(4) is unfixed - result is -4.18E-5 with an SE of
135, which suggests that it ought to be irrelevant. But take it out and
it collapses. I'm assuming that it's just the very first round of
calculations that are breaking, but I'm not sure how to get around it.
Justin
Hessians of posterior density
6 messages
5 people
Latest: Jul 01, 2003
From: William Bachman <bachmanw@globomax.com>
Subject: RE: [NMusers] Hessians of posterior density
Date: 6/29/2003 12:40 PM
Have you considered constraining theta(4) to be greater than zero? Your
theta's 4 & 5 are replacing epsilons which are modeled as variances by
NONMEM (and would automatically be constrained to being positive).
From: Justin Wilkins <jwilkins@uctgsh1.uct.ac.za>
Subject: RE: [NMusers] Hessians of posterior density
Date: 6/30/2003 3:45 AM
I had thought about it, but apart from being more correct, how would it
affect the error? It's still fixed to zero.
Running with the term, but with THETA(4) constrained to be positive,
yields practically identical results, except that additive error is
microscopically small and positive instead of microscopically small and
negative... it doesn't seem to be a necessary part of the model but the
model won't run without it.
It works when fixed to 1x10-5 but this seems to me to be a bit of a
workaround rather than a real solution, and produces no improvement in
OBJ.
Justin
From: Nick Holford <n.holford@auckland.ac.nz>
Subject: RE: [NMusers] Hessians of posterior density
Date: 6/30/2003 4:04 AM
Justin,
I think it might be more productive counting angels on pinheads.
An important thing to keep in mind is that real computers have to use
approximations to real numbers. When its close enough to zero that you
don't care then its time to call it quits.
Nick
--
Nick Holford, Dept Pharmacology & Clinical Pharmacology
University of Auckland, 85 Park Rd, Private Bag 92019, Auckland, New Zealand
email:n.holford@auckland.ac.nz tel:+64(9)373-7599x86730 fax:373-7556
http://www.health.auckland.ac.nz/pharmacology/staff/nholford/
From: Vladimir Piotrovsky <VPIOTROV@PRDBE.jnj.com>
Subject: RE: [NMusers] Hessians of posterior density
Date: 6/30/2003 4:42 AM
Justin,
I would recommend you to try the transform-both-side approach with the log
transformation of DV and model predictions. Your $ERROR section may look as
follows:
$ERROR CALLFL=0 ; with this flag $ERR is called with obs records only
IPRE = -5 ; an arbitrary value that you can modify if something is going
wrong
IF(F.GT.0) IPRE=LOG(F)
Y = IPRE + ERR(1)
Best regards,
Vladimir
From: Luann Phillips <luann.phillips@cognigencorp.com>
Subject: Re: [NMusers] Hessians of posterior density
Date: 7/1/2003 7:57 PM
Justin,
Given that the estimate of theta4 is approaching zero (or is zero) then
the additive + constant CV error model simplifies to a constant CV error
model (W=F).
When coding the constant CV error model, I suggest using the following
code to prevent division by zero for dose records (F=0 usually for first
dose).
IPRED=F
IF(AMT.NE.0)W=1
IF(AMT.EQ.0)W=F
IRES=DV-IPRED
IWRES=IRES/W
Changing the weight for DOSE records will not effect the MVOF. If you
obtain a predicted concentration of zero on an observation record (run
may terminate), you will need to determine how to handle that on a case
by case basis. Maybe the concentration is obtained at a very late time
after the dose and really shouldn't be observable (i.e., a dose time
error or sample time error or assay error) and therefore could be
deleted from the database. If you do want to keep the concentration then
you could try something like the following:
SCP=0.00001
IPRED=F
IF(AMT.NE.0)W=1
IF((AMT.EQ.0).AND.(F.EQ.0)) IPRED=F+ SCP ;predicted conc=0 on obs.
record
IF((AMT.EQ.0).AND.(F.NE.0)) IPRED=F ;normal observation record
If you choose to do this, I would suggest testing smaller and smaller
values of SCP until you get the same value of the MVOF for 2 successive
SCP values. This would ensure that the concentrations with the altered
predicted values do not have undue influence on the MVOF.
Incorporating the following 2 lines in your current code with theta4
fixed to zero may also work. In the current code, if you obtain a
predicted of zero on a dose record then W=SQRT(0+theta5*0*0)=0 and
IWRES=IRES/0 which might be the root of the error.
IF(AMT.NE.0)W=1
IF(AMT.EQ.0)W=F
Regards,
Luann
_______________________________________________________