MATLAB Answers

Doripenem PKPD simbiology example: How to execute monte carlo simulation with off diagonal covariance values?

1 view (last 30 days)
Daniel Hines
Daniel Hines on 21 Aug 2019
Answered: Jeremy Huard on 22 Aug 2019
Hellow fellow modeling and simlation rockstar:
How can I randomly sample parameters for a population PKPD model monte carlo simulation that has off diagonal covariance values? Lets use the simbiology example "PKPD modeling and simulation to guide dosing strategy for antibiotics"
For example opening the script to this simbiology example (script attached) we scroll down to this section of the code where we sample PK parameter values from a lognormal distribution:
% *Distribution of Pharmacokinetic (PK) parameters:*
% PK parameters, |Central|, |k12|, and |k21|, were sampled from a lognormal
% distribution with typical values of 7.64 liters, 1.59 1/hour and 2.26
% 1/hour, respectively, and a 20% coefficient of variation (CV). |Central|
% is the distribution volume of the central compartment, and |k12| and
% |k21| are transfer rate constants between the |Central| and the
% |Peripheral| compartments.
Central_mu = mu(m(7.64), v(7.64,0.20));
Central_sigma = sigma(m(7.64), v(7.64,0.20));
k12_mu = mu(m(1.59), v(1.59,0.20));
k12_sigma = sigma(m(1.59), v(1.59,0.20));
k21_mu = mu(m(2.26), v(2.26, 0.2));
k21_sigma = sigma(m(2.26), v(2.26, 0.2));
Central = lognrnd(Central_mu , Central_sigma, nPatients , nDoseGrps); % units: liter
k12 = lognrnd(k12_mu, k12_sigma, nPatients , nDoseGrps) ; % units: 1/hour
k21 = lognrnd(k21_mu, k21_sigma, nPatients , nDoseGrps) ; % units: 1/hour
My understanding is that if we sample this way there is an assumption that the parameters are all independent of each other, in other words, the covariance matrix is diagonal. But what if, for example, k12 and k21 were correlated and had an off diagonal CV value? Is there a minor change I could make to this parameter sampling so that this covariance is reflected in the sampled values of these parameters? I am unsure of how to implement this in the code of this example.
I am using the antibioticdemo file as an example because it is readily available and familiar, and I am arbitrarily suggesting k12 and k21 would be correlated.
Switching gears to another example, If we consider an oral dose pop PK model (with clearance parameterization instead of micro/rate constant parameterizastion) it is common that the bioavailability is unknown due to the abscence of IV dose data along with oral dose data. In this case the bioavailability is lumped into the estimates of clearance and volume of distribution as CL/F and V/F. So prior to any statistical analysis we know that these parameters may be highly corrrelated depending on what the magnitude of the bioavailability is. So to appropriately sample parameters for this model we would see a correlation between the sampled values for CL/F and V/F
Any help is greatly appreciated my friends, Cheers!
Dan Hines

Answers (1)

Jeremy Huard
Jeremy Huard on 22 Aug 2019
Hi Daniel,
you're right, in this example all parameters are independent of each other.
If you want to include correlations, you will need to use a random number generator for a multivariate distribution such as mvnrnd. You can derive a log normal distribition from a normal distribution or use this FileExchange entry from another user: mvlognrand.
I should also point you to the function sbiosampleparameter which will especailly be useful to generate parameters from a covariate model.


More Answers in the  SimBiology Community

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!