Block ERROR
Le modèle d’erreur choisi pour la variabilité résiduelle (SIGMA) est spécifiée dans ce block. La ou les valeurs initiales seront données dans le Block Sigma.
Si une estimation des concentrations individuelles et des paramètres individuels sont nécessaires, elle sera spécifiée dans ce bloc:
Type d’erreur & Code NONMEM
; Additive
Y = F + ERR(1)
; Proportionnelle (constant coefficient of variation)
Y = F * (1 + ERR(1))
; Exponentielle
Y = F * EXP(ERR(1))
; Additive + Proportionnelle
Y = F * (1 + ERR(1)) + ERR(2)
; Poisson
Y = F + SQRT(F)*ERR(1)
Pour un modèle additif, FOCE donne les mêmes résultats que FOCE Modèle INTERACTION.
En revanche, avec un modèle proportionnel, la méthode FOCE INTERACTION est très fortement recommandée. Ce point est développé dans le Block Estimation
Pour avoir un VRAI modèle log normal, il faut d’abord transformer les DV en prenant leur log et utiliser un modèle additif.
Modèle d’erreur additive avec estimation individuelle (POSTHOC)
$ERROR
IPRED=F
W=THETA(x)
Y=F + W * ERR(1)
IRES=DV – IPRED
IWRES=IRES/W
;ne pas oublier
$SIGMA 1 FIX
Permet d’obtenir directement la concentration résiduelle due à l’erreur additive (sans passer par la racine).
Modèle d’erreur proportionnelle
$ERROR
W=F * THETA(x)
Y = F + W * ERR(1)
IPRED = F
IRES = DV – IPRED
IWRES = IRES/W
$SIGMA 1 FIX
modèle d’erreur mixte
$ERROR
IPRED=F
ADD=THETA(x1)
PROP=F * THETA(x2)
SD=SQRT(ADD*ADD+PROP*PROP)
Y=F+SD*ERR(1)
IRES=DV – IPRED
IWRES=IRES/SD
;ne pas oublier:
$SIGMA 1 FIX
Permet d’obtenir directement le CV et la concentration résiduelle due à l’erreur additive (sans passer par la racine).
avec:
IPRED : concentration individuelle estimée en fonction des valeurs des paramètres cinétiques de population adaptées à l’individu selon la méthode Bayésienne:
IRES : résidus individuels
IWRES : résidus individuels pondérés
modèle mixte PK/PD
i.e.: CMT 2 pour PK et CMT 4 pour PD
$ERROR
IF (CMT.EQ.2) THEN
IPRED=A(2)/V2
SD=SQRT(F*F*THETA(x1)**2+THETA(x2)**2)
ENDIF
IF (CMT.EQ.4) THEN
IPRED=A(4)
SD=SQRT(F*F*THETA(x3)**2+THETA(x4)**2)
ENDIF
Y=IPRED + ERR(1)*SD
IRES=DV – IPRED
IWRES=IRES/W
;ne pas oublier:
$SIGMA 1 FIX
NB: pour faire l’estimation des paramètres cinétiques individuels, il faut ajouter l’option POSTHOC dans le Block ESTIMATION.
Si dans le bloc estimation, la méthode FOCE (First Order Conditional Estimate) est choisie, l’option POSTHOC est inutile.
Code pour analyser des DV après transformation logarithmique
On suppose que la colonne DV dans la base de données ait été log-transformée au préalable.
$INPUT ID AMT TIME DV=LNCP
$ERROR (OBSERVATION ONLY)
…
Y = LOG(F) + ERR(1)
…
Dans ce cas on obtient un vrai modèle d’erreur exponentiel,
ln(Y) = ln(F) + ERR(1) et équivalent à Y = F * EXP(ERR(1))
tandis que sinon, Y = F*EXP(ERR(1)) n’est qu’une approximation par
Y = F * (1 + ERR(1))
Dans le cas d’un modèle mixte:
Y = LOG(F) + SQRT(THETA(x)**2 + THETA(y)**2/F**2)*ERR(1)
sans oublier:
$SIGMA 1 FIX
Avec ce dose, THETA(x) et THETA(y) ont la même signification qu’avec le code suivant utilisé pour des données non-transformées:
Y=F+SQRT(THETA(x)**2+THETA(y)**2*F**2)*EPS(1)
autre code possible:
IPRED=F
W = SQRT( (THETA(x)/IPRED)**2 +THETA(y) )
Y= LOG(IPRED)+W*EPS(1)
IRES=DV-LOG(IPRED)
IWRES=IRES/W
$SIGMA 1 FIXED
Problème pour les log des valeurs « =0 »:
L’ajout « OBSERVATION ONLY » permet d’éviter les messages d’erreurs liés aux DV=0 de la colonne AMT>0.
Cette astuce ne fonctionne pas quand il s’agit d’une simulation.
Dans le cas d’une simulation il faut ajouter:
IF (ICALL.EQ.4) THEN
IF (F.NE.0) Y=LOG(F)
ENDIF
Code pour récupérer les Log des concentrations observées et prédites
$ERROR
Y = F + F*ERR(1)
LDV=DV
LPR=F
IF(LDV.EQ.0) LDV=0.00001
IF(LPR.EQ.0) LPR=0.00001
LDV=LOG(LDV)
LPR=LOG(LPR)
Code pour informer nonmem du type de variable DV utilisée, continue ou catégorielle avec option F_FLAG:
$ERROR
IF (TYPE.EQ.0) THEN
; PK data
F_FLAG=0
Y = F + F*ERR(1) ; une prediction
ELSE
; categorical data
F_FLAG=1
A=DEXP(EXPP)
B=1+A
Y = DV*A/B + (1-DV)/B ; a likelihood
ENDIF