Cas pratique

Warfarine — un modèle PopPK, de la donnée aux diagnostics

Un fil rouge complet sur un vrai jeu de données warfarine (251 observations, 32 sujets) : explorer, ajuster à la main, choisir un modèle d'erreur, estimer avec nlmixr2 (R), diagnostiquer et comparer — comme dans un projet réel.

Support d'enseignement uniquement — aucune recommandation posologique clinique.

Données → exploration → modèle structural → erreur résiduelle → modèle statistique → estimation (SAEM) → diagnostics → comparaison

1 · Le jeu de données

Format « long » de population, une ligne par événement (dose ou observation). Colonnes typiques :

ColonneSignification
ididentifiant patient
timetemps (h)
amtdose administrée (mg)
dvobservation (concentration PK ou effet PD)
dvidtype : 1 = PK, 2 = PD
wt, sex, agecovariables

Jeu de données classique, inspiré de l'exemple Monolix ↗ (dose orale unique, PK puis PD).

2 · Explorer les données et ajuster le modèle

Avant tout, on regarde : les 251 vraies observations ci-dessous. Puis on ajuste à la main un modèle 1 compartiment (absorption Ka, latence Tlag, clairance CL, volume V) pour que la courbe traverse le nuage — le RMSE chiffre l'écart. Basculez en Obs vs préd pour voir le même ajustement autrement.

Demi-vie41 h
RMSE1.85 mg/L
Données251 pts · 32 sujets

Les observations Warfarin réelles sont regroupées pour 32 sujets. Régler manuellement Ka, CL, V et Tlag modifie une seule courbe typique et sa comparaison Obs–PRED illustrative ; ce n’est pas le diagnostic d’un modèle PopPK estimé avec IIV et covariables. RMSE est ici descriptif.

Temps (h)Concentration (mg/L)

Chaque point est une concentration réelle mesurée. La dispersion du faisceau annonce la variabilité inter-individuelle à modéliser (chapitre variabilité).

3 · Le modèle structural (le code)

Le squelette déterministe correspondant à l'ajustement ci-dessus : un compartiment, absorption orale d'ordre 1, temps de latence.

# Modèle structural PK — 1 compartiment, absorption orale + Tlag (nlmixr2)
pk_1cmt <- function() {
  ini({
    tka  <- log(0.9)   # constante d'absorption Ka
    tcl  <- log(0.135) # clairance CL
    tv   <- log(8.0)   # volume V
    tlag <- log(0.8)   # temps de latence
    eta.cl ~ 0.1       # variabilité inter-individuelle sur CL
    eta.v  ~ 0.1
    add.err <- 0.7     # erreur résiduelle
  })
  model({
    ka <- exp(tka); cl <- exp(tcl + eta.cl); v <- exp(tv + eta.v)
    lag(depot) = exp(tlag)               # retard avant absorption
    d/dt(depot) = -ka * depot
    d/dt(centr) =  ka * depot - (cl / v) * centr
    cp = centr / v
    cp ~ add(add.err)
  })
}
fit <- nlmixr(pk_1cmt, dat_pk, est = "saem")

4 · L'erreur résiduelle

La prédiction ne passe jamais exactement par les points : il reste un bruit résiduel (dosage, temps, non-modélisé). Sa forme compte. Autour de la courbe, la bande à ±1,96·SD doit contenir ≈ 95 % des vrais points — testez les trois modèles d'erreur :

SD à PRED = 10.61 mg/L
SD à PRED = 101.34 mg/L

Ce graphe montre uniquement la forme supposée de la SD résiduelle selon la prédiction. Il ne juge pas l'adéquation du modèle : cela nécessite des prédictions individuelles et des diagnostics de résidus.

PRED (mg/L)SD (mg/L)

Additive : largeur constante (bien à basse concentration). Proportionnelle : s'élargit avec la prédiction (bien à haute). Combinée : les deux — souvent le meilleur compromis. Détails : chapitre L'erreur résiduelle.

# Modèle d'erreur résiduelle : trois choix
cp ~ add(add.err)                    # additive     : bruit de largeur constante
cp ~ prop(prop.err)                  # proportionnelle : %CV constant
cp ~ add(add.err) + prop(prop.err)   # combinée     : plancher additif + pourcentage

5 · Modèle statistique + estimation (SAEM)

On ajoute la variabilité inter-individuelle (η sur CL, V, log-normale) et, si utile, une covariable (poids sur CL/V par allométrie). Les paramètres sont estimés par SAEM (maximum de vraisemblance), qui alterne simulation des effets individuels et mise à jour des paramètres de population.

# Covariable poids (allométrie centrée à 70 kg) + erreur combinée
  model({
    cl <- exp(tcl + 0.75 * log(WT/70) + eta.cl)  # exposant allométrique 0,75
    v  <- exp(tv  + 1.00 * log(WT/70) + eta.v)
    ...
    cp ~ add(add.err) + prop(prop.err)
  })

