Chapitre 05
Le moteur de NONMEM — FOCE-I décortiqué
Racym Berrah, PharmD PMx Explain Relecture scientifique par l'auteur : ORCID
Ce que calcule vraiment la ligne ESTIMATION : linéarisation de Taylor autour des EBE, rôle de INTER, nature de l'OFV et lecture des statuts de terminaison.
1 activités guidées01 · Pourquoi ce chapitre
Un fichier de contrôle se lit vite : des blocs, des colonnes, un modèle. La ligne qui décide de tout tient pourtant en quelques mots — $ESTIMATION METHOD=1 INTER. Elle ne décrit pas le modèle : elle décrit la façon dont NONMEM va évaluer ce modèle.
Deux runs sur les mêmes données, avec le même modèle et deux $ESTIMATION différents, ne rendent ni les mêmes paramètres ni le même OFV. Tant qu'on ignore ce que cette ligne calcule, on lit les sorties de NONMEM comme un oracle : on subit le nombre au lieu de l'interpréter. Ce chapitre ouvre la boîte.
02 · Intuition
Le problème que NONMEM doit résoudre est une intégrale. Pour chaque sujet, la vraisemblance des observations exige de moyenner sur tous les η possibles — toutes les versions de ce patient compatibles avec la population. Si le modèle était linéaire en η, cette intégrale aurait une solution analytique et le sujet serait clos.
Un modèle PK ne l'est jamais. Une concentration dépend d'un terme en exponentielle, et la clairance qui s'y trouve dépend elle-même de . L'intégrale n'a pas de forme fermée : il faut l'approcher.
Alors on triche — et toute la question est où l'on triche. FO remplace le modèle par sa tangente en η = 0 : la tangente du patient typique, appliquée à tout le monde. FOCE prend la tangente en η̂ᵢ, l'estimation bayésienne empirique (EBE) du sujet — là où ce patient se trouve réellement. Une approximation locale n'est bonne qu'au voisinage de son point d'appui ; FOCE déplace ce point d'appui sur chaque patient, un par un.
Le prix est immédiat : il faut retrouver η̂ᵢ pour chaque sujet, et recommencer à chaque itération de population, puisque θ et Ω bougent entre-temps. FOCE est une boucle d'optimisation à l'intérieur d'une boucle d'optimisation. FO n'a pas de boucle interne : c'est pourquoi il est rapide, et c'est exactement pourquoi il dérape dès que la variabilité interindividuelle est grande.
03 · La formule décortiquée
Le modèle individuel, avec une erreur proportionnelle :
La vraisemblance du sujet i est l'intégrale à contourner :
FO et FOCE reposent sur une linéarisation locale d'ordre 1 autour d'un point d'appui :
Le choix de distingue FO de FOCE. Laplace ajoute l'information de courbure au mode conditionnel, tandis que SAEM et IMP appartiennent aux méthodes stochastiques et ne reposent pas sur cette même linéarisation :
Ligne $ESTIMATION |
Point d'appui | Boucle interne |
|---|---|---|
METHOD=0 (FO) |
, le patient typique | non |
METHOD=1 (FOCE) |
, l'EBE du sujet | oui |
METHOD=1 LAPLACIAN |
+ dérivées secondes | oui |
METHOD=SAEM, METHOD=IMP |
aucune linéarisation (stochastique) | sans objet |
Ce que fait INTER. Une fois la moyenne linéarisée, il reste à écrire la variance conditionnelle des observations. Avec une erreur proportionnelle :
Cette variance dépend de η. Sans INTER, NONMEM l'évalue tout de même en η = 0, avec la prédiction typique — alors que la moyenne, elle, a été linéarisée en η̂ᵢ. Avec INTER, la variance est évaluée en η̂ᵢ elle aussi. L'« interaction » du nom, c'est celle entre η et ε : la taille de l'erreur résiduelle dépend de l'endroit où se trouve l'individu.
Concrètement : un patient dont la clairance vaut la moitié de la clairance typique a des concentrations à peu près doubles, donc une erreur proportionnelle deux fois plus grande en valeur absolue. Sans INTER, NONMEM lui attribue l'erreur résiduelle du patient moyen ; ses observations sont mal pondérées, et sa contribution à la vraisemblance est fausse. Si l'erreur est purement additive, ne dépend pas de η et INTER ne change rien — d'où la règle : INTER va avec les erreurs proportionnelle, combinée ou exponentielle, c'est-à-dire presque toute la PK.
Ce qu'est l'OFV. La fonction objective minimisée par NONMEM est
où est la vraisemblance approchée, de la façon que la méthode a choisie. Deux remarques décident de toute la suite :
- NONMEM omet une constante additive (le terme en des lois normales). Son OFV est donc à une constante près : une valeur isolée ne signifie rien. Une comparaison avec le « −2LL » d'un autre logiciel exige d'abord d'harmoniser constantes, définition de vraisemblance, approximation, conventions et données.
- Le chapeau de n'est pas décoratif. FO, FOCE, FOCE-I et Laplace calculent quatre fonctions différentes. Comparer leurs OFV, c'est comparer deux approximations, pas deux ajustements.
Le test du rapport de vraisemblance. Pour deux modèles emboîtés, sur les mêmes données, avec la même méthode :
Seuils à 5 % : 3,84 pour 1 paramètre, 5,99 pour 2, 7,81 pour 3, sous les conditions de régularité du test. La constante additive commune omise disparaît exactement dans la soustraction. En revanche, employer la même méthode ne garantit pas que son biais d'approximation s'annule entre deux modèles : la comparabilité doit aussi tenir compte des hypothèses du test, de la stabilité numérique et de la pertinence scientifique.
; --- FOCE avec interaction : le cheval de bataille
$ESTIMATION METHOD=1 INTER MAXEVAL=9999 SIGDIGITS=3 PRINT=5 NOABORT
$COVARIANCE PRINT=E
; --- FO : rapide, historique, biaise des que l'IIV est grande
$ESTIMATION METHOD=0 MAXEVAL=9999 PRINT=5
; --- SAEM : pas de linearisation, mais l'OFV demande une etape a part
$ESTIMATION METHOD=SAEM INTERACTION NBURN=2000 NITER=1000 SEED=20260714
$ESTIMATION METHOD=IMP INTERACTION EONLY=1 NITER=10 ISAMPLE=3000 PRINT=1
04 · Exemple concret
Étude à 60 sujets, modèle à 1 compartiment, erreur proportionnelle, IIV sur CL et V.
| Run | Modèle | Méthode | OFV | ΔOFV vs référence |
|---|---|---|---|---|
| 1 | base | FOCE-I | 1524,8 | référence |
| 2 | run 1 + exposant du poids sur CL (1 θ) | FOCE-I | 1512,1 | 12,7 > 3,84 → on garde |
| 3 | run 2 + âge sur V (1 θ) | FOCE-I | 1510,4 | 1,7 < 3,84 → on jette |
Jusqu'ici tout est régulier : modèles emboîtés, mêmes données, même $ESTIMATION, seuil à 3,84 pour 1 degré de liberté.
Vient maintenant la démonstration qui compte. On reprend le run 1, strictement inchangé — mêmes données, même modèle, mêmes valeurs initiales — et on remplace la seule ligne $ESTIMATION par METHOD=0. Résultat : OFV = 1489,3.
L'OFV a baissé de 35,5 points. Aucun paramètre n'a été ajouté, aucune covariable n'a été testée, rien n'a été « amélioré » : seule l'approximation a changé. Un ΔOFV de 35,5 face à un seuil de 3,84 paraît écrasant — et il ne veut rigoureusement rien dire. C'est la meilleure preuve que l'OFV n'est pas une note absolue : c'est la valeur d'une fonction qui dépend de la méthode.
Passons au run 4 : modèle à 2 compartiments, IIV sur CL, V1, Q et V2, bloc OMEGA plein.
MINIMIZATION TERMINATED
DUE TO ROUNDING ERRORS (ERROR=134)
NO. OF FUNCTION EVALUATIONS USED: 1287
NO. OF SIG. DIGITS UNREPORTABLE
Le message ne dit pas « ton modèle est faux ». Il dit : « je n'arrive plus à gagner les 3 chiffres significatifs demandés ». Près de l'optimum, NONMEM calcule ses gradients par différences finies ; si la surface d'OFV est plate ou bruitée dans une direction, la variation utile passe sous le bruit d'arrondi et le pas suivant devient du hasard.
Ici, le diagnostic est lisible dans les sorties : l'ω de Q est descendue à et la corrélation estimée entre η_V1 et η_V2 vaut 0,98. Le modèle demande aux données de distinguer deux volumes qu'elles ne distinguent pas. Retirer l'η sur Q suffit à retrouver MINIMIZATION SUCCESSFUL et un $COVARIANCE qui aboutit.
05 · Piège fréquent
Les échecs de NONMEM sont bruyants ; ses erreurs, elles, sont silencieuses.
Le piège symétrique est tout aussi répandu : lire MINIMIZATION SUCCESSFUL comme un certificat de qualité. Cette ligne dit qu'un algorithme d'optimisation s'est arrêté satisfait de sa propre précision numérique. Elle ne dit rien sur le fait que le modèle décrive la biologie, que les paramètres soient identifiables, ou que la VPC tienne. À l'inverse, un ROUNDING ERRORS ne condamne pas un modèle : il signale qu'on demande aux données plus qu'elles ne contiennent, ou que le problème est mal cadré numériquement.
06 · À retenir
- La vraisemblance de population est une intégrale sans forme fermée ; FO, FOCE et Laplace la contournent par une linéarisation de Taylor, SAEM et IMP par du stochastique.
- Tout tient au point d'appui : FO linéarise en η = 0 (le patient typique, pour tout le monde), FOCE en η̂ᵢ (l'EBE de chaque sujet) — au prix d'une boucle interne à chaque itération.
INTERévalue la variance résiduelle en η̂ᵢ au lieu de η = 0 : indispensable avec une erreur proportionnelle ou combinée, sans effet avec une erreur purement additive.- OFV = −2 log L̂ à une constante additive près, et le « chapeau » dépend de la méthode : ne jamais comparer aveuglément des OFV de FO, FOCE-I, SAEM ou d'un autre logiciel ; vérifier objectif, données, approximation, constantes et conventions.
- ΔOFV ~ χ² (seuil 3,84 à 1 ddl, 5 %) : uniquement entre modèles emboîtés, mêmes données et même méthode, sous les conditions de régularité. La constante additive commune s'annule ; le biais d'approximation ne le fait pas nécessairement.
MINIMIZATION SUCCESSFULn'est pas une validation ;ROUNDING ERRORSn'est pas une condamnation — c'est un signal de sur-paramétrisation ou de mauvais cadrage numérique.
Point de contrôle
Vérifiez votre compréhension
Q1. Pourquoi l'OFV d'un run METHOD=0 (FO) ne se compare-t-il pas à celui d'un run METHOD=1 INTER (FOCE-I) ?
Q2. Dans METHOD=1 INTER, à quoi sert exactement l'option INTER ?
Q3. Un run se termine par MINIMIZATION TERMINATED DUE TO ROUNDING ERRORS. Cela signifie que...
Exercices d'entraînement
Cas en plusieurs étapes combinant calcul, interprétation et raisonnement.
NONMEM : contrôler la stabilité
Calcul · Décision · InterprétationÀ commencer
NONMEM : contrôler la stabilité
Calcul · Décision · InterprétationÀ commencerCiter cette page
Berrah R. Le moteur de NONMEM — FOCE-I décortiqué. PMx Explain, 2026. https://rberrah.github.io/pharmacometrie/chapitres/nonmem-moteur/
@misc{berrah2026nonmemmoteur,
author = {Berrah, Racym},
title = {{Le moteur de NONMEM — FOCE-I décortiqué}},
howpublished = {PMx Explain},
year = {2026},
url = {https://rberrah.github.io/pharmacometrie/chapitres/nonmem-moteur/},
note = {Texte actuel sous licence CC BY-NC-SA 4.0}
}