Re: [NMusers] Rounding (error=134) or obj. func. is infinite (error=136)
Dear Leonid and Nick, Thank you very much for your inputs! We will work on our model with your suggestions. Thank you! Tu Sent from my iOS device On Apr 22, 2016, at 9:14 PM, Leonid Gibiansky> wrote: In $DES block I this expression DSIZE = LOG(BSL*(EXP(-DEC*TIME) + EXP(GRO*TIME) - 1)+1) I would use T rather than TIME You may also try tol=12 nsig=4 sign=12 Leonid On Apr 22, 2016, at 1:37 PM, Mai, Tu [MED] > wrote: Dear NMUsers, Our model keeps having the rounding error (error=134). I tried to fix it using the following methods or their combinations, however, sometimes I then got the message error=136 instead of error=134. But minimization still unsuccessful. Can you please help pointing out how I can solve this problem? I really appreciate it! Thank you 1) Use the estimates for THETA that are ~10% deviated from the estimates provided after scm run. 2) Set TOL=9, NSIG=2, SIGL=6 I attached here the code: $PROBLEMIRM code $INPUT ID TIME EX DV DVID ECOG AGE HT WT RACE SITE DIAG=DROP HEM ALK ALB LAC TES STUDY DRUG PRIORDOC $DATA survival.csv $SUBROUTINE ADVAN13 TOL=9 $MODEL NCOMP=1 COMP(HAZ) $PK ;;; DECECOG-DEFINITION START IF(ECOG.EQ.1) DECECOG = 1 ; Most common IF(ECOG.EQ.0) DECECOG = ( 1 + THETA(27)) IF(ECOG.EQ.2) DECECOG = ( 1 + THETA(28)) ;;; DECECOG-DEFINITION END ;;; GROPRIORDOC-DEFINITION START IF(PRIORDOC.EQ.0) GROPRIORDOC = 1 ; Most common IF(PRIORDOC.EQ.1) GROPRIORDOC = ( 1 + THETA(26)) ;;; GROPRIORDOC-DEFINITION END ;;; GROECOG-DEFINITION START IF(ECOG.EQ.1) GROECOG = 1 ; Most common IF(ECOG.EQ.0) GROECOG = ( 1 + THETA(24)) IF(ECOG.EQ.2) GROECOG = ( 1 + THETA(25)) ;;; GROECOG-DEFINITION END ;;; GROALK-DEFINITION START IF(ALK.EQ.-99) THEN GROALK = 1 ELSE GROALK = ( 1 + THETA(23)*(ALK - 94.00)) ENDIF ;;; GROALK-DEFINITION END ;;; GRO-RELATION START GROCOV=GROALK*GROECOG*GROPRIORDOC ;;; GRO-RELATION END ;;; DECDRUG-DEFINITION START IF(DRUG.EQ.3) DECDRUG = 1 ; Most common IF(DRUG.EQ.2) DECDRUG = ( 1 + THETA(21)) IF(DRUG.EQ.1) DECDRUG = ( 1 + THETA(22)) ;;; DECDRUG-DEFINITION END ;;; DECAGE-DEFINITION START DECAGE = ( 1 + THETA(20)*(AGE - 64.00)) ;;; DECAGE-DEFINITION END ;;; DEC-RELATION START DECCOV=DECAGE*DECDRUG*DECECOG ;;; DEC-RELATION END ;;; BSLHEM-DEFINITION START IF(HEM.LE.124.00) BSLHEM = ( 1 + THETA(18)*(HEM - 124.00)) IF(HEM.GT.124.00) BSLHEM = ( 1 + THETA(19)*(HEM - 124.00)) IF(HEM.EQ.-99) BSLHEM = 1 ;;; BSLHEM-DEFINITION END ;;; BSLECOG-DEFINITION START IF(ECOG.EQ.1) BSLECOG = 1 ; Most common IF(ECOG.EQ.0) BSLECOG = ( 1 + THETA(16)) IF(ECOG.EQ.2) BSLECOG = ( 1 + THETA(17)) ;;; BSLECOG-DEFINITION END ;;; BSLALK-DEFINITION START IF(ALK.EQ.-99) THEN BSLALK = 1 ELSE BSLALK = ( 1 + THETA(15)*(ALK - 94.00)) ENDIF ;;; BSLALK-DEFINITION END ;;; BSL-RELATION START BSLCOV=BSLALK*BSLECOG*BSLHEM ;;; BSL-RELATION END ;;; BSHZPRIORDOC-DEFINITION START IF(PRIORDOC.EQ.0) BSHZPRIORDOC = 1 ; Most common IF(PRIORDOC.EQ.1) BSHZPRIORDOC = ( 1 + THETA(14)) ;;; BSHZPRIORDOC-DEFINITION END ;;; BSHZALK-DEFINITION START IF(ALK.EQ.-99) THEN BSHZALK = 1 ELSE BSHZALK = ( 1 + THETA(13)*(ALK - 94.00)) ENDIF ;;; BSHZALK-DEFINITION END ;;; BSHZ-RELATION START BSHZCOV=BSHZALK*BSHZPRIORDOC ;;; BSHZ-RELATION END ;;; BETAHEM-DEFINITION START IF(HEM.EQ.-99) THEN BETAHEM = 1 ELSE BETAHEM = ( 1 + THETA(12)*(HEM - 124.00)) ENDIF ;;; BETAHEM-DEFINITION END ;;; BETAECOG-DEFINITION START IF(ECOG.EQ.1) BETAECOG = 1 ; Most common IF(ECOG.EQ.0) BETAECOG = ( 1 + THETA(10)) IF(ECOG.EQ.2) BETAECOG = ( 1 + THETA(11)) ;;; BETAECOG-DEFINITION END ;;; BETADRUG-DEFINITION START IF(DRUG.EQ.3) BETADRUG = 1 ; Most common IF(DRUG.EQ.2) BETADRUG = ( 1 + THETA(8)) IF(DRUG.EQ.1) BETADRUG = ( 1 + THETA(9)) ;;; BETADRUG-DEFINITION END ;;; BETAAGE-DEFINITION START BETAAGE = ( 1 + THETA(7)*(AGE - 64.00)) ;;; BETAAGE-DEFINITION END ;;; BETA-RELATION START BETACOV=BETAAGE*BETADRUG*BETAECOG*BETAHEM ;;; BETA-RELATION END IF (NEWIND.LE.1) THEN SRVZ=1 ; Survivor function at TIME=0 ENDIF ;---BASELINE PSA-- TVBSL = THETA(1) TVBSL = BSLCOV*TVBSL BSL = TVBSL*EXP(ETA(1)) ;---PSA PARAMETERS-- TVGRO = THETA(2) TVGRO = GROCOV*TVGRO TVDEC = THETA(3) TVDEC = DECCOV*TVDEC GRO = TVGRO*EXP(ETA(2)) DEC = TVDEC*EXP(ETA(3)) ;---SURVIVAl MODEL PARAMETERS-- TVBSHZ = THETA(5) ; Baseline Hazard TVBSHZ = BSHZCOV*TVBSHZ BSHZ = TVBSHZ TVBETA = THETA(6) ; Parameter relating dropout hazard to PSA estimate TVBETA = BETACOV*TVBETA BETA = TVBETA $DES DSIZE = LOG(BSL*(EXP(-DEC*TIME) + EXP(GRO*TIME) - 1)+1) TEMP = BETA*DSIZE DADT(1) = BSHZ*EXP(TEMP) $ERROR IF (DVID.EQ.1) THEN F_FLAG=0 ; If continuous type data SIZE = LOG(BSL*(EXP(-DEC*TIME) + EXP(GRO*TIME) - 1)+1) IPRED = SIZE ADD
Re: [NMusers] Rounding (error=134) or obj. func. is infinite (error=136)
In $DES block I this expression DSIZE = LOG(BSL*(EXP(-DEC*TIME) + EXP(GRO*TIME) - 1)+1) I would use T rather than TIME You may also try tol=12 nsig=4 sign=12 Leonid > On Apr 22, 2016, at 1:37 PM, Mai, Tu [MED]> wrote: > > Dear NMUsers, > > Our model keeps having the rounding error (error=134). I tried to fix it > using the following methods or their combinations, however, sometimes I then > got the message error=136 instead of error=134. But minimization still > unsuccessful. Can you please help pointing out how I can solve this problem? > I really appreciate it! > > Thank you > > > > 1) Use the estimates for THETA that are ~10% deviated from the estimates > provided after scm run. > 2) Set TOL=9, NSIG=2, SIGL=6 > > I attached here the code: > > $PROBLEMIRM code > > $INPUT ID TIME EX DV DVID ECOG AGE HT WT RACE SITE DIAG=DROP HEM > > ALK ALB LAC TES STUDY DRUG PRIORDOC > > $DATA survival.csv > > $SUBROUTINE ADVAN13 TOL=9 > > $MODEL NCOMP=1 COMP(HAZ) > > $PK > ;;; DECECOG-DEFINITION START > IF(ECOG.EQ.1) DECECOG = 1 ; Most common > IF(ECOG.EQ.0) DECECOG = ( 1 + THETA(27)) > IF(ECOG.EQ.2) DECECOG = ( 1 + THETA(28)) > ;;; DECECOG-DEFINITION END > ;;; GROPRIORDOC-DEFINITION START > IF(PRIORDOC.EQ.0) GROPRIORDOC = 1 ; Most common > IF(PRIORDOC.EQ.1) GROPRIORDOC = ( 1 + THETA(26)) > ;;; GROPRIORDOC-DEFINITION END > ;;; GROECOG-DEFINITION START > IF(ECOG.EQ.1) GROECOG = 1 ; Most common > IF(ECOG.EQ.0) GROECOG = ( 1 + THETA(24)) > IF(ECOG.EQ.2) GROECOG = ( 1 + THETA(25)) > ;;; GROECOG-DEFINITION END > ;;; GROALK-DEFINITION START > > IF(ALK.EQ.-99) THEN > >GROALK = 1 > > ELSE > >GROALK = ( 1 + THETA(23)*(ALK - 94.00)) > > ENDIF > > ;;; GROALK-DEFINITION END > ;;; GRO-RELATION START > > GROCOV=GROALK*GROECOG*GROPRIORDOC > > ;;; GRO-RELATION END > > ;;; DECDRUG-DEFINITION START > > IF(DRUG.EQ.3) DECDRUG = 1 ; Most common > > IF(DRUG.EQ.2) DECDRUG = ( 1 + THETA(21)) > > IF(DRUG.EQ.1) DECDRUG = ( 1 + THETA(22)) > > ;;; DECDRUG-DEFINITION END > > ;;; DECAGE-DEFINITION START > > DECAGE = ( 1 + THETA(20)*(AGE - 64.00)) > > ;;; DECAGE-DEFINITION END > ;;; DEC-RELATION START > > DECCOV=DECAGE*DECDRUG*DECECOG > > ;;; DEC-RELATION END > ;;; BSLHEM-DEFINITION START > > IF(HEM.LE.124.00) BSLHEM = ( 1 + THETA(18)*(HEM - 124.00)) > > IF(HEM.GT.124.00) BSLHEM = ( 1 + THETA(19)*(HEM - 124.00)) > > IF(HEM.EQ.-99) BSLHEM = 1 > > ;;; BSLHEM-DEFINITION END > ;;; BSLECOG-DEFINITION START > > IF(ECOG.EQ.1) BSLECOG = 1 ; Most common > > IF(ECOG.EQ.0) BSLECOG = ( 1 + THETA(16)) > > IF(ECOG.EQ.2) BSLECOG = ( 1 + THETA(17)) > > ;;; BSLECOG-DEFINITION END > ;;; BSLALK-DEFINITION START > > IF(ALK.EQ.-99) THEN > >BSLALK = 1 > > ELSE > >BSLALK = ( 1 + THETA(15)*(ALK - 94.00)) > > ENDIF > > ;;; BSLALK-DEFINITION END > ;;; BSL-RELATION START > > BSLCOV=BSLALK*BSLECOG*BSLHEM > > ;;; BSL-RELATION END > ;;; BSHZPRIORDOC-DEFINITION START > > IF(PRIORDOC.EQ.0) BSHZPRIORDOC = 1 ; Most common > > IF(PRIORDOC.EQ.1) BSHZPRIORDOC = ( 1 + THETA(14)) > > ;;; BSHZPRIORDOC-DEFINITION END > ;;; BSHZALK-DEFINITION START > > IF(ALK.EQ.-99) THEN > >BSHZALK = 1 > > ELSE > >BSHZALK = ( 1 + THETA(13)*(ALK - 94.00)) > > ENDIF > > ;;; BSHZALK-DEFINITION END > ;;; BSHZ-RELATION START > > BSHZCOV=BSHZALK*BSHZPRIORDOC > > ;;; BSHZ-RELATION END > ;;; BETAHEM-DEFINITION START > > IF(HEM.EQ.-99) THEN > >BETAHEM = 1 > > ELSE > >BETAHEM = ( 1 + THETA(12)*(HEM - 124.00)) > > ENDIF > > ;;; BETAHEM-DEFINITION END > ;;; BETAECOG-DEFINITION START > > IF(ECOG.EQ.1) BETAECOG = 1 ; Most common > > IF(ECOG.EQ.0) BETAECOG = ( 1 + THETA(10)) > > IF(ECOG.EQ.2) BETAECOG = ( 1 + THETA(11)) > > ;;; BETAECOG-DEFINITION END > ;;; BETADRUG-DEFINITION START > > IF(DRUG.EQ.3) BETADRUG = 1 ; Most common > > IF(DRUG.EQ.2) BETADRUG = ( 1 + THETA(8)) > > IF(DRUG.EQ.1) BETADRUG = ( 1 + THETA(9)) > > ;;; BETADRUG-DEFINITION END > ;;; BETAAGE-DEFINITION START > > BETAAGE = ( 1 + THETA(7)*(AGE - 64.00)) > > ;;; BETAAGE-DEFINITION END > ;;; BETA-RELATION START > > BETACOV=BETAAGE*BETADRUG*BETAECOG*BETAHEM > > ;;; BETA-RELATION END > > IF (NEWIND.LE.1) THEN > >SRVZ=1 ; Survivor function at TIME=0 > > ENDIF > > ;---BASELINE PSA-- > TVBSL = THETA(1) > > TVBSL = BSLCOV*TVBSL > > BSL = TVBSL*EXP(ETA(1)) > > ;---PSA PARAMETERS-- > TVGRO = THETA(2) > > TVGRO = GROCOV*TVGRO > > TVDEC = THETA(3) > > TVDEC = DECCOV*TVDEC > > GRO = TVGRO*EXP(ETA(2)) > > DEC = TVDEC*EXP(ETA(3)) > > ;---SURVIVAl MODEL PARAMETERS-- > > TVBSHZ = THETA(5) ; Baseline Hazard > > TVBSHZ = BSHZCOV*TVBSHZ > > BSHZ = TVBSHZ > > TVBETA = THETA(6) ; Parameter relating dropout hazard to PSA estimate > TVBETA = BETACOV*TVBETA > BETA = TVBETA > > $DES > >
[NMusers] Rounding (error=134) or obj. func. is infinite (error=136)
Dear NMUsers, Our model keeps having the rounding error (error=134). I tried to fix it using the following methods or their combinations, however, sometimes I then got the message error=136 instead of error=134. But minimization still unsuccessful. Can you please help pointing out how I can solve this problem? I really appreciate it! Thank you 1) Use the estimates for THETA that are ~10% deviated from the estimates provided after scm run. 2) Set TOL=9, NSIG=2, SIGL=6 I attached here the code: $PROBLEMIRM code $INPUT ID TIME EX DV DVID ECOG AGE HT WT RACE SITE DIAG=DROP HEM ALK ALB LAC TES STUDY DRUG PRIORDOC $DATA survival.csv $SUBROUTINE ADVAN13 TOL=9 $MODEL NCOMP=1 COMP(HAZ) $PK ;;; DECECOG-DEFINITION START IF(ECOG.EQ.1) DECECOG = 1 ; Most common IF(ECOG.EQ.0) DECECOG = ( 1 + THETA(27)) IF(ECOG.EQ.2) DECECOG = ( 1 + THETA(28)) ;;; DECECOG-DEFINITION END ;;; GROPRIORDOC-DEFINITION START IF(PRIORDOC.EQ.0) GROPRIORDOC = 1 ; Most common IF(PRIORDOC.EQ.1) GROPRIORDOC = ( 1 + THETA(26)) ;;; GROPRIORDOC-DEFINITION END ;;; GROECOG-DEFINITION START IF(ECOG.EQ.1) GROECOG = 1 ; Most common IF(ECOG.EQ.0) GROECOG = ( 1 + THETA(24)) IF(ECOG.EQ.2) GROECOG = ( 1 + THETA(25)) ;;; GROECOG-DEFINITION END ;;; GROALK-DEFINITION START IF(ALK.EQ.-99) THEN GROALK = 1 ELSE GROALK = ( 1 + THETA(23)*(ALK - 94.00)) ENDIF ;;; GROALK-DEFINITION END ;;; GRO-RELATION START GROCOV=GROALK*GROECOG*GROPRIORDOC ;;; GRO-RELATION END ;;; DECDRUG-DEFINITION START IF(DRUG.EQ.3) DECDRUG = 1 ; Most common IF(DRUG.EQ.2) DECDRUG = ( 1 + THETA(21)) IF(DRUG.EQ.1) DECDRUG = ( 1 + THETA(22)) ;;; DECDRUG-DEFINITION END ;;; DECAGE-DEFINITION START DECAGE = ( 1 + THETA(20)*(AGE - 64.00)) ;;; DECAGE-DEFINITION END ;;; DEC-RELATION START DECCOV=DECAGE*DECDRUG*DECECOG ;;; DEC-RELATION END ;;; BSLHEM-DEFINITION START IF(HEM.LE.124.00) BSLHEM = ( 1 + THETA(18)*(HEM - 124.00)) IF(HEM.GT.124.00) BSLHEM = ( 1 + THETA(19)*(HEM - 124.00)) IF(HEM.EQ.-99) BSLHEM = 1 ;;; BSLHEM-DEFINITION END ;;; BSLECOG-DEFINITION START IF(ECOG.EQ.1) BSLECOG = 1 ; Most common IF(ECOG.EQ.0) BSLECOG = ( 1 + THETA(16)) IF(ECOG.EQ.2) BSLECOG = ( 1 + THETA(17)) ;;; BSLECOG-DEFINITION END ;;; BSLALK-DEFINITION START IF(ALK.EQ.-99) THEN BSLALK = 1 ELSE BSLALK = ( 1 + THETA(15)*(ALK - 94.00)) ENDIF ;;; BSLALK-DEFINITION END ;;; BSL-RELATION START BSLCOV=BSLALK*BSLECOG*BSLHEM ;;; BSL-RELATION END ;;; BSHZPRIORDOC-DEFINITION START IF(PRIORDOC.EQ.0) BSHZPRIORDOC = 1 ; Most common IF(PRIORDOC.EQ.1) BSHZPRIORDOC = ( 1 + THETA(14)) ;;; BSHZPRIORDOC-DEFINITION END ;;; BSHZALK-DEFINITION START IF(ALK.EQ.-99) THEN BSHZALK = 1 ELSE BSHZALK = ( 1 + THETA(13)*(ALK - 94.00)) ENDIF ;;; BSHZALK-DEFINITION END ;;; BSHZ-RELATION START BSHZCOV=BSHZALK*BSHZPRIORDOC ;;; BSHZ-RELATION END ;;; BETAHEM-DEFINITION START IF(HEM.EQ.-99) THEN BETAHEM = 1 ELSE BETAHEM = ( 1 + THETA(12)*(HEM - 124.00)) ENDIF ;;; BETAHEM-DEFINITION END ;;; BETAECOG-DEFINITION START IF(ECOG.EQ.1) BETAECOG = 1 ; Most common IF(ECOG.EQ.0) BETAECOG = ( 1 + THETA(10)) IF(ECOG.EQ.2) BETAECOG = ( 1 + THETA(11)) ;;; BETAECOG-DEFINITION END ;;; BETADRUG-DEFINITION START IF(DRUG.EQ.3) BETADRUG = 1 ; Most common IF(DRUG.EQ.2) BETADRUG = ( 1 + THETA(8)) IF(DRUG.EQ.1) BETADRUG = ( 1 + THETA(9)) ;;; BETADRUG-DEFINITION END ;;; BETAAGE-DEFINITION START BETAAGE = ( 1 + THETA(7)*(AGE - 64.00)) ;;; BETAAGE-DEFINITION END ;;; BETA-RELATION START BETACOV=BETAAGE*BETADRUG*BETAECOG*BETAHEM ;;; BETA-RELATION END IF (NEWIND.LE.1) THEN SRVZ=1 ; Survivor function at TIME=0 ENDIF ;---BASELINE PSA-- TVBSL = THETA(1) TVBSL = BSLCOV*TVBSL BSL = TVBSL*EXP(ETA(1)) ;---PSA PARAMETERS-- TVGRO = THETA(2) TVGRO = GROCOV*TVGRO TVDEC = THETA(3) TVDEC = DECCOV*TVDEC GRO = TVGRO*EXP(ETA(2)) DEC = TVDEC*EXP(ETA(3)) ;---SURVIVAl MODEL PARAMETERS-- TVBSHZ = THETA(5) ; Baseline Hazard TVBSHZ = BSHZCOV*TVBSHZ BSHZ = TVBSHZ TVBETA = THETA(6) ; Parameter relating dropout hazard to PSA estimate TVBETA = BETACOV*TVBETA BETA = TVBETA $DES DSIZE = LOG(BSL*(EXP(-DEC*TIME) + EXP(GRO*TIME) - 1)+1) TEMP = BETA*DSIZE DADT(1) = BSHZ*EXP(TEMP) $ERROR IF (DVID.EQ.1) THEN F_FLAG=0 ; If continuous type data SIZE = LOG(BSL*(EXP(-DEC*TIME) + EXP(GRO*TIME) - 1)+1) IPRED = SIZE ADD = THETA(4) SDSIZE = SQRT(ADD*ADD) Y = SIZE + SDSIZE*EPS(1) W = Y IRES = DV-IPRED IWRES = IRES/(W) ENDIF ;---HAZARD PREDICTION-- CMHZ = A(1) SRVT = EXP(-CMHZ) IF (DVID.EQ.2.AND.DV.EQ.0) THEN F_FLAG=1 Y = SRVT ENDIF IF (DVID.EQ.2.AND.DV.EQ.1) THEN F_FLAG=1 Y = SRVZ-SRVT ENDIF $THETA (50,85,150) ; POP_BSL (0,0.0004,0.1) ; POP_GRO (0,0.02,0.1) ; POP_DEC (0,0.3,0.35) ; ADD_SD (0,0.0009,0.0014) ; BSHZ (0.1,0.3,0.7) ; BETA $THETA (-0.038,-0.003,0.016) ; BETAAGE1 $THETA (-1,0.3,5) ; BETADRUG1