User defined likelihood function in POSTHOC estimation
Dear NMusers,
I would like to reproduce POSTHOC estimation with manually defined likelihood
(LL) function.
This is the control stream of a standard POSTHOC for which I want to reproduce:
$PK
CL = THETA(1) * CLCR/100 * EXP(ETA(1))
V = THETA(2) * WGT * EXP(ETA(2))
S1 = V
$ERROR
IPRED = F
Y = IPRED + IPRED*EPS(1) + EPS(2)
$THETA
4.58 ; TVCL (L/h)
1.53 ; TVV (L/kg)
$OMEGA
0.151321 ; omega^2 CL
0.139876 ; omega^2 V
$SIGMA
0.039601 ; Proportional
5.76 ; Additive
$EST METHOD=COND LAPLACE MAXEVAL=0 NOABORT SIG=3 PRINT=1
And below is the control stream I used aiming to reproduce above POSTHOC
estimation:
$PK
CL = THETA(1) * CLCR/100 * EXP(ETA(1))
V = THETA(2) * WGT * EXP(ETA(2))
S1 = V
$ERROR
IPRED = F ; Predicted DV
ADDI = 5.76 ; Variance of additive error
PROR = 0.039601 ; Variance of proportional error
VAR = ADDI + PROR*IPRED**2 ; Variance of combined error
Y = LOG(W) + (DV-IPRED)**2/VAR ; -2 log Likelihood,
$THETA
4.58 ; TVCL (L/h)
1.53 ; TVV (L/kg)
$OMEGA
0.151321 ; omega^2 CL
0.139876 ; omega^2 V
$EST METHOD=COND LAPLACE -2LL MAXEVAL=0 NOABORT SIG=3 PRINT=1
The LL function was based on the minus twice log posterior distribution:
-2LPosterior = log(Var) + SUM{(DV-IPRED)^2/Var} + ETA^2/OMEGA^2
I did not add eta/omega part (prior distribution) to the LL function in the
code because NONMEM seems to apply them automatically in POSTHOC. The eta
estimates using defined LL function were fairly close but not exactly same as
what standard POSTHOC generated and I don't know why. Does anyone have ideas
what might be going wrong in the code? Any input is appreciated!
Yours sincerely,
Tingjie Guo