cholesky_decompose#

pharmpy.modeling.cholesky_decompose(model, rvs=None)[source]#

Cholesky decomposition of joint normally distributed random variables

Parameters:
  • model (Model) – Pharmpy model

  • rvs (Optional[Collection[str]]) – Names of random variables to decompose. None means all etas and is the default

Returns:

Model – An updated Pharmpy model

Example

>>> from pharmpy.modeling import *
>>> model = load_example_model("pheno")
>>> model = create_joint_distribution(model, ['ETA_CL', 'ETA_VC'])
>>> model = cholesky_decompose(model)
>>> model.statements
    L₁ ₁₁ = SD_ETA_CL
        CORR_ETA_VC_ETA_CL⋅SD_ETA_CL⋅SD_ETA_VC
        ──────────────────────────────────────
L₁ ₂₁ =                 L₁ ₁₁
           _______________________
          ╱        2            2
L₁ ₂₂ = ╲╱  - L₁ ₂₁  + SD_ETA_VC
ETA_CL_C = ETA_CL⋅L₁ ₁₁
ETA_VC_C = ETA_CL⋅L₁ ₂₁ + ETA_VC⋅L₁ ₂₂
TVCL = POP_CL⋅WGT
TVV = POP_VC⋅WGT
      ⎧TVV⋅(COVAPGR + 1)  for APGR < 5

TVV = ⎩       TVV          otherwise
           ETA_CL_C
CL = TVCL⋅ℯ
          ETA_VC_C
VC = TVV⋅ℯ
V = VC
S₁ = VC
Bolus(AMT, admid=1) → CENTRAL
┌───────┐
│CENTRAL│──CL/V→
└───────┘
    A_CENTRAL(t)
    ────────────
F =      S₁
Y = EPS₁⋅F + F