Mixture model for Disease Progression

4 messages 3 people Latest: Jan 17, 2011

Mixture model for Disease Progression

From: Mahesh Samtani Date: January 14, 2011 technical
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

Re: Mixture model for Disease Progression

From: Nick Holford Date: January 16, 2011 technical
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

RE: Mixture model for Disease Progression

From: Mahesh Samtani Date: January 16, 2011 technical
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

Re: Mixture model for Disease Progression

From: Indrajeet Singh Date: January 17, 2011 technical
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