I forgot a parenthis in IWRES. It should be
IWRES=(IPRED-log(F+M))/(sqrt(F^2/((F+M)^2)+M^2S^2/((F+M)^2)))
Matt Fidler
mfidler_at_cognigencorp.com 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.)
> nidal.alhuniti_at_gmail.com 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* <james_at_wright-dose.com
>> <mailto:james_at_wright-dose.com>> 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:* owner-nmusers_at_globomaxnm.com
>> <mailto:owner-nmusers_at_globomaxnm.com>
>> [mailto:owner-nmusers_at_globomaxnm.com
>> <mailto:owner-nmusers_at_globomaxnm.com>] *On Behalf Of *
>> nidal.alhuniti_at_gmail.com <mailto:nidal.alhuniti_at_gmail.com>
>> *Sent:* 05 October 2007 17:32
>> *To:* James G Wright
>> *Cc:* nmusers_at_globomaxnm.com <mailto:nmusers_at_globomaxnm.com>
>> *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* <james_at_wright-dose.com
>> <mailto:james_at_wright-dose.com>> 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:LGibiansky_at_quantpharm.com
>> <mailto:LGibiansky_at_quantpharm.com>]
>> Sent: 05 October 2007 13:33
>> To: James G Wright
>> Cc: nmusers_at_globomaxnm.com <mailto:nmusers_at_globomaxnm.com>
>> 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:* owner-nmusers_at_globomaxnm.com
>>
>> <mailto:owner-nmusers_at_globomaxnm.com>
>>
>>> [mailto: owner-nmusers_at_globomaxnm.com
>>
>> <mailto:owner-nmusers_at_globomaxnm.com>] *On Behalf Of
>>
>>> *nidal.alhuniti_at_gmail.com
>>
>> <mailto:nidal.alhuniti_at_gmail.com>
>>
>>> *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
>>>
>>> nal-huniti_at_pharsight.com
>>
>>
>> <mailto:nal-huniti_at_pharsight.com><mailto:nal-huniti_at_pharsight.com
>> <mailto:nal-huniti_at_pharsight.com>>
>>
>>>
>>>
>>>
>>>
>>>
>>> On 10/4/07, *navin goyal* <navin1180_at_gmail.com
>>
>> <mailto:navin1180_at_gmail.com>
>>
>>> <mailto: navin1180_at_gmail.com
>>
>> <mailto:navin1180_at_gmail.com>>> 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
>>>
>>>
>>
>>
>>
>
Received on Wed Oct 10 2007 - 09:53:43 EDT
This archive was generated by hypermail 2.2.0 : Tue Nov 06 2007 - 15:07:38 EST