Re: Hessian of posterior density is non positive definite during search

From: Leonid Gibiansky Date: November 01, 2010 technical Source: mail-archive.com
Ann, Several ideas: 1. Fix ALAGs to zero, will it help? 2. Try to shield IPRED from being zero IPRED=LOG(0.0001) IF(F.GT.0.0001) IPRED=LOG(F) Y=IPRED + SIG1*ERR(1) (this could be a bad style, but will allow you to test the code) 3. Try ADVAN6, 8, 13 4. Remove BQL part, fit it as a 3-comp linear model 5. Check whether you have any FLG values NE 0 or 1 in the dataset 6. Try (to guard against problem with FLG values): F_FLAG=0 Y=LOG(F) + SIG1*ERR(1) IF(FLG.EQ.1)THEN F_FLAG=1 Y=CUMD ENDIF --------------------- At least, this will help you to understand where the problem is 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 11/1/2010 11:42 AM, Ann Rigby-Jones wrote: > Dear Matt & All > > I’m still battling I’m afraid… > > Can’t seem to get past theSUM OF "SQUARED" WEIGHTED INDIVIDUAL RESIDUALS > IS INFINITE problem. > > I’ve now log-transformed my data, and deleted all but the first > occurrence of a BQL data point from each individual. I’m confident that > the initial estimates of the structural parameters aren’t too far out as > I have already analysed the data set having deleted all BQL points. > > Any other ideas very gratefully received J > > Many thanks > > Ann > > $PROBLEM Step1&2 PK 3comp LAG BLQ M3 > > $INPUT ID DOSE AMT RATE DUR TIME LNDV DV EVID ART FLG AGE WGT MDV > > $DATA step1&2PKBLQnoABSLNv2.csv IGNORE=# > > $SUBROUTINES ADVAN9 TOL=9 > > $MODEL > > COMP(CENTRAL, DEFOBS, DEFDOSE) ;1 > > COMP(PERIPH1) ;2 > > COMP(PERIPH2) ;3 > > $PK > > CL=THETA(1)*EXP(ETA(1)) > > Q2=THETA(2)*EXP(ETA(2)) > > Q3=THETA(3)*EXP(ETA(3)) > > V1=THETA(4)*EXP(ETA(4)) > > V2=THETA(5)*EXP(ETA(5)) > > V3=THETA(6)*EXP(ETA(6)) > > K10=CL/V1 > > K12=Q2/V1 > > K13=Q3/V1 > > K21=Q2/V2 > > K31=Q3/V3 > > S1=V1 > > IF (DUR.EQ.10) THEN > > ALAG1=THETA(7)*EXP(ETA(7)) > > ELSE > > ALAG1=THETA(8)*EXP(ETA(7)) > > ENDIF > > $DES > > DADT(1)=A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) > > DADT(2)=A(1)*K12 - A(2)*K21 > > DADT(3)=A(1)*K13 - A(3)*K31 > > ;DADT(1)=A(4)*KTR + A(2)*K21 + A(3)*K31 - A(1)*(K10+K12+K13) > > ;DADT(2)=A(1)*K12 - A(2)*K21 > > ;DADT(3)=A(1)*K13 - A(3)*K31 > > ;DADT(4)=-A(4)*KTR > > ;DADT(5)=A(4)*KTR - A(5)*KTR > > ;DADT(6)=A(5)*KTR - A(6)*KTR > > ;DADT(7)=A(6)*KTR - A(7)*KTR > > ;DADT(8)=A(7)*KTR - A(8)*KTR > > ;DADT(9)=A(8)*KTR - A(9)*KTR > > $ERROR (ONLY OBSERVATIONS) > > SIG1=THETA(9) > > ;LOQ = 0.4 ; nm/L > > ;IPRED = F > > LOQ = LOG(0.4) > > IPRED = LOG(F) > > DUM = (LOQ-IPRED)/(SIG1*IPRED) > > CUMD=PHI(DUM) > > IF(FLG.EQ.0)THEN ; FLG=0, MDV=0 non BQL values > > F_FLAG=0 > > ;Y = F*(1+SIG1*ERR(1)) > > Y=LOG(F) + SIG1*ERR(1) > > ENDIF > > IF(FLG.EQ.1)THEN ; FLG=1, MDV=0 BQL values > > F_FLAG=1 > > Y=CUMD > > ENDIF > > $THETA (0, 696) ;CL > > $THETA (0, 513) ;Q2 > > $THETA (0, 260) ;Q3 > > $THETA (0, 5600) ;V1 > > $THETA (0, 20500) ;V2 > > $THETA (0, 38000) ;V3 > > $THETA (0.2167, 0.548,1) ;ALAG 10MIN > > $THETA (0.00833, 0.101, 1) ;ALAG 1MIN > > $THETA (0, 0.5) ;SIG1 > > $OMEGA (0.01) ; ETA CL > > $OMEGA (0.01) ; ETA Q2 > > $OMEGA (0 FIX) ; ETA Q3 > > $OMEGA (0.01) ; ETA V1 > > $OMEGA (0 FIX) ; ETA V2 > > $OMEGA (0 FIX) ; ETA V3 > > $OMEGA (0 FIX) ; ETA LAG SHARED > > $SIGMA (1 FIXED) > > $ESTIMATION METHOD=1 LAPLACIAN NUMERICAL SLOW PRINT=1 MAX=9999 NOABORT > SIG=3 > > MSFO=msfo.outputfile > > $COVA > > $TABLE ID EVID AMT TIME IPRED > > NOPRINT FILE=AllRecords.txt > > $TABLE ID CL Q2 Q3 V1 V2 V3 > > ETA1 ETA2 ETA3 ETA4 ETA5 ETA6 ETA7 > > FIRSTONLY NOPRINT NOAPPEND FILE=FirstRecords.txt