In NONMEM, the entries in the SIGMA block represent the initial values of variances and covariances for the residual deviates (EPS). I am wondering if there is a specific way to do the same in Pumas for the mixed error models.
Sure. But can you be a bit more specific about your model? Can you post a code example? That would make it easier to give you clear advice.
For example, I am trying to convert the following NONMEM mixed error model to Pumas (in the model just before the estimation block towards the end SIGMA is fixed to 1):
$SUBROUTINE ADVAN2 TRANS2
$INPUT STUDY ID TIME AMT DV AGE SEX HEIGHT WEIGHT BMI RACE CYCLE
DAY ALT ALB AST BILI SCR CRCL GENOTYPE SEQUENCE ISFED OCC
EVID MDV FBQL CMT
$DATA …/data/test_data.csv IGNORE=@
$PK
TVCL = THETA(1)
TVV = THETA(2)
TVKA = THETA(3)
CL = TVCL * EXP(ETA(1))
V = TVV * EXP(ETA(2))
KA = TVKA * EXP(ETA(3))
S1 = V
$ERROR
IPRED=F
ERR0=THETA(4)
ERR1=THETA(5)
W = SQRT(ERR02+ERR12IPREDIPRED)
IRES = DV-IPRED
IWRES = IRES/W
Y = IPRED + W * EPS(1)
**
$THETA
(0, 3.94,25) ;CL
(0, 2.76,20) ;V
(0, 3.11) ;ka
(0.0001, 0.12) ;Err0
(0.0001, 0.105) ;Err 1
$OMEGA
0.0225 ;CL
0.0157 ;V
0.107 FIX ;ka
$SIGMA 1 FIX
$ESTIMATION MAX=9000 NOABORT PRINT=1 MET=1 INTER SIG=2
SADDLE_RESET=1
SADDLE_HESS=1
$COVAR PRECOND=4
$TABLE ID TIME IWRES CWRES IPRED DV MDV CWRES DOSE ABSO BI EC GA S1 KEL
NOPRINT FILE=sdtab1
Actually, this is so much simpler in Pumas than in NONMEM. Note that unlike NONMEM, Pumas does not distinguish between THETA, OMEGA and SIGMA; they are all just parameters. You don’t need to create a dummy parameter that is fixed to 1. You just write the expression in the natural way, something like:
@derived begin
dv ~ @. Normal(ipred, w)
end
Does that make sense?
Yes, it is clear now. thank you, @benjaminrich!
In case you want the two error components to be correlated then you can do so by introducing a covariance parameter and then write the error model as
y ~ @. Normal(μ, sqrt((μ*σₚ)^2 + σₐ^2 + 2*μ*σₚₐ))
where σₚₐ
is the covariance parameter. It comes from the fact that
Thank you, @andreasnoack!