Joint models for non-continuous outcomes
Details on the different types of models for non-continuous data in Monolix and their syntax are given on these pages:
Detailed descriptions of the library of non-continuous data models integrated Monolix Simulx are given here:
On the current page, we show examples of joint models combining continuous and non-continuous outcomes from the Monolix demos.
Demos: warfarin_cat_project, PKcount_project, PKrtte_project
Joint model for continuous PK and categorical PD data
warfarin_cat_project (data = ‘warfarin_cat_data.txt’, model = ‘PKcategorical1_model.txt’)
In this example, the original PD data has been recorded as 1 (Low), 2 (Medium) and 3 (High).
More details about the data
International Normalized Ratio (INR) values are commonly used in clinical practice to target optimal warfarin therapy. Low INR values (<2) are associated with high blood clot risk and high ones (>3) with high risk of bleeding, so the targeted value of INR, corresponding to optimal therapy, is between 2 and 3.
Prothrombin complex activity is inversely proportional to the INR. We can therefore associate the three ordered categories for the INR to three ordered categories for PCA: Low PCA values if PCA is less than 33% (corresponding to INR>3), medium if PCA is between 33% and 50% (INR between 2 and 3) and high if PCA is more than 50% (INR<2).
The column dv
contains both the PK and the new categorized PD measurements. Instead of modeling the original PD data, we can model the probabilities of each of these categories, which have direct clinical interpretations. The model is still a joint PKPD model since this probability distribution is expected to depend on exposure, i.e., the plasmatic concentration predicted by the PK model. We introduce an effect compartment to mimic the effect delay. Let be the PCA level for patient i at time . We can then use a proportional odds model for modeling this categorical data:
where is the predicted concentration of warfarin in the effect compartment at time t for patient i with PK parameters . This model defines a probability distribution for if .
If , the probability of low PCA at time increases along with the predicted concentration . The joint model is implemented in the model file PKcategorical1_model.txt
[LONGITUDINAL]
input = {Tlag, ka, V, Cl, ke0, alpha, beta, gamma}
EQUATION:
{Cc,Ce} = pkmodel(Tlag,ka,V,Cl,ke0)
lp1 = alpha + beta*Ce
lp2 = lp1+ gamma ; gamma >= 0
DEFINITION:
Level = {type=categorical, categories={1,2,3}
logit(P(Level<=1)) = lp1
logit(P(Level<=2)) = lp2
}
OUTPUT:
output = {Cc, Level}
See Categorical data model for more details about categorical data models.
Joint model for continuous PK and count PD data
PKcount_project (data = ‘PKcount_data.txt’, model = ‘PKcount1_model.txt’)
The data file used for this project is PKcount_data.txt
where the PK and the count PD measurements are simulated. We use a Poisson distribution for the count data, assuming that the Poisson parameter is function of the predicted concentration. For any individual i, we have
where is the predicted concentration for individual i at time t and
The joint model is implemented in the model file PKcount1_model.txt
[LONGITUDINAL]
input = {ka, V, Cl, lambda0, IC50}
EQUATION:
Cc = pkmodel(ka,V,Cl)
lambda=lambda0*(1 - Cc/(IC50+Cc))
DEFINITION:
Seizure = {type = count,
log(P(Seizure=k)) = -lambda + k*log(lambda) - factln(k)
}
OUTPUT:
output = {Cc,Seizure}
See Count data model for more details about count data models.
Joint model for continuous PK and time-to-event data
PKrtte_project (data = ‘PKrtte_data.txt’, model = ‘PKrtteWeibull1_model.txt’)
The data file used for this project is PKrtte_data.txt
where the PK and the time-to-event data are simulated. We use a Weibull model for the events count data, assuming that the baseline is function of the predicted concentration. For any individual i, we define the hazard function as
where is the predicted concentration for individual i at time t. The joint model is implemented in the model file PKrtteWeibull1_model.txt
[LONGITUDINAL]
input = {ka, V, Cl, gamma, beta}
EQUATION:
Cc = pkmodel(ka, V, Cl)
if t<0.1
haz = 0
else
haz = gamma*Cc*(t^(beta-1))
end
DEFINITION:
Hemorrhaging = {type=event, hazard=haz}
OUTPUT:
output = {Cc, Hemorrhaging}
See Time-to-event data model for more details about time-to-event data models.