Re: Error model
Hi James,
We should divide by F (that is what happens when write an email at 3 AM).
Anyway this error model was proposed by Mat and discussed in Beal 's paper (
/Ways to Fit a PK Model with Some Data Below the Qunatification Limit/ J.
Pharmacokin.Pharamcodyn. 28, p. 481-504.)
So the code should be as in Eq. 11 (above paper)
Y=LOG(F)+SQRT(THETA(n-1)**2+THETA(n)**2/F**2)*EPS(1)
with
$SIGMA 1 FIX
Best,
Nidal
Quoted reply history
On 10/8/07, James G Wright <[EMAIL PROTECTED]> wrote:
>
> Hi Nidal,
>
> As you have modified the code to prevent F going below 1, it looks
> like you did intend to divide by IPRED (set equal to LOG(F)) in the
> weighting expression..?
>
> If so, this gives an F/LOG(F) weighting term, which is an innovative error
> model, never previously mentioned before on the NMuser list to my
> knowledge.
>
> Best regards, James
>
> James G Wright PhD
> Scientist
> Wright Dose Ltd
> Tel: 44 (0) 772 5636914
> www.wright-dose.com
>
> -----Original Message-----
> *From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> *On Behalf Of [EMAIL PROTECTED]
> *Sent:* 05 October 2007 17:32
> *To:* James G Wright
> *Cc:* [email protected]
> *Subject:* Re: [NMusers] Error model
>
> Hi James,
>
> This error model was discussed in the following NM threads.
>
> http://www.cognigencorp.com/nonmem/nm/99apr232002.html
>
>
>
> http://www.cognigencorp.com/nonmem/nm/98jun022003.html
>
>
> To prevent division by zero
>
>
>
> $ERROR
>
> TY=F
>
> IF(F.GT.1) THEN
>
> TY=LOG(F)
>
> ELSE
>
> TY=0.025
>
> ENDIF
>
> IPRED=TY
>
> W=SQRT(THETA(n-1)**2+THETA(n)**2/IPRED**2) ; log transformed data
>
> Y=TY+W*EPS(1)
>
>
>
> $SIGMA 1 FIX
>
>
>
> Best,
>
> Nidal
>
>
>
>
> On 10/5/07, James G Wright <[EMAIL PROTECTED]> wrote:
> >
> > Hi Leonid,
> >
> > In the original email, IPRED = LOG(F) and division by LOG(F) leads to a
> > division by zero when F=1, hence there was definitely a typo
> > somewhere...
> >
> > Of course, this isn't the case in your revised version, however you have
> > introduced a dependence on F (as a reciprocal for the additive term)
> > which reintroduces all of the ELS problems (where your variances can
> > bias your means) that we were trying to avoid by going to the log-scale
> > in the first place. Because F is now entering as a reciprocal which
> > leads to very big numbers when F is small, I expect this method would
> > perform worse than working on the original scale.
> >
> > Best regards, James
> >
> >
> >
> >
> >
> >
> > James G Wright PhD
> > Scientist
> > Wright Dose Ltd
> > Tel: 44 (0) 772 5636914
> > www.wright-dose.com
> >
> >
> > -----Original Message-----
> > From: Leonid Gibiansky [mailto:[EMAIL PROTECTED]
> > Sent: 05 October 2007 13:33
> > To: James G Wright
> > Cc: [email protected]
> > Subject: Re: [NMusers] Error model
> >
> >
> > James,
> > The division in the expression for the error is not a typo.
> > The line of thoughts is:
> >
> > Y=F*EXP(sqrt(theta^2+(theta/F)^2)eps) ;
> > F*(1+sqrt(theta^2+(theta/F)^2)eps) ; linearization
> > F+F* eps1 + F*eps2/F= ; rewiring as 2 epsilons
> > F(1+eps1)+ eps2 ; combined error model
> >
> > Leonid
> >
> >
> > --------------------------------------
> > Leonid Gibiansky, President
> > QuantPharm LLC: www.quantpharm.com
> > e-mail: LGibiansky at quantpharm.com
> > tel: (301) 767 5566
> >
> >
> > James G Wright wrote:
> > > If Y is the original observed data, then the log-transformed error
> > > model is
> > >
> > > LOG (Y) = LOG (F) + EPS(1)
> > >
> > > We can exponentiate both sides to get an approximately proportional
> > > error model:-
> > >
> > > Y = F * EXP( EPS(1) ).
> > >
> > > The advantage of the above approach is that the mean and variance
> > > terms
> > > are independent (if the data are log-transformed in the data file).
> > > This avoids instabilities caused by NONMEM biasing the mean prediction
> >
> > > to get "better" variance terms - a known problem for ELS-type methods
> > > since 1980. Unfortunately, we can't apply the same trick to the ETAs
> > > because they are not directly observed.
> > >
> > > However, the model proposed as "additive and proportional" by Nidal is
> >
> > >
> > > LOG (Y) = LOG (F) + W*EPS(1)
> > >
> > > Exponentiating to get
> > >
> > > Y = F*EXP( W*EPS(1) )
> > >
> > > where W= SQRT (THETA(n-1)**2 + THETA(n)**2 * LOG(F)**2). I'm assuming
> > > the division sign in the original email was a typo, as
> > > THETA(n)**2/LOG(F)**2 goes to infinity when F approaches 1. Rewriting
> >
> > > with separate estimated epsilons instead of estimated thetas for
> > clarity
> > > gives:-
> > >
> > > Y = F * EXP( EPS(1) + LOG(F)*EPS(2) )
> > > = F * EXP( EPS(1) ) * EXP( LOG(F)*EPS(2) )
> > >
> > > which is vaguely like having an error term proportional to LOG(F)
> > > working multiplicatively with a standard proportional error model.
> > > After linearization, you obtain something like
> > >
> > > Y = F + F * EPS(1) + F * LOG(F) * EPS(2)
> > >
> > > which gives a F * LOG(F) weighting term, as opposed to the constant
> > > weighting term required for an additive model.
> > >
> > > Incidentally, IF ( F.EQ.0) "TY" should equal a very large negative
> > > number
> > > (well, minus infinity). Either you replace zeroes in a
> > log-proportional
> > > model with a small number or you discard them, setting LOG (F) = 0 is
> > > like setting F=1 if (F.EQ.0).
> > >
> > > Best regards,
> > >
> > >
> > > James G Wright PhD
> > > Scientist
> > > Wright Dose Ltd
> > > Tel: 44 (0) 772 5636914
> > > www.wright-dose.com http://www.wright-dose.com/
> > >
> > > -----Original Message-----
> > > *From:* [EMAIL PROTECTED]
> > > [mailto:[EMAIL PROTECTED] *On Behalf Of
> > > [EMAIL PROTECTED]
> > > *Sent:* 05 October 2007 08:13
> > > *To:* navin goyal
> > > *Cc:* nmusers
> > > *Subject:* Re: [NMusers] Error model
> > >
> > > Hi Navin,
> > >
> > > You could try both additive and proportional error model
> > > $ERROR
> > >
> > > TY=F
> > >
> > > IF(F.GT.0) THEN
> > >
> > > TY=LOG(F)
> > >
> > > ELSE
> > >
> > > TY=0
> > >
> > > ENDIF
> > >
> > > IPRED=TY
> > >
> > > W=SQRT(THETA(n-1)**2+THETA(n)**2/IPRED**2) ; log transformed
> > data
> > > Y=TY+W*EPS(1)
> > >
> > >
> > >
> > > $SIGMA 1 FIX
> > >
> > > Best,
> > >
> > > Nidal
> > >
> > >
> > >
> > > Nidal Al-Huniti, PhD
> > >
> > > Strategic Consulting Services
> > >
> > > Pharsight Corporation
> > >
> > > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> > >
> > >
> > >
> > >
> > >
> > > On 10/4/07, *navin goyal* <[EMAIL PROTECTED]
> > > <mailto:[EMAIL PROTECTED]>> wrote:
> > >
> > > Dear Nonmem users,
> > >
> > > I am analysing a POPPK data with sparse sampling
> > > The dosing is an IV infusion over one hour and we have data
> > for
> > > time points 0 (predose), 1 (end of infusion) and 2 (one hour
> > > post infusion)
> > > The drug has a half life of approx 4 hours. The dose is given
> > > once every fourth day
> > > When I ran my control stream and looked at the output table, I
> > > got some IPREDs at time predose time points where the DV was 0
> > > the event ID EVID for these time points was 4 (reset)
> > > (almost 20 half lives)
> > > I was wondering why did NONMEM predict concentrations at these
> > > time points ?? there were a couple of time points like this.
> > >
> > > I started with untransformed data and fitted my model.
> > > but after bootstrapping the errors on etas and sigma were
> > > very high.
> > > I log transformed the data , which improved the etas but the
> > > sigma shot upto more than 100%
> > > ( is it because the data is very sparse ??? or I need to use a
> > > better error model ???)
> > > Are there any other error models that could be used with the
> > log
> > > transformed data, apart from the
> > > Y=Log(f)+EPS(1)
> > >
> > >
> > > Any suggestions would be appreciated
> > > thanks
> > >
> > > --
> > > --Navin
> > >
> > >
> >
> >
>