Re: question about simulation based on joint disease progress and dropout model
Dear Dr. Holford,
Thank you very much for your kind reply. Those are extremely helpful.
I am a PK analyst working in academia. We are working on a disease progress
project and many patients dropped out. If you like more information, I will
be happy to provide it to you.
Best regards,
Kehua
Quoted reply history
On Mon, Dec 13, 2010 at 3:14 PM, Nick Holford <[email protected]>wrote:
> Kehua,
>
> Before you can consider doing a VPC of the disease progress biomarker you
> must be able to simulate dropouts. You cannot simulate dropouts with exactly
> the same code you use to estimate the parameters.
>
> Simulation of dropout events requires that you use a simulation input file
> (data.csv in the example below) with records for the possible times of
> dropout event. The following NM-TRAN code will simulate dropout events and
> the disease progress biomarker. The simulated biomarker is censored after
> dropout has occurred by creating an MDV data item.
>
> [Would you please give some more information about yourself -- are you a
> student? industry scientist? regulator? Why are you interested in this
> topic?]
>
> Best wishes,
>
> Nick
>
> $PROB Joint biomarker disease progress and time to event
> $INPUT ID TRT TIME DV DVID
> $DATA data.csv
>
> $SIM ONLYSIM NSUB=1
> (20101212) ; eta and eps
> (20101213 UNIFORM) ; event prob
> (20101214 UNIFORM) ; treatment prob
>
> $SUBR ADVAN=6 TOL=6
> $THETA
> 0.005 ; BASE_HAZ 1/t
> 0.02 ; BETA_DP_HAZ 1/u
> 10 ; BETA_OFFSET u
> 100 ; POP_S0 u baseline status
> 1 ; POP_ALPHA u/t progression slope
>
> $OMEGA
> 0.01 ; PPV_S0
> 0.01 ; PPV_ALPHA
>
> $SIGMA
> 1 ; RUV_ADD u
>
> $MODEL
> COMP=(CUMHAZ)
>
> $PK
> IF (NEWIND.LE.1) THEN
> HASEVT=0 ; not had event
> SRVZ=1 ; Survivor function at TIME=0
> ENDIF
> IF (ICALL.EQ.4) THEN
> IF (NEWIND.LE.1) THEN ; first record for a subject
> CALL RANDOM(2,R)
> UEVT=R ; Uniform random number for event
> CALL RANDOM(3,R)
> UTRT=R ; Uniform random number for treatment
> IF (UTRT.LT.0.5) THEN
> STRT=0 ; placebo
> ELSE
> STRT=1 ; treatment
> ENDIF
> ENDIF
> ; simulate TRT data item for all records
> TRT=STRT
> ENDIF
>
> BSHZ=BASE_HAZ ; Baseline hazard
> BETADP=BETA_DP_HAZ ; Disease progress hazard
> EFFECT=TRT*BETA_OFFSET
> INTRI=(POP_S0+EFFECT)*EXP(PPV_S0)
> SLOPI=POP_ALPHA*EXP(PPV_ALPHA)
>
> $DES
> DISPRG=INTRI + SLOPI*T
> EXPHAZ=EXP(BETADP*DISPRG)
> DADT(1)=BSHZ*EXPHAZ ; h(t)
> $ERROR
> CHZT=A(1) ; Cum hazard at this time
> IF (DVID.NE.2) THEN
> F_FLAG=0 ; CONTINUOUS ELS
> Y=INTRI + SLOPI*TIME + RUV_ADD; Biomarker
> ENDIF
> SRVT=EXP(-CHZT) ; Survival at t
> IF (DVID.EQ.2.AND.DV.EQ.0) THEN
> F_FLAG=1 ; LIKELIHOOD
> Y=SRVT ; Like no event
> ENDIF
> IF (DVID.EQ.2.AND.DV.EQ.1) THEN
> F_FLAG=1 ; LIKELIHOOD
> Y=SRVZ-SRVT ; Like event
> ENDIF
> IF (DVID.EQ.3) THEN ; Last obs before event
> SRVZ=SRVT ; remember survival
> ELSE
> SRVZ=SRVZ ; keep NM-TRAN happy
> ENDIF
>
> IF (ICALL.EQ.4) THEN
> IF (HASEVT.EQ.0) THEN
> IF (DVID.EQ.3) THEN ; check for event
> IF (SRVT.LT.UEVT) THEN ; event
> HASEVT=1
> DVX=1
> DVIX=2
> MDVX=0
> ELSE ; Possible last obs before event
> DVX=0
> DVIX=3
> MDVX=1
> ENDIF
> ELSE ; Last record (default for censoring) or other EVID
> (biomarker)
> IF (DVID.EQ.4) THEN ; last record
> DVX=0 ; censored event
> DVIX=2
> MDVX=0
> ELSE ; biomarker
> DVX=Y
> MDVX=0
> DVIX=DVID
> ENDIF
> ENDIF
> ELSE ; after event so convert to missing
> DVX=0
> DVIX=DVID
> MDVX=1
> ENDIF
> ENDIF
>
>
> $TABLE ID TRT TIME DVX DVIX MDVX
> NOAPPEND ONEHEADER NOPRINT FILE=joint.fit
>
> First subject in data.csv
> #ID TRT TIME DV DVID 1 0 0 . 1 1 0 0 . 3 1 0 25 . 1 1 0 25 . 3 1 0
> 50 . 1 1 0 50 . 3 1 0 75 . 1 1 0 75 . 3 1 0 100 . 1 1 0 100 . 4
>
>
> On 14/12/2010 9:38 a.m., kehua wu wrote:
>
> Dear NMusers,
>
> We are trying to do VPC based on a joint disease progress and dropout
> model. But we did not get any results from the simulation. Does anybody have
> any suggestions?
>
>
> Thanks a lot.
>
> Kehua
>
> The control stream are below,
>
> $SUBS ADVAN6 TOL=6
> $MODEL COMP=(CUMHAZ)
> COMP=(HZLAST)
> $PK
>
> BASE=THETA(1)*EXP(ETA(1))
> SLOPE=THETA(2)+ETA(2)
> BSHZ=THETA(3)
> BETA=THETA(4)
>
>
>
> $DES
> SIZE=BASE+(SLOPE*TIME)
> TEMP=BETA*SIZE
> DADT(1)=EXP(TEMP)
> DADT(2)=EXP(TEMP)
>
> $ERROR
> CMHZ=BSHZ*A(1)
> HZLA=BSHZ*A(2)
>
>
> IF (TYPE.EQ.1) THEN
> IPRED=BASE+(SLOPE*TIME)
> W=THETA(5)*IPRED
> F_FLAG=0
> Y=BASE+(SLOPE*TIME)+W*EPS(1)
> ENDIF
>
> IF(TYPE.EQ.2.AND.DV.EQ.0) THEN
> F_FLAG=1
> Y=EXP(-CMHZ)
> ENDIF
>
> IF(TYPE.EQ.2.AND. DV.EQ.1) THEN
> F_FLAG=1
> Y=EXP(-(CMHZ-HZLA))*(1-EXP(-HZLA))
> ENDIF
>
> $THETA 63.0 0.153 0.00811 0.00633 0.063
>
>
> $OMEGA 0.507 0.0914
>
> $SIGMA 1 FIX
>
> $SIMULATION ONLYSIM SUBPROB=1 (1111111)
>
> $TABLE ID TIME IPRED
> NOPRINT ONEHEADER FILE=015.tab
>
>
> --
> 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
>
>