6 · Diagnostics — les graphiques de qualité d'ajustement

Le modèle est-il fiable ? On croise plusieurs graphiques, chacun révélant un défaut différent. (Panorama complet : parcours Validation.)

a · Observations vs prédictions (données réelles)

Demi-vie41 h
RMSE1.85 mg/L
Données251 pts · 32 sujets

Les observations Warfarin réelles sont regroupées pour 32 sujets. Régler manuellement Ka, CL, V et Tlag modifie une seule courbe typique et sa comparaison Obs–PRED illustrative ; ce n’est pas le diagnostic d’un modèle PopPK estimé avec IIV et covariables. RMSE est ici descriptif.

Prédictions (mg/L)Observations (mg/L)

Chaque point : une vraie observation placée en (prédiction, valeur mesurée). Un bon modèle aligne le nuage sur la diagonale ; ajustez CL/V/Ka/Tlag et voyez le nuage se resserrer.

b · VPC — le test prédictif visuel

500 essais répliqués de 60 patients, simulés depuis le modèle candidat à un compartiment avec le plan observé. Le jeu observé a été généré indépendamment depuis le modèle de référence (CL 5 L/h, oméga CL 30 %, SD résiduelle 15 %).
120 obs · 0.5–1 h60 obs · 2–2 h60 obs · 4–4 h60 obs · 8–8 h60 obs · 12–12 h60 obs · 24–24 h
05101520Temps (h)246810121416Concentration (mg/L)
Intervalle de simulation à 90 % du P50 modèle Intervalles de simulation à 90 % des P5/P95 modèle P5/P50/P95 observés

Un écart répété ou structuré peut être compatible avec une mauvaise spécification du modèle, de la variabilité, de l’erreur résiduelle, du plan ou des classes. Une VPC n’identifie pas seule une cause unique.

Des écarts répétés entre les percentiles observés et les bandes simulées suggèrent une inadéquation prédictive, sans identifier seuls une cause structurale ou de variabilité. (La VPC utilise des simulations stochastiques du modèle avec le plan observé.)

c · NPDE — résidus par simulation

Moyenne (cible 0)-0.03
Écart-type (cible 1)0.98
Compatible N(0,1)

Sous les hypothèses des NPDE, la distribution est attendue proche de N(0,1). Une moyenne décalée ou une dispersion modifiée suggère une inadéquation prédictive, sans en identifier seule la cause.

NPDE

Sous leurs hypothèses de calcul, les NPDE sont attendus proches de N(0,1). Un décalage de moyenne ou de dispersion suggère une inadéquation prédictive sans en identifier la cause. (Schéma illustratif.)

7 · Comparer les modèles (diagnostics numériques)

Les graphiques disent comment un modèle se trompe ; les nombres disent lequel choisir. On compare l'OFV (−2 log L) via le test du χ² (modèles emboîtés) ou l'AIC/BIC (pénalisés). Détails : Diagnostics numériques.

Seuil χ² (5 %)3.84
Gain significatif (LRT)
ΔAIC-10.0
ΔBIC-6.7

Sous les conditions de régularité pour des modèles emboîtés, un ΔOFV au-delà du seuil favorise le modèle plus riche par LRT. Un ΔAIC ou ΔBIC négatif le favorise selon ce critère ; aucun ne confirme le modèle. Les paramètres en frontière exigent une autre loi de référence et le n effectif du BIC doit être documenté en modèle hiérarchique.

seuil 3.8ΔOFVχ² (Δdf = 1)
ModèleStructureAICBIClogLik
r011 compartiment, sans Tlag899.6927.8-441.8
r021 compartiment + Tlag781.8817.1-380.9
r032 compartiments + Tlag817.1859.4-396.5

Ajouter le Tlag (r01→r02) fait chuter l'AIC de ~118 points : le modèle avec délai est très fortement favorisé dans cette comparaison. Passer à 2 compartiments (r03) dégrade l'AIC : plus complexe n'est pas meilleur.

8 · Bilan & pour aller plus loin

En huit étapes, on a construit un modèle PopPK complet sur données réelles : exploration → structural (+ Tlag) → erreur résiduelle → variabilité/covariables → estimation → diagnostics → comparaison. La suite naturelle est la partie PK/PD — relier l'effet (INR / activité) à la concentration, souvent avec un retard (turnover des facteurs de coagulation) — et l'individualisation de dose.

Chapitres liés : erreur résiduelle · covariables · diagnostics · OFV/AIC/BIC · PK/PD.

9 · Télécharger le matériel

Pré-requis R: nlmixr2, rxode2, nlmixr2data, ggplot2, dplyr.

Contenu pédagogique uniquement. Pas de conseil médical. Pas d'ajustement posologique patient-spécifique.