Hello,
I am trying some simple linear disease progression analysis and the data
suggests that there are 2 populations in the dataset (Low Baseline, Low
Slope vs. High Baseline, High Slope). It appears that that population
consists of progressers and non-progressers (The Pharmacometrics
textbook describes some code with 3 populations i.e. positive slope,
zero slope, and negative slope but I want to keep my model simple).
This is the only piece of the code that seems to work for my dataset. If
I try to estimate THETA(3) in my code it causes the model to either
becomes unstable or I get a very small negative value for THETA(3) with
very poor precision. I would really appreciate feedback from NMusers on
the parameterization of the slope parameter in this model (thetas and
etas for the 2 populations).
Many thanks in advance...MNS
$PK
CALLFL =1
EST=MIXEST
IF (MIXNUM.EQ.2) THEN
BASE=THETA(2)*EXP(ETA(2))
SLOP=THETA(4)+ETA(4)
ELSE
BASE=THETA(1)*EXP(ETA(1)) ; PATHOLOGIC BASELINE
SLOP=THETA(3)*(1+ETA(3)) ; PATHOLOGIC PROGRESSION PARAMETER; ETA
PARAMETERIZATION BASED ON TUTURIAL FROM PAGE
ENDIF
$THETA
(0,15 ) ; BASELINE PATHOLOGIC
(0,7) ; BASELINE NON-PATHOLOGIC
(0,0.1) ; SLOPE PATHOLOGIC
(0 FIX ) ; SLOPE NON-PATHOLOGIC
$OMEGA BLOCK(1) 0.15
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) 0.35
$OMEGA BLOCK(1) 0.03
Mixture model for Disease Progression
4 messages
3 people
Latest: Jan 17, 2011
Mahesh,
Do you have a good biological reason to divide your population into different subpopulations?
If not then a more flexible way to describe an association between baseline and slope is estimate the covariance between the random effects. This does carry with it the explicit assumption that the mixture model makes about the existence of different sub-populations.
Nick
Quoted reply history
On 15/01/2011 11:12 a.m., Samtani, Mahesh [PRDUS] wrote:
> Hello,
>
> I am trying some simple linear disease progression analysis and the data suggests that there are 2 populations in the dataset (Low Baseline, Low Slope vs. High Baseline, High Slope). It appears that that population consists of progressers and non-progressers (The Pharmacometrics textbook describes some code with 3 populations i.e. positive slope, zero slope, and negative slope but I want to keep my model simple).
>
> This is the only piece of the code that seems to work for my dataset. If I try to estimate THETA(3) in my code it causes the model to either becomes unstable or I get a very small negative value for THETA(3) with very poor precision. I would really appreciate feedback from NMusers on the parameterization of the slope parameter in this model (thetas and etas for the 2 populations).
>
> Many thanks in advance...MNS
>
> $PK
>
> CALLFL =1
>
> EST=MIXEST
>
> IF (MIXNUM.EQ.2) THEN
>
> BASE=THETA(2)*EXP(ETA(2))
>
> SLOP=THETA(4)+ETA(4)
>
> ELSE
>
> BASE=THETA(1)*EXP(ETA(1)) ; PATHOLOGIC BASELINE
>
> SLOP=THETA(3)*(1+ETA(3)) ; PATHOLOGIC PROGRESSION PARAMETER; ETA PARAMETERIZATION BASED ON TUTURIAL FROM PAGE
>
> ENDIF
>
> $THETA
>
> (0,15 ) ; BASELINE PATHOLOGIC
>
> (0,7) ; BASELINE NON-PATHOLOGIC
>
> (0,0.1) ; SLOPE PATHOLOGIC
>
> (0 FIX ) ; SLOPE NON-PATHOLOGIC
>
> $OMEGA BLOCK(1) 0.15
>
> $OMEGA BLOCK(1) SAME
>
> $OMEGA BLOCK(1) 0.35
>
> $OMEGA BLOCK(1) 0.03
--
Nick Holford, Professor Clinical Pharmacology
Dept Pharmacology& Clinical Pharmacology
University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53
email: [email protected]
http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
Dear Dr. Holford,
Thank-you for the insightful comments. Since the last posting I have made some
progress; the updated code can be found below. The biological validity of the
mixture populations bothered me as well. Fortunately, the team measured several
biomarkers indicative of disease at baseline. One of these biomarkers (BIOM in
the code) has a distinct bimodal distribution. I made the biomarker a DV as
well and added a flag column to the dataset (PDT) to tell NONMEM the PD type. I
still have a few questions for the code below and I am hoping that you will
kindly answer some questions:
a) Would you still suggest using the biomarker simply as a covariate rather
than the mixture model below? The reason I chose the approach below is because
when I plot the eta for the slope (MET2) vs. the biomarker I see no
co-relation. It appears that the biomarker acts like an on-off switch. Low
levels of the biomarker as associated with no progression while high levels are
associated with progression. It may just make sense to convert the biomarker to
a categorical covariate and get rid of the mixture?
b) NONMEM acts strangely for the BSV of the biomarker in the code below. I
have only one observation for the biomarker per individual (only baseline
measurements right now) so only 1 level of random effect can be implemented for
the biomarker. I tried to first code it as an ETA (NONMEM crashed and gave
infinite objective function error). If I code the random effect for the
biomarker as an EPS (as shown below) NONMEM is happy. Why does NONMEM care and
wants the random effect as an EPS and not an ETA?
c) A quick question regarding your tutorial on PAGE. The random effect on the
slope is modeled in your lecture notes as a proportional error model. Why is it
proportional, why can't it be additive? An additive error model would also
allow negative slopes. I have used additive error in my code since it allows a
mean slope of zero with BSV around zero for the non-progressers.
Please advise,
Mahesh
$PRED
CALLFL=1
EST=MIXEST
MQ1 = 0
MQ2 = 0
IF (MIXNUM.EQ.1) MQ1 = 1
IF (MIXNUM.EQ.2) MQ2 = 1
MET1=THETA(1)*ETA(1)
MET2=THETA(2)*ETA(2)
BIOM1=THETA(3) ; PATHOLOGIC BIOM
BIOM2=THETA(4)
TVBM = ((BIOM1*MQ1) + (BIOM2*MQ2))
BIOM = TVBM
BASE1=THETA(5) ; PATHOLOGIC BASELINE
BASE2=THETA(6)
TVBA = ((BASE1*MQ1) + (BASE2*MQ2))
BASE = TVBA*EXP(MET1)
SLOP1=THETA(7) ; PATHOLOGIC PROGRESSION PARAMETER
SLOP2=THETA(8)
TVSL = ((SLOP1*MQ1) + (SLOP2*MQ2))
SLOP = TVSL+MET2
W1=THETA(9)
W2=THETA(10)
IPRED=BASE + SLOP*TIME
Y1=IPRED + W1*EPS(1)
Y2=BIOM + W2*EPS(2)
Q1=0
IF(PDT.EQ.1) Q1=1 ; PDT IS 1 FOR DISEASE SCORES
Q2=0
IF(PDT.EQ.2) Q2=1 ; PDT IS 2 FOR BIOMARKER
Y=Q1*Y1+Q2*Y2
$MIX
NSPOP=2
P(1)=THETA(11) ;PATHOLOGIC
P(2)=1-THETA(11) ;NON-PATHOLOGIC
$THETA
...
(0,FIX) ;THETA(8) FIXED TO ZERO FOR NON PROGRESSERS
...
$OMEGA
1 FIX
1 FIX
$SIGMA
1 FIX
1 FIX
Quoted reply history
________________________________
From: [email protected] on behalf of Nick Holford
Sent: Sun 1/16/2011 1:49 AM
To: [email protected]
Subject: Re: [NMusers] Mixture model for Disease Progression
Mahesh,
Do you have a good biological reason to divide your population into different
subpopulations?
If not then a more flexible way to describe an association between baseline and
slope is estimate the covariance between the random effects. This does carry
with it the explicit assumption that the mixture model makes about the
existence of different sub-populations.
Nick
On 15/01/2011 11:12 a.m., Samtani, Mahesh [PRDUS] wrote:
Hello,
I am trying some simple linear disease progression analysis and the
data suggests that there are 2 populations in the dataset (Low Baseline, Low
Slope vs. High Baseline, High Slope). It appears that that population consists
of progressers and non-progressers (The Pharmacometrics textbook describes some
code with 3 populations i.e. positive slope, zero slope, and negative slope but
I want to keep my model simple).
This is the only piece of the code that seems to work for my dataset.
If I try to estimate THETA(3) in my code it causes the model to either becomes
unstable or I get a very small negative value for THETA(3) with very poor
precision. I would really appreciate feedback from NMusers on the
parameterization of the slope parameter in this model (thetas and etas for the
2 populations).
Many thanks in advance...MNS
$PK
CALLFL =1
EST=MIXEST
IF (MIXNUM.EQ.2) THEN
BASE=THETA(2)*EXP(ETA(2))
SLOP=THETA(4)+ETA(4)
ELSE
BASE=THETA(1)*EXP(ETA(1)) ; PATHOLOGIC BASELINE
SLOP=THETA(3)*(1+ETA(3)) ; PATHOLOGIC PROGRESSION PARAMETER; ETA
PARAMETERIZATION BASED ON TUTURIAL FROM PAGE
ENDIF
$THETA
(0,15 ) ; BASELINE PATHOLOGIC
(0,7) ; BASELINE NON-PATHOLOGIC
(0,0.1) ; SLOPE PATHOLOGIC
(0 FIX ) ; SLOPE NON-PATHOLOGIC
$OMEGA BLOCK(1) 0.15
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) 0.35
$OMEGA BLOCK(1) 0.03
--
Nick Holford, Professor Clinical Pharmacology
Dept Pharmacology & Clinical Pharmacology
University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53
email: [email protected]
http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
I am a new NONMEM user, and I am not sure if my current understanding of
putting variances on parameters is correct or not. In my understanding any
parameter getting a variance (eg. Additive, log normal ) needs some kind of
biological explanation, does biology allow you to assign such kind of
distribution? Do you really think the parameter may have such distribution
to begin with.
So, I guess what kind of variance model you should choose depends on the
underlying physiological understanding. If that is not identified correctly
then most likely any model built with those assumptions will also fail to
fit the data correctly/identify parameters.
I know I am not answering your question but I was just curious to know the
assumptions of your variance testing on parameters.
Good Luck
Jeet
Quoted reply history
On Sun, Jan 16, 2011 at 5:55 PM, Samtani, Mahesh [PRDUS] <
[email protected]> wrote:
> Dear Dr. Holford,
>
> Thank-you for the insightful comments. Since the last posting I have made
> some progress; the updated code can be found below. The biological validity
> of the mixture populations bothered me as well. Fortunately, the team
> measured several biomarkers indicative of disease at baseline. One of these
> biomarkers (BIOM in the code) has a distinct bimodal distribution. I made
> the biomarker a DV as well and added a flag column to the dataset (PDT) to
> tell NONMEM the PD type. I still have a few questions for the code below and
> I am hoping that you will kindly answer some questions:
>
>
>
> a) Would you still suggest using the biomarker simply as a covariate
> rather than the mixture model below? The reason I chose the approach below
> is because when I plot the eta for the slope (MET2) vs. the biomarker I see
> no co-relation. It appears that the biomarker acts like an on-off switch.
> Low levels of the biomarker as associated with no progression while high
> levels are associated with progression. It may just make sense to convert
> the biomarker to a categorical covariate and get rid of the mixture?
>
> b) NONMEM acts strangely for the BSV of the biomarker in the code below.
> I have only one observation for the biomarker per individual (only baseline
> measurements right now) so only 1 level of random effect can be implemented
> for the biomarker. I tried to first code it as an ETA (NONMEM crashed and
> gave infinite objective function error). If I code the random effect for the
> biomarker as an EPS (as shown below) NONMEM is happy. Why does NONMEM care
> and wants the random effect as an EPS and not an ETA?
>
> c) A quick question regarding your tutorial on PAGE. The random effect on
> the slope is modeled in your lecture notes as a proportional error model.
> Why is it proportional, why can’t it be additive? An additive error model
> would also allow negative slopes. I have used additive error in my code
> since it allows a mean slope of zero with BSV around zero for the
> non-progressers.
>
>
>
> Please advise,
>
> Mahesh
>
>
>
>
>
> $PRED
>
> CALLFL=1
>
>
>
> EST=MIXEST
>
> MQ1 = 0
>
> MQ2 = 0
>
> IF (MIXNUM.EQ.1) MQ1 = 1
>
> IF (MIXNUM.EQ.2) MQ2 = 1
>
>
>
> MET1=THETA(1)*ETA(1)
>
> MET2=THETA(2)*ETA(2)
>
>
>
> BIOM1=THETA(3) ; PATHOLOGIC BIOM
>
> BIOM2=THETA(4)
>
> TVBM = ((BIOM1*MQ1) + (BIOM2*MQ2))
>
> BIOM = TVBM
>
>
>
> BASE1=THETA(5) ; PATHOLOGIC BASELINE
>
> BASE2=THETA(6)
>
> TVBA = ((BASE1*MQ1) + (BASE2*MQ2))
>
> BASE = TVBA*EXP(MET1)
>
>
>
> SLOP1=THETA(7) ; PATHOLOGIC PROGRESSION PARAMETER
>
> SLOP2=THETA(8)
>
> TVSL = ((SLOP1*MQ1) + (SLOP2*MQ2))
>
> SLOP = TVSL+MET2
>
>
>
> W1=THETA(9)
>
> W2=THETA(10)
>
>
>
> IPRED=BASE + SLOP*TIME
>
>
>
> Y1=IPRED + W1*EPS(1)
>
> Y2=BIOM + W2*EPS(2)
>
>
>
> Q1=0
>
> IF(PDT.EQ.1) Q1=1 ; PDT IS 1 FOR DISEASE SCORES
>
> Q2=0
>
> IF(PDT.EQ.2) Q2=1 ; PDT IS 2 FOR BIOMARKER
>
>
>
> Y=Q1*Y1+Q2*Y2
>
>
>
> $MIX
>
> NSPOP=2
>
> P(1)=THETA(11) ;PATHOLOGIC
>
> P(2)=1-THETA(11) ;NON-PATHOLOGIC
>
>
>
> $THETA
>
> ...
>
> (0,FIX) ;THETA(8) FIXED TO ZERO FOR NON PROGRESSERS
>
> ...
>
>
>
>
>
> $OMEGA
>
> 1 FIX
>
> 1 FIX
>
>
>
> $SIGMA
>
> 1 FIX
>
> 1 FIX
>
>
>
>
>
> ------------------------------
> *From:* [email protected] on behalf of Nick Holford
> *Sent:* Sun 1/16/2011 1:49 AM
> *To:* [email protected]
> *Subject:* Re: [NMusers] Mixture model for Disease Progression
>
> Mahesh,
>
> Do you have a good biological reason to divide your population into
> different subpopulations?
>
> If not then a more flexible way to describe an association between baseline
> and slope is estimate the covariance between the random effects. This does
> carry with it the explicit assumption that the mixture model makes about the
> existence of different sub-populations.
>
> Nick
>
> On 15/01/2011 11:12 a.m., Samtani, Mahesh [PRDUS] wrote:
>
> Hello,
>
> I am trying some simple linear disease progression analysis and the data
> suggests that there are 2 populations in the dataset (Low Baseline, Low
> Slope vs. High Baseline, High Slope). It appears that that population
> consists of progressers and non-progressers (The Pharmacometrics textbook
> describes some code with 3 populations i.e. positive slope, zero slope, and
> negative slope but I want to keep my model simple).
>
>
>
> This is the only piece of the code that seems to work for my dataset. If I
> try to estimate THETA(3) in my code it causes the model to either becomes
> unstable or I get a very small negative value for THETA(3) with very poor
> precision. I would really appreciate feedback from NMusers on the
> parameterization of the slope parameter in this model (thetas and etas for
> the 2 populations).
>
>
>
> Many thanks in advance…MNS
>
>
>
> $PK
>
> CALLFL =1
>
> EST=MIXEST
>
> IF (MIXNUM.EQ.2) THEN
>
> BASE=THETA(2)*EXP(ETA(2))
>
> SLOP=THETA(4)+ETA(4)
>
> ELSE
>
> BASE=THETA(1)*EXP(ETA(1)) ; PATHOLOGIC BASELINE
>
> SLOP=THETA(3)*(1+ETA(3)) ; PATHOLOGIC PROGRESSION PARAMETER; ETA
> PARAMETERIZATION BASED ON TUTURIAL FROM PAGE
>
> ENDIF
>
>
>
> $THETA
>
> (0,15 ) ; BASELINE PATHOLOGIC
>
> (0,7) ; BASELINE NON-PATHOLOGIC
>
> (0,0.1) ; SLOPE PATHOLOGIC
>
> (0 FIX ) ; SLOPE NON-PATHOLOGIC
>
>
>
> $OMEGA BLOCK(1) 0.15
>
> $OMEGA BLOCK(1) SAME
>
> $OMEGA BLOCK(1) 0.35
>
> $OMEGA BLOCK(1) 0.03
>
>
> --
> Nick Holford, Professor Clinical Pharmacology
> Dept Pharmacology & Clinical Pharmacology
> University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
> tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53
> email:
> [email protected] http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
>
>
--
Indrajeet Singh
Postdoctoral Research Associate
Dept. of Pharmaceutical Sciences
University at Buffalo