Hessians of posterior density

6 messages 5 people Latest: Jul 01, 2003

Hessians of posterior density

From: Justin Wilkins Date: June 29, 2003 technical
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

RE: Hessians of posterior density

From: William Bachman Date: June 29, 2003 technical
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).

RE: Hessians of posterior density

From: Justin Wilkins Date: June 30, 2003 technical
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

RE: Hessians of posterior density

From: Nick Holford Date: June 30, 2003 technical
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/

RE: Hessians of posterior density

From: Vladimir Piotrovskij Date: June 30, 2003 technical
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

Re: Hessians of posterior density

From: Luann Phillips Date: July 01, 2003 technical
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 _______________________________________________________