Chapitre 04
NONMEM — le bloc ERROR et les données sous la LOQ
Racym Berrah, PharmD PMx Explain Mise à jour : Relecture scientifique par l'auteur : ORCID
Écrire le bloc ERROR : additive, proportionnelle, combinée ; régler SIGMA, traiter les données censurées (M1-M7) et lire WRES, CWRES et IWRES.
1 activités guidées01 · Pourquoi ce chapitre
Le bloc PK décrit ce que l'organisme fait au médicament. Le bloc ERROR décrit tout ce qui sépare la prédiction d'un patient de ce que le laboratoire a réellement mesuré. Il tient souvent en une ligne — et il décide pourtant de l'essentiel.
Car chaque observation entre dans la vraisemblance divisée par son écart-type résiduel. Un point que vous déclarez précis tire fort sur la courbe ; un point que vous déclarez bruité ne pèse presque rien. Écrire ce bloc, ce n'est pas décrire du bruit : c'est distribuer les poids de l'estimation.
Le piège est que rien ne prévient. Avec un mauvais modèle d'erreur, NONMEM converge, imprime des THETA d'allure raisonnable, et vous rend un modèle faux en silence. NONMEM impose par ailleurs une décision explicite sur les concentrations sous la limite de quantification : il ne devine pas à votre place.
02 · Intuition
Un EPS est le tirage de bruit d'une observation ; le bloc SIGMA en donne la variance. Toute la question tient alors en une phrase : de quelle largeur est la barre d'erreur, et comment varie-t-elle avec la concentration ?
Imaginez que vous dessiniez une barre d'erreur sur chaque point avant d'avoir vu l'ajustement. NONMEM tirera ensuite la courbe vers les points aux barres courtes, et laissera filer ceux aux barres longues. Le modèle d'erreur arbitre donc un bras de fer entre le pic et la queue du profil :
- additive : même barre partout (±0,08 mg/L au pic comme au creux). En valeur absolue tout le monde pèse pareil, donc les fortes concentrations, seules capables de gros écarts en mg/L, dominent la somme.
- proportionnelle : la barre grandit avec la prédiction. À 0,3 mg/L elle devient minuscule — ces points-là deviennent presque inviolables et commandent la queue terminale.
Aucun des deux n'a raison partout. C'est pourquoi le modèle combiné existe.
03 · La formule décortiquée
Autour de la prédiction individuelle du sujet au temps , les trois formes canoniques :
avec . Ce qui compte est l'écart-type que chacune implique :
| forme | écriture | écart-type du point |
|---|---|---|
| additive | Y = F + EPS(1) |
|
| proportionnelle | Y = F*(1+EPS(1)) |
|
| combinée | Y = F*(1+EPS(1)) + EPS(2) |
|
| c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 | ||
| c340,-704.7,510.7,-1060.3,512,-1067 | ||
| l0 -0 | ||
| c4.7,-7.3,11,-11,19,-11 | ||
| H40000v40H1012.3 | ||
| s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 | ||
| c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 | ||
| s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 | ||
| c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z | ||
| M1001 80h400000v40h-400000z"/> |
Le bloc SIGMA fournit des variances — pas des écarts-types. C'est une source d'erreur classique : une valeur de 0,04 sur une erreur proportionnelle signifie , soit un CV d'environ 20 %.
$ERROR
IPRED = F
Y = IPRED + IPRED*EPS(1) + EPS(2) ; combinee
$SIGMA
0.04 ; proportionnel : CV ~ 20 %
0.0064 ; additif : SD ~ 0.08 mg/L
La forme purement proportionnelle a un défaut structurel : quand , l'écart-type tend vers zéro. Le modèle affirme alors une précision infinie près de la LOQ, et ces points captent un poids démesuré. Le terme additif est le plancher qui empêche cet effondrement.
Les trois résidus — ils ne répondent pas à la même question :
- IWRES compare l'observation à la prédiction du sujet : il est particulièrement utile pour évaluer le modèle d'erreur, mais peut aussi refléter une mauvaise spécification structurelle ou individuelle.
- CWRES est un résidu de population construit pour tenir compte de l'approximation conditionnelle. Sous les hypothèses et approximations du modèle, on attend un comportement proche de ; des motifs suggèrent une mauvaise spécification structurelle, covariable ou résiduelle à investiguer.
- WRES repose sur l'approximation FO, autour de . Après une estimation FOCE, les CWRES sont généralement plus cohérents avec la méthode ajustée ; WRES reste une sortie possible, mais doit être interprété en connaissant cette approximation.
04 · Exemple concret
Un antibiotique, 60 patients, 480 concentrations, LOQ = 0,25 mg/L. 58 points (12 %) reviennent du laboratoire en BQL, presque tous des creux tardifs.
Réflexe M1 — on les jette, via une clause IGNORE(BQL.EQ.1) dans le bloc de données. Le modèle tourne, converge proprement. Il rend CL = 4,1 L/h, demi-vie terminale 9,8 h, et un terme additif qui s'effondre à 0,02 mg/L.
Le problème est que les BQL ne manquent pas au hasard. À un temps tardif donné, ne survivent que les patients dont la concentration est au-dessus de la moyenne : on ne supprime pas du bruit, on tronque la queue par le bas. La pente terminale paraît plus plate, la clairance sort sous-estimée, et le terme additif n'a plus aucune donnée basse pour l'informer. Refait en M3, le même jeu donne CL = 4,8 L/h, demi-vie 8,1 h, terme additif 0,09 mg/L — un écart de 15 % sur la clairance.
Quinze pour cent sur CL, ce n'est pas une coquetterie de modélisateur : en dosage bayésien, un modèle qui sous-estime la clairance prédit des creux trop hauts et conduit à sous-doser le patient suivant.
Les sept méthodes de Beal — M1 écarte les BQL ; M2 les écarte mais conditionne la vraisemblance des points restants au fait d'être au-dessus de la LOQ ; M3 les traite en données censurées ; M4 ajoute à M3 la contrainte de positivité ; M5 les remplace par LOQ/2 ; M6 ne garde que le premier BQL d'une série, à LOQ/2 ; M7 les remplace par zéro.
M3 est une approche couramment privilégiée lorsque les BQL ne sont pas négligeables, mais le choix dépend du mécanisme de censure, de leur proportion et du modèle. Son principe : un point censuré n'apporte pas une valeur, mais une information — « la concentration était quelque part sous 0,25 ». On l'écrit comme une probabilité, celle que le point tombe sous la LOQ, via la fonction de répartition normale PHI :
$ERROR
IPRED = F
LOQ = 0.25
W = SQRT(THETA(4)**2 + (THETA(5)*IPRED)**2)
IF (BQL.EQ.0) THEN
F_FLAG = 0
Y = IPRED + W*EPS(1) ; vraisemblance normale du point mesure
ELSE
F_FLAG = 1
Y = PHI((LOQ - IPRED)/W) ; probabilite que le point soit sous la LOQ
ENDIF
$SIGMA 1 FIX
$ESTIMATION METHOD=1 INTER LAPLACIAN NUMERICAL
Mettre F_FLAG à 1 annonce à NONMEM que Y n'est plus une prédiction mais une vraisemblance — d'où LAPLACIAN, obligatoire ici. Le jeu de données doit porter une colonne indicatrice BQL déclarée en entrée, et les lignes censurées gardent un DV non manquant (par convention la LOQ), même s'il n'entre pas dans le calcul. Depuis NONMEM 7.3, déclarer la borne de censure via YLO offre un raccourci de même principe, sans coder PHI à la main.
05 · Piège fréquent
Le piège le plus coûteux du modèle d'erreur ne se trouve pas dans son bloc : il est dans celui de l'estimation.
Demander METHOD=1 sans INTER avec une erreur proportionnelle ou combinée est une incohérence silencieuse. Voici pourquoi. FOCE linéarise le modèle autour de l'ETA estimé de chaque sujet, mais la variance résiduelle, sans INTER, reste évaluée à . NONMEM attribue alors à tout le monde la barre d'erreur calculée sur la prédiction typique.
Or l'erreur proportionnelle fait précisément dépendre l'écart-type de , donc de l'ETA du sujet. Un patient dont la clairance vaut le double de la clairance typique a de vraies concentrations plus basses, donc une vraie erreur absolue plus petite : lui coller la barre d'erreur du patient moyen fausse son poids. Les sujets extrêmes sont les plus mal traités, la variance résiduelle sort biaisée, et les ETA se déforment pour compenser.
Avec FOCE, dès que le modèle d'erreur fait dépendre la variance résiduelle de la prédiction individuelle — cas usuel des erreurs proportionnelles ou combinées — utilisez INTER. Le surcoût est quelques minutes de calcul. Avec une erreur strictement additive homoscédastique, l'interaction η–ε disparaît généralement, puisque l'écart-type ne dépend alors plus de l'ETA.
06 · À retenir
- Le bloc d'erreur ne décrit pas du bruit : il distribue les poids de l'estimation. Chaque point entre dans la vraisemblance divisé par son écart-type.
- Trois formes : additive (
Y = F + EPS(1)), proportionnelle (Y = F*(1+EPS(1))), combinée (Y = F*(1+EPS(1)) + EPS(2)). La variance résiduelle se déclare en variance, pas en écart-type. - Préférer la paramétrisation par
Wavec une variance fixée à 1 : termes lisibles en unités physiques, positivité garantie, IWRES disponible. - Sous FOCE, utilisez
INTERdès que la variance résiduelle dépend de la prédiction individuelle ; l'effet disparaît généralement avec une erreur strictement additive homoscédastique. - BQL : supprimer les valeurs sous LOQ peut biaiser les paramètres ; M3 les traite comme censurées (
F_FLAGà 1,PHI,LAPLACIAN) et constitue souvent une option adaptée lorsque leur proportion n'est pas négligeable. - Diagnostics : IWRES informe surtout le modèle d'erreur, CWRES les diagnostics population sous l'approximation conditionnelle, et WRES doit être lu en tenant compte de son approximation FO.
Point de contrôle
Vérifiez votre compréhension
Q1. Avec une erreur proportionnelle ou combinée, l'option INTER du bloc ESTIMATION est nécessaire parce que...
Q2. La méthode M3 de Beal traite une donnée sous la LOQ en...
Q3. Pour juger si le modèle d'erreur résiduelle est bien choisi, le diagnostic le plus direct est...
Exercices d'entraînement
Cas en plusieurs étapes combinant calcul, interprétation et raisonnement.
NONMEM : coder 20 % d’erreur
Calcul · Interprétation · Lecture de codeÀ commencer
NONMEM : coder 20 % d’erreur
Calcul · Interprétation · Lecture de codeÀ commencerCiter cette page
Berrah R. NONMEM — le bloc ERROR et les données sous la LOQ. PMx Explain, 2026. https://rberrah.github.io/pharmacometrie/chapitres/nonmem-erreur-residuelle/
@misc{berrah2026nonmemerreurresiduelle,
author = {Berrah, Racym},
title = {{NONMEM — le bloc ERROR et les données sous la LOQ}},
howpublished = {PMx Explain},
year = {2026},
url = {https://rberrah.github.io/pharmacometrie/chapitres/nonmem-erreur-residuelle/},
note = {Texte actuel sous licence CC BY-NC-SA 4.0}
}