← Tous les chapitres Parcours et exercices

Chapitre 03

NONMEM — ETA, OMEGA et variabilité

Racym Berrah, PharmD PMx Explain Mise à jour : Relecture scientifique par l'auteur : ORCID

Comment NONMEM code la variabilité : les ETA log-normaux, les blocs OMEGA diagonaux ou pleins, l'IOV par etas répétés, et la lecture du shrinkage.

1 activités guidées

01 · Pourquoi ce chapitre

Un control stream décrit deux choses très différentes avec la même économie de moyens : le modèle typique (les THETA) et la variabilité autour de ce typique (les ETA, les EPS). La première partie s'apprend vite. La seconde est celle qui décide, en pratique, si le modèle est publiable.

NONMEM ne vous protège de rien ici : une variance mise à la place d'un écart-type se compile sans un mot, et un modèle de variabilité mal posé produit des estimations plausibles mais fausses. Ce chapitre couvre les quatre gestes qui reviennent dans chaque projet : écrire un ETA, choisir entre $OMEGA DIAGONAL et $OMEGA BLOCK, coder l'IOV, et lire ce que le listing renvoie.

02 · Intuition

Imaginez la clairance comme une taille. La population a une taille typique ; chaque patient s'en écarte d'un facteur qui lui est propre et qui ne change pas d'un jour à l'autre.

NONMEM code cet écart individuel par un ETA, un nombre centré sur zéro tiré une fois par patient. Le typique est porté par un THETA, l'écart par un ETA, et le lien entre les deux est presque toujours multiplicatif :

  • ETA(1) = 0 → le patient est exactement typique ;
  • ETA(1) = +0.30 → sa clairance vaut environ 1,35 fois la typique ;
  • ETA(1) = -0.30 → environ 0,74 fois la typique.

03 · La formule décortiquée

L'ETA log-normal

L'écriture canonique d'un paramètre PK dans le bloc $PK est :

$PK
  CL = THETA(1)*EXP(ETA(1))
  V  = THETA(2)*EXP(ETA(2))

soit, en notation mathématique :

CLi=θCL⋅eηi,1,ηi,1∼N(0, ω12)CL_i = \theta_{CL} \cdot e^{\eta_{i,1}}, \qquad \eta_{i,1} \sim \mathcal{N}(0,\ \omega_1^2)

L'ETA est normal, donc le paramètre est log-normal : positif et asymétrique à droite. Cette forme respecte le support d'une clairance. Une écriture additive (CL = THETA(1) + ETA(1)) autorise des valeurs négatives si la dispersion est assez grande ; elle convient surtout lorsque le support et la question scientifique justifient l'échelle additive.

De omega au carré vers le CV%

Ce que vous écrivez dans $OMEGA est une variance, jamais un écart-type. Pour un modèle log-normal, le coefficient de variation exact du paramètre vaut :

CV=eω2−1CV = \sqrt{e^{\omega^2} - 1}

et l'approximation de terrain CV≈ωCV \approx \omega n'est bonne que tant que ω\omega reste petit :

$OMEGA (ω2\omega^2) ω\omega CVCV approché CVCV exact
0,04 0,20 20 % 20,2 %
0,09 0,30 30 % 30,7 %
0,16 0,40 40 % 41,7 %
0,50 0,71 71 % 80,5 %

DIAGONAL contre BLOCK

$OMEGA déclare la matrice de covariance des etas. Deux formes :

$OMEGA DIAGONAL(2)
  0.09          ; variance de ETA(1) — CL
  0.16          ; variance de ETA(2) — V

Ici les etas sont supposés indépendants : connaître la clairance d'un patient n'apprend rien sur son volume. Deux paramètres estimés.

$OMEGA BLOCK(2)
  0.09                 ; variance de ETA(1)
  0.054   0.16         ; covariance(1,2), puis variance de ETA(2)

BLOCK(2) estime en plus le terme hors diagonale, donné en triangle inférieur :

Ω=(ω12ω12ω12ω22),r12=ω12ω1 ω2=0,0540,30×0,40=0,45\Omega = \begin{pmatrix} \omega_1^2 & \omega_{12} \\ \omega_{12} & \omega_2^2 \end{pmatrix}, \qquad r_{12} = \frac{\omega_{12}}{\omega_1\,\omega_2} = \frac{0{,}054}{0{,}30 \times 0{,}40} = 0{,}45

