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

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

Reply via email to