Hello,
I am wondering if we can use M3 method with SAEM?
I don’t see such option in the error model for EM models here, not sure if there are any examples of manually calculating likelihood
Hello,
I am wondering if we can use M3 method with SAEM?
I don’t see such option in the error model for EM models here, not sure if there are any examples of manually calculating likelihood
Hi, yes M3
in Censored()
.
Here’s an example that you can run in Pumas:
using Pumas
using PharmaDatasets
mdl_censored_em = @emmodel begin
@param begin
Kraw ~ 1 | LogitNormal
end
@random begin
Ka ~ 1 + SEX | LogNormal
CLf ~ 1 | LogNormal
end
@covariates WT
@covariance 1 1
@pre begin
CL = CLf * WT
K = Kraw * (0.5 - 0.008) + 0.008
Vc = CL / K
end
@dynamics Depots1Central1
@post begin
SC = Vc / WT
conc = Central / SC
end
@error begin
dv ~ Censored(Normal(conc), 1.0, Inf)
end
end
df = dataset("pumas/event_data/THEOPP")
df.dv = max.(1.0, df.dv)
param = (
#Ka MEAN ABSORPTION RATE CONSTANT for SEX = 0(1/HR), and diff for 0
Ka=(2.77, log(1.5) - log(2.77)),
Kraw=(0.0781 - 0.008) / (0.5 - 0.008), #K MEAN ELIMINATION RATE CONSTANT (1/HR)
CLf=0.0363, #SLP SLOPE OF CLEARANCE VS WEIGHT RELATIONSHIP (LITERS/HR/KG)
)
theopp_censored = read_pumas(df, covariates=[:WT, :SEX])
ft_censored_saem = @time fit(
mdl_censored_em,
theopp_censored,
param,
SAEM(),
)
just run the loglikelihood
function, but with LaplaceI
instead of SAEM
:
loglikelihood(
mdl_censored_em,
theopp_censored,
param,
LaplaceI(),
)