Un BLOCK(n) coûte n(n+1)/2n(n+1)/2 paramètres au lieu de nn. Pour deux modèles emboîtés correctement convergés et sous les conditions usuelles du rapport de vraisemblance, le passage de 2 à 3 paramètres peut être comparé au repère de 3,84 pour 1 degré de liberté au risque de 5 %. La stabilité numérique, la plausibilité et l'effet prédictif restent à vérifier.

L'IOV par etas répétés

L'IOV se code en donnant au patient un eta de plus par occasion, tous tirés dans la même loi. La construction historique de Karlsson et Sheiner utilise des indicatrices d'occasion et le mot-clé SAME :

CLij=θCL⋅eηi+κij,κij∼N(0, ωIOV2)CL_{ij} = \theta_{CL} \cdot e^{\eta_i + \kappa_{ij}}, \qquad \kappa_{ij} \sim \mathcal{N}(0,\ \omega_{\text{IOV}}^2)
$INPUT ID TIME AMT DV OCC WT CRCL

$PK
  OC1 = 0
  OC2 = 0
  IF(OCC.EQ.1) OC1 = 1
  IF(OCC.EQ.2) OC2 = 1
  IOV = OC1*ETA(3) + OC2*ETA(4)

  CL  = THETA(1)*EXP(ETA(1) + IOV)
  V   = THETA(2)*EXP(ETA(2))

$OMEGA BLOCK(2)
  0.09
  0.054  0.16
$OMEGA BLOCK(1) 0.04      ; variance de l'IOV — ETA(3)
$OMEGA BLOCK(1) SAME      ; ETA(4) partage cette variance

SAME est le point clé : sans lui, chaque occasion aurait sa propre variance, ce qui n'a aucun sens (l'IOV est une propriété du médicament, pas de la visite numéro 2) et multiplie les paramètres pour rien. Avec SAME, deux etas supplémentaires ne coûtent qu'un seul paramètre estimé.

Les covariables dans le bloc PK

Une covariable ne s'ajoute pas à côté de l'eta : elle explique une part de ce que l'eta portait. On l'insère donc dans le typique, en amont du EXP(ETA) :

$PK
  TVCL = THETA(1)*(CRCL/90)**THETA(4)
  TVV  = THETA(2)*(WT/70)
  CL   = TVCL*EXP(ETA(1))
  V    = TVV *EXP(ETA(2))
  S1   = V

TVCL est la clairance typique d'un patient ayant cette clairance de la créatinine ; ETA(1) ne représente plus que ce que la CRCL n'explique pas. Une covariable qui marche se voit donc à la baisse d'$OMEGA, pas seulement à la baisse d'OFV.

04 · Exemple concret

Une analyse sur 48 patients, administration IV, un compartiment, avec entre 1 et 6 prélèvements par patient. On part d'un modèle sans covariable et sans corrélation.

Run Modèle de variabilité Paramètres Ω\Omega OFV Δ\DeltaOFV
001 DIAGONAL(2), sans covariable 2 1842,6 —
002 BLOCK(2), sans covariable 3 1831,9 −10,7
003 BLOCK(2) + CRCL sur CL 4 1809,4 −22,5

Run 001 → 002. Un paramètre de plus, l'OFV baisse de 10,7. Sous les hypothèses usuelles du test du rapport de vraisemblance, ce résultat soutient ici le bloc ; r=0,45r = 0{,}45 décrit l'association estimée, sans prouver à lui seul un mécanisme ni sa transportabilité.

Run 002 → 003. L'exposant THETA(4) sur la CRCL est estimé à 0,68. L'$OMEGA de ETA(1) passe de 0,14 à 0,09 :

CVavant=e0,14−1=38,8 %,CVapreˋs=e0,09−1=30,7 %CV_{\text{avant}} = \sqrt{e^{0{,}14}-1} = 38{,}8\ \%, \qquad CV_{\text{après}} = \sqrt{e^{0{,}09}-1} = 30{,}7\ \%

La fonction rénale explique donc environ 8 points de CV sur la clairance. C'est cette phrase-là — pas le Δ\DeltaOFV de 22,5 — qui a un sens clinique et qui ira dans le rapport.

Ce que dit le listing. NONMEM imprime en fin de run les shrinkages, sous la forme ETASHRINKSD(%) :

ETASHRINKSD(%)   8.7   47.2
EBVSHRINKSD(%)   8.1   45.9
EPSSHRINKSD(%)  12.4

Formellement, le shrinkage compare la dispersion des EBE à la variabilité déclarée :

Shη=1−SD(η^i)ωSh_\eta = 1 - \frac{SD(\hat{\eta}_i)}{\omega}

