Re: AW: Re: Parameter Estimation in IF Conditioning Statement
Sorry, there was a typos in the code, here is the version with continuous SLOPE function
IF(CONC.LE.THRESH) SLOPE = THETA(3)+THETA(4)*CONC+ETA(2)
IF(CONC.GT.THRESH) SLOPE = THETA(3)+THETA(4)*THRESH+THETA(5)*(CONC-THRESH)+ETA(2)
Then, if you rename
NEWTHETA3 = THETA(3)+THETA(4)*THRESH
you will have
IF(CONC.LE.THRESH) SLOPE = NEWTHETA3+THETA(4)*(CONC-THRESH)+ETA(2)
IF(CONC.GT.THRESH) SLOPE = NEWTHETA3+THETA(5)*(CONC-THRESH)+ETA(2)
exactly as your second version (up to the parametrization).
Leonid
--------------------------------------
Leonid Gibiansky, Ph.D.
President, QuantPharm LLC
web: www.quantpharm.com
e-mail: LGibiansky at quantpharm.com
tel: (301) 767 5566
Quoted reply history
On 9/19/2013 6:42 PM, Leonid Gibiansky wrote:
> Benjamin.
> Even as WCMIN is continuous by nature, it is not continuous in the
> dataset (at observation points). You may look at your WCMIN values in
> the data file (I assume this values are in the data file?) and see where
> the initial conditions for THETA(1) placed in that range. Step for
> gradient computations can be quite small, so it will not see continuous
> nature of the variable, and will treat it as discrete.
>
> One the same model but separate topic, I am not sure that you can code
> the model as you coded it if you indeed assume that WCMIN=CONC.
> It is better to write as (set aside problems with the gradient):
>
> IF(WCMIN.LE.THRESH) SLOPE = THETA(3)+THETA(4)*CONC+ETA(2)
>
> IF(WCMIN.GT.THRESH) SLOPE = THETA(3)*WCMIN+THETA(5)*(CONC-WCMIN)+ETA(2)
>
> Otherwise, you SLOP function will be discontinuous at WCMIN as a
> function of CONC.
>
> Note also that your two models are not exactly equivalent. If you use
> IF(WCMIN.LE.THRESH) SLOPE = THETA(3)+THETA(4)*CONC+ETA(2)
> IF(WCMIN.GT.THRESH) SLOPE = THETA(3)+THETA(5)*CONC+ETA(2)
>
> your values at WCMIN=THRESH are equal to
> SLOPE = THETA(3)+THETA(4)*THRESH+ETA(2)
> SLOPE = THETA(3)+THETA(5)*THRESH+ETA(2)
> immediately before and after WCMIN=THRESH (different)
>
> while for the second model they are equal to
>
> SLOPE = THETA(3)+ETA(2)
> SLOPE = THETA(3)+ETA(2)
>
> and equal to each other
>
> Leonid
>
> --------------------------------------
> Leonid Gibiansky, Ph.D.
> President, QuantPharm LLC
> web: www.quantpharm.com
> e-mail: LGibiansky at quantpharm.com
> tel: (301) 767 5566
>
> On 9/19/2013 4:29 PM, [email protected] wrote:
>
> > Hi Leonid. Thanks for your quick response. WCMIN is continuous. In
> > fact, it is actually identical to CONC (forgot to change it while
> > simplifying). Any thoughts on this?Ben
> >
> > ----- Originalnachricht -----
> > Von: Leonid Gibiansky [mailto:[email protected]]
> > Gesendet: Thursday, September 19, 2013 09:32 PM
> > An: Weber,Dr.,Benjamin (TransMed) BIP-DE-B
> > Cc: [email protected] <[email protected]>
> > Betreff: Re: [NMusers] Parameter Estimation in IF Conditioning Statement
> >
> > Hi Benjamin
> > I think the problem was that when nonmem tested small variations of
> > THETA(1) in the first version, nothing changed in the OF as these
> > variation have not resulted in the change in the IF conditions (e.g., if
> > your data contained WCMIN values 1 and 2 and nothing in between, and
> > THETA(1) was 1.5, changes of THETA(1) to 1.6 or 1.4 were not resulting
> > in the changes in OF, gradient was zero, and the gradient method was
> > unable to move the model. When you put theta(1) in the centering, this
> > resulted in changes of OF. This is not an unusual behavior. Therefore,
> > it is better to use continuous functions rather than switches. For
> > example, you can code it as
> >
> > INT = THETA(4)+(THETA(5)-THETA(4))/(1+(THETA(1)/WCMIN)**GAM)
> >
> > SLOPE = THETA(3)+INT*CONC+ETA(2)
> >
> > When GAM is infinity, this is equivalent to your model. You may use
> > large GAM (or even estimated GAM)
> >
> > Leonid
> >
> > --------------------------------------
> > Leonid Gibiansky, Ph.D.
> > President, QuantPharm LLC
> > web: www.quantpharm.com
> > e-mail: LGibiansky at quantpharm.com
> > tel: (301) 767 5566
> >
> > On 9/19/2013 2:31 PM, [email protected] wrote:
> >
> > > Dear NONMEM users,
> > >
> > > My goal was to add a drug effect to a disease progression model in a way
> > > that the drug effect is different when a certain threshold concentration
> > > is exceeded (similarly to modeling a ‘hockey-stick’ when performing
> > > covariate analysis). First, I did it in the following way (partial
> > > simplified code)
> > >
> > > $PRED
> > >
> > > THRESH = THETA(1) ;threshold concentration
> > >
> > > INT = THETA(2)+ ETA(1)
> > >
> > > IF(WCMIN.LE.THRESH) SLOPE = THETA(3)+THETA(4)*CONC+ETA(2)
> > >
> > > IF(WCMIN.GT.THRESH) SLOPE = THETA(3)+THETA(5)*CONC+ETA(2)
> > >
> > > IPRED=INT+SLOPE*TIME
> > >
> > > and NONMEM did not manage to estimate THRESH=THETA(1) (i.e., the initial
> > > estimate did not change during minimization and the gradient was zero
> > > throughout). I tried this for several different initial estimates.
> > >
> > > I then centered the observed CONC on THRESH and run the following model
> > > because colleagues mentioned that they have successfully run a
> > > ‘hockey-stick’ estimating the threshold parameter (partial
> > > simplified code)
> > >
> > > IF(WCMIN.LE.THRESH) SLOPE = THETA(3)+THETA(4)*(CONC-THRESH)+ETA(2)
> > >
> > > IF(WCMIN.GT.THRESH) SLOPE = THETA(3)+THETA(5)*(CONC- THRESH)+ETA(2)
> > >
> > > This time, NONMEM provided very reasonable estimates for all model
> > > parameters and the covariance step was successful.
> > >
> > > I wonder now if the centering of the variable (and hence something
> > > particular to the data set) caused the difference in estimability of the
> > > threshold parameter or whether NONMEN cannot estimate parameters that
> > > only occur in the conditioning part of the IF statement (Note that after
> > > centering THRESH also appears in another part of the code).
> > >
> > > Could somebody please provide some insight on this? I have searched in
> > > the NONMEM user group but could not find anything.
> > >
> > > Mit freundlichen Grüßen / Kind regards,
> > > Dr. Benjamin Weber
> > >
> > > Boehringer Ingelheim Pharma GmbH & Co. KG
> > > Translational Medicine
> > > Tel.: +49 (7351) 54-143520
> > > Fax: +49 (7351) 83-143520
> > > mailto:[email protected]
> > >
> > > Boehringer Ingelheim Pharma GmbH & Co. KG, Sitz: Ingelheim am Rhein;
> > > Registergericht Mainz: HR A 22206; Komplementär Boehringer Ingelheim
> > > Deutschland GmbH; Geschäftsführung: Dr. Engelbert Günster
> > > (Vorsitzender), Ursula Fuggis-Hahn, Ralf Gorniak, Michael Klein, Dr.
> > > Martin Wanning; Vorsitzender des Aufsichtsrates: Dr. Joachim Hasenmaier;
> > > Sitz: Ingelheim am Rhein; Registergericht Mainz: HR B 23260
> > >
> > > Diese E-Mail ist vertraulich zu behandeln. Sie kann besonderem
> > > rechtlichem Schutz unterliegen. Wenn Sie nicht der richtige Adressat
> > > sind, senden Sie bitte diese E-Mail an den Absender zurück, löschen die
> > > eingegangene E-Mail und geben den Inhalt der E-Mail nicht weiter.
> > > Jegliche unbefugte Bearbeitung, Nutzung, Vervielfältigung oder
> > > Verbreitung ist verboten. / This e-mail is confidential and may also be
> > > legally privileged. If you are not the intended recipient please reply
> > > to sender, delete the e-mail and do not disclose its contents to any
> > > person. Any unauthorized review, use, disclosure, copying or
> > > distribution is strictly prohibited.