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
--
--Navin
Error model
10 messages
5 people
Latest: Oct 11, 2007
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]
Quoted reply history
On 10/4/07, navin goyal <[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
In regard to Navin's original problem, the most likely cause (in most
datasets) is that you have some very small F's (NONMEM predictions) at
the late time-points, e.g. log (.0001)=-9.2. If your observed value was
say .01, this is a hundred-fold difference so the residual is equal to
about -4.6. A few of these can inflate your sigma estimate
substantially. The next question is not can you fix it, but whether you
should. The fix is simply to reset these F to a higher level (e.g half
BQL) but this involves creating a discontinuity in the first derivative
(e.e a sudden change in the relationship between F and the weighting of
a data point, which slightly compromises the original purpose of the
log-transformation). If there is significant additive error, then it
is better to estimate the model on the absolute scale.
In Navin's case the pre-dose time-points (96h post-dose for a drug with
a "4h half-life") should be zero unless there is a second compartment.
If they are all BQL, it would not be unreasonable to discard them (set
MDV=1). The dataset sound very sparse, particularly as end-of-infusion
time-points are notoriously noisy in practise.
Best regards, James
James G Wright PhD
Scientist
Wright Dose Ltd
Tel: 44 (0) 772 5636914
www.wright-dose.com http://www.wright-dose.com/
Quoted reply history
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of navin goyal
Sent: 04 October 2007 21:20
To: nmusers
Subject: [NMusers] Error model
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
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/
>
Quoted reply history
> -----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
Navin,
Another model that can be applied in the log-transofrmed domain is documented in:
http://huxley.phor.com/nonmem/nm/99apr242002.html
and
http://huxley.phor.com/nonmem/nm/99jan071999.html
It has similar properties of the ADD+PROP in the log domain. The concentrations that are low are weighted less. In fact since it is in the log domain, the concentrations that are high are weighted lower as well, meaning the middling concentrations have the highest weight. It is mentioned in:
SL Beal. /Ways to Fit a PK Model with Some Data Below the Qunatification Limit/ J. Pharmacokin.Pharamcodyn. 28, p. 481-504.
It is given in Equation 11. He states
"Logrithmically tranformed ... observations whos pharmacokientic predictions become theretically small, but both their centraltendency and variance seem to remain constant and above certain levels (assuming that the assay is accurate, this can only happen with the kinetics are misspecified), in which case another useful model for the logrithmically transformed observations is ... (EQ 11 here) .. where m is an extra positively constraned parameters."
Just FYI.
Matthew Fidler
[EMAIL PROTECTED]
navin goyal 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
>
> --
>
> --Navin
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 http://www.wright-dose.com/
Quoted reply history
-----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/99apr232002.html
http://www.cognigencorp.com/nonmem/nm/98jun022003.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]>
> [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]>
<mailto:[EMAIL PROTECTED]>
>
>
>
>
>
> On 10/4/07, *navin goyal* <[EMAIL PROTECTED]
<mailto:[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
>
>
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
> > >
> > >
> >
> >
>
Nidal,
Another method that would give slightly different results is by using the EPS terms to code a model like (11) in Beals' paper
Using a first order taylors series expansion to the log equaivalant of Beal's (11) we have:
Y= F*exp(eps(1)) + m*exp(eps(2))
log Y = log(f*exp(eps(1))+m*exp(eps(2))
Using a Taylor Series expansion this becomes
log Y = log(f+m) + f/(f+m)*eps(1) + m/(f+m)*eps(2)
Using an eps allows unique points to get different values (thetas would allow a population estimate of the variability).
Since the expectation of log Y is not F, the PRED is miscalculated by NONMEM and should be calculated separately (as well as RES). Therefore a possibility for the error model discussed by Beal is:
$ABBREVIATED COMRES=1 COMSAV=1
...
$ERR
M=THETA(x)
IPRED=F+M ; Individual prediction (regular scale)
IF(COMACT.EQ.1)COM(1)=IPRED
PPRED=COM(1) ; Population prediction (regular scale)
PRED=DV-PPRED
IPRED=DV-IPRED
Y=LOG(IPRED)+F/IPRED*EPS(1)+M/IPRED*EPS(2)
IWRES can be calculated outsider or by using a ratio for EPS(1) and EPS(2), setting it to be a theta and then multiplying by a unfixed THETA. This requires an assumptions that:
* EPS(1) is positive, EPS(2) is positive as well (this is also true
the additive+proprotional case but is used often to calculated IWRES.)
* One of the error terms is better described at a population level
For example
$ABBREVIATED COMRES=1 COMSAV=1
...
$ERR
M=THETA(x)
S=THETA(x+1)
IPRED=F+M ; Individual prediction (regular scale)
IF(COMACT.EQ.1)COM(1)=IPRED
PPRED=COM(1) ; Population prediction (regular scale)
PRED=DV-PPRED
IPRED=DV-IPRED
Y=LOG(IPRED)+F/IPRED*S+M/IPRED*S*EPS(2)
IWRES=IPRED-log(F+M)/(sqrt(F^2/((F+M)^2)+M^2S^2/((F+M)^2)))
S=sqrt(var(EPS(2))/var(EPS(1)))
Nidal gives another model that assumes that both the error terms are explained at a population level and should be related to 11.
Matt Fidler (not that Mat refered to in Nidals' email I think its Mats K.)
[EMAIL PROTECTED] wrote:
> 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] < mailto:[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 http://www.wright-dose.com/
>
> -----Original Message-----
> *From:* [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> [mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>] *On Behalf Of *
> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> *Sent:* 05 October 2007 17:32
> *To:* James G Wright
> *Cc:* [email protected] <mailto:[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/99apr232002.html
>
> http://www.cognigencorp.com/nonmem/nm/98jun022003.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]
> <mailto:[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 http://www.wright-dose.com/
>
> -----Original Message-----
> From: Leonid Gibiansky [mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>]
> Sent: 05 October 2007 13:33
> To: James G Wright
> Cc: [email protected] <mailto:[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
> http://www.quantpharm.com/
> e-mail: LGibiansky at quantpharm.com http://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/
>
> http://www.wright-dose.com/
>
> > -----Original Message-----
> > *From:* [EMAIL PROTECTED]
>
> <mailto:[EMAIL PROTECTED]>
>
> > [mailto: [EMAIL PROTECTED]
>
> <mailto:[EMAIL PROTECTED]>] *On Behalf Of
>
> > [EMAIL PROTECTED]
>
> <mailto:[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]><mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>
>
> > On 10/4/07, *navin goyal* <[EMAIL PROTECTED]
>
> <mailto:[EMAIL PROTECTED]>
>
> > <mailto: [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
Hi Matt,
Maybe I dont understand the coding part completely.... however in the
suggested..
IPRED=F+M ; Individual prediction (regular scale)
IF(COMACT.EQ.1)COM(1)=IPRED
PPRED=COM(1) ; Population prediction (regular scale)
PRED=DV-PPRED
IPRED=DV-IPRED ?????? IPRED=IPRED??
I was wondering what is
PRED=DV-PPRED
IPRED=DV-IPRED
Also could you please elaborate on the code with regards to data
transformation. Does it mean that I use my untransformed data to run the
code ???
Thanks again
Thanks to everyone for their replies
Navin
navin goyal wrote:
> Hi Matt,
>
> Maybe I dont understand the coding part completely.... however in the suggested..
>
> IPRED=F+M ; Individual prediction (regular scale)
> IF(COMACT.EQ.1)COM(1)=IPRED
> PPRED=COM(1) ; Population prediction (regular scale)
> PRED=DV-PPRED
> IPRED=DV-IPRED ?????? IPRED=IPRED??
Sorry, I mistyped the residuals:
PRED should have been PRES which is the population residuals on a normal scale. IRED should have been IRES which is the individual residuals on a normal scale.
Unfortunately, since DV is log transformed this does not quite work (sorry for not checking the residuals). On a log scale, the population residuals, population weighted residuals, and indivdual residuals can be calculated as with the following code.
M=THETA(x)
IPRED=F+M
IRES=DV-LOG(IPRED)
IF(COMACT.EQ.1)COM(1)=IPRED
PPRED=COM(1) ; Population Prediction (regular scale)
PRES=DV-LOG(PPRED)
PW=SQRT((PPRED-M)**2/(PPRED**2)+M**2/PPRED**2)
PWRES=PRES/PW
Y=LOG(IPRED)+F/IPRED*EPS(1)+M/IPRED*EPS(2)
Outside NONMEM, the Individual Weighted residuals can be calculated as:
w=sqrt(((IPRED-m)^2*vareps1+m.^2*vareps2)/(ipred^2));
iwres=ires/w;
> I was wondering what is
> PRED=DV-PPRED
> IPRED=DV-IPRED
>
> Also could you please elaborate on the code with regards to data transformation. Does it mean that I use my untransformed data to run the code ???
DV should be on a log scale.
> Thanks again
> Thanks to everyone for their replies
>
> Navin
>
Quoted reply history
> On 10/10/07, [EMAIL PROTECTED] < mailto:[EMAIL PROTECTED]>* < [EMAIL PROTECTED] < mailto:[EMAIL PROTECTED]>> wrote:
>
> Nidal,
>
> Another method that would give slightly different results is by using
> the EPS terms to code a model like (11) in Beals' paper
>
> Using a first order taylors series expansion to the log equaivalant of
> Beal's (11) we have:
>
> Y= F*exp(eps(1)) + m*exp(eps(2))
>
> log Y = log(f*exp(eps(1))+m*exp(eps(2))
>
> Using a Taylor Series expansion this becomes
>
> log Y = log(f+m) + f/(f+m)*eps(1) + m/(f+m)*eps(2)
>
> Using an eps allows unique points to get different values (thetas
> would
> allow a population estimate of the variability).
>
> Since the expectation of log Y is not F, the PRED is miscalculated by
> NONMEM and should be calculated separately (as well as
> RES). Therefore
> a possibility for the error model discussed by Beal is:
> $ABBREVIATED COMRES=1 COMSAV=1
> ...
> $ERR
> M=THETA(x)
> IPRED=F+M ; Individual prediction (regular scale)
> IF(COMACT.EQ.1)COM(1)=IPRED
> PPRED=COM(1) ; Population prediction (regular scale)
> PRED=DV-PPRED
> IPRED=DV-IPRED
> Y=LOG(IPRED)+F/IPRED*EPS(1)+M/IPRED*EPS(2)
>
> IWRES can be calculated outsider or by using a ratio for EPS(1) and
> EPS(2), setting it to be a theta and then multiplying by a unfixed
> THETA.
> This requires an assumptions that:
>
> * EPS(1) is positive, EPS(2) is positive as well (this is
> also true
> the additive+proprotional case but is used often to
> calculated IWRES.)
> * One of the error terms is better described at a population level
>
> For example
>
> $ABBREVIATED COMRES=1 COMSAV=1
> ...
> $ERR
> M=THETA(x)
> S=THETA(x+1)
> IPRED=F+M ; Individual prediction (regular scale)
> IF(COMACT.EQ.1)COM(1)=IPRED
> PPRED=COM(1) ; Population prediction (regular scale)
> PRED=DV-PPRED
> IPRED=DV-IPRED
> Y=LOG(IPRED)+F/IPRED*S+M/IPRED*S*EPS(2)
>
> IWRES=IPRED-log(F+M)/(sqrt(F^2/((F+M)^2)+M^2S^2/((F+M)^2)))
> S=sqrt(var(EPS(2))/var(EPS(1)))
>
> Nidal gives another model that assumes that both the error terms are
> explained at a population level and should be related to 11.
>
> Matt Fidler (not that Mat refered to in Nidals' email I think its
> Mats K.)
> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> wrote:
>
> > 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
> >
> >
> > On 10/8/07, *James G Wright* < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED] <mailto:[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 http://www.wright-dose.com
> http://www.wright-dose.com/
> >
> > -----Original Message-----
> > *From:* [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>
> > [mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>] *On Behalf Of *
> > [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> <mailto:
> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
> > *Sent:* 05 October 2007 17:32
> > *To:* James G Wright
> > *Cc:* [email protected]
> <mailto:[email protected]> <mailto:[email protected]
> <mailto:[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/99apr232002.html>
> >
> >
> >
> > http://www.cognigencorp.com/nonmem/nm/98jun022003.html
> http://www.cognigencorp.com/nonmem/nm/98jun022003.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]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[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 http://www.wright-dose.com
> http://www.wright-dose.com/
> >
> >
> > -----Original Message-----
> > From: Leonid Gibiansky
> [mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>]
> > Sent: 05 October 2007 13:33
> > To: James G Wright
> > Cc: [email protected]
> <mailto:[email protected]> <mailto: [email protected]
> <mailto:[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
> http://www.quantpharm.com
> > http://www.quantpharm.com/
> > e-mail: LGibiansky at quantpharm.com
> http://quantpharm.com http://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
> http://www.wright-dose.com/ http://www.wright-dose.com/
> > http://www.wright-dose.com/
> >>
> >> -----Original Message-----
> >> *From:* [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>
> >> [mailto: [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>] *On Behalf Of
> >> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[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]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>><mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto: [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>>
> >>
> >>
> >>
> >>
> >>
> >> On 10/4/07, *navin goyal* < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>
> >> <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> > <mailto: [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
> >>
> >>
> >
> >
> >
>
> --
>
> --Navin