ETA(1) (clairance, informée par toute la courbe) est à 8,7 % : ses diagnostics EBE sont ici plus informatifs, sans que le shrinkage garantisse leur exactitude. ETA(2) (volume) est à 47,2 %, parce que les patients à prélèvement unique apportent peu d'information sur la phase précoce. Sur ces patients-là, l'estimation individuelle retombe vers la population.

05 · Piège fréquent

Le piège n'est pas d'obtenir un shrinkage élevé — c'est inévitable en données éparses. Le piège est de continuer à faire des diagnostics comme si de rien n'était.

Suite du run 003 : on trace ETA(2) contre le poids pour décider si le poids explique le volume. Le nuage est plat, la régression donne une pente quasi nulle. Conclusion apparente : le poids n'agit pas sur VV, on ne le retient pas.

C'est une erreur de raisonnement. Avec 47 % de shrinkage, les EBE de ETA(2) ont été tassés vers zéro par le prior de population : la relation vraie est écrasée dans le nuage avant même d'être regardée. Le graphique ne dit pas « pas d'effet du poids » ; il dit « pas assez de données pour que cet eta parle ».

Trois réflexes une fois le shrinkage constaté :

  • Tester la covariable dans le modèle, pas sur le graphique : on l'inclut dans $PK, on relance, et on juge sur l'OFV et sur $OMEGA. Le test formel reste valide là où le nuage ment.
  • Ne pas fixer $OMEGA à la main pour « corriger » le shrinkage. Le shrinkage mesure un manque d'information dans les données ; changer la valeur d'oméga ne crée pas de prélèvement supplémentaire, il déplace juste le problème.
  • Ne pas supprimer un eta au seul motif qu'il shrinke. Un ETA(2) mal informé chez chaque patient peut rester nécessaire à la description correcte de la dispersion de la population.

06 · À retenir

  • CL = THETA(1)*EXP(ETA(1)) rend le paramètre log-normal : positif, asymétrique à droite — la forme par défaut pour une clairance ou un volume.
  • Ce qu'on écrit dans $OMEGA est une variance. CV=eω2−1CV = \sqrt{e^{\omega^2}-1} ; l'approximation CV≈ωCV \approx \omega décroche au-delà de 40 %.
  • DIAGONAL suppose les etas indépendants ; BLOCK(n) estime leurs covariances pour n(n+1)/2n(n+1)/2 paramètres. Une comparaison de vraisemblance exige ses hypothèses, et une corrélation estimée doit être vérifiée avant interprétation.
  • L'IOV se code par un eta par occasion, avec SAME pour leur imposer une variance commune — deux etas, un seul paramètre.
  • Les covariables entrent dans le typique (TVCL), en amont de EXP(ETA) ; une baisse de $OMEGA peut soutenir leur utilité, avec la plausibilité, la précision et la performance prédictive.
  • L'information des graphiques ETA vs covariable décroît avec le shrinkage ; 20–30 % est une heuristique d'alerte, pas un seuil d'invalidation.

Point de contrôle

Vérifiez votre compréhension

Q1. Dans un control stream, que représente la valeur 0.09 écrite dans `$OMEGA 0.09` ?

Q2. Par rapport à `$OMEGA DIAGONAL(2)`, qu'apporte `$OMEGA BLOCK(2)` sur deux etas ?

Q3. Dans le codage classique de l'IOV, à quoi sert le mot-clé `SAME` sur les OMEGA d'occasion ?

Q4. Le listing indique ETASHRINKSD = 47 % sur ETA(2). Quelle conclusion est justifiée ?

Exercices d'entraînement

Activités guidées

Cas en plusieurs étapes combinant calcul, interprétation et raisonnement.

Activité guidée · 10 min · Niveau 2

NONMEM : traduire OMEGA

Calcul · Interprétation · Lecture de codeÀ commencer

Citer cette page

Berrah R. NONMEM — ETA, OMEGA et variabilité. PMx Explain, 2026. https://rberrah.github.io/pharmacometrie/chapitres/nonmem-variabilite/

@misc{berrah2026nonmemvariabilite,
  author       = {Berrah, Racym},
  title        = {{NONMEM — ETA, OMEGA et variabilité}},
  howpublished = {PMx Explain},
  year         = {2026},
  url          = {https://rberrah.github.io/pharmacometrie/chapitres/nonmem-variabilite/},
  note         = {Texte actuel sous licence CC BY-NC-SA 4.0}
}
Contenu pédagogique uniquement. Pas de conseil médical. Pas d'ajustement posologique patient-spécifique.