FR

Contraindre un THETA

Paramètres contraints

Dans certaines situations nous avons besoin de contraindre un paramètre à être compris dans un intervalle de valeur.
Exemple:
un Emax doit être compris entre 0 et 100%

Une implémentation permet cette contrainte en prenant en compte la variabilité interindividuelle

si
LOGIT = THETA(1) + THETA(2)*WT + ETA(1)

ou si
LOGIT = THETA(1) + ETA(1)
IF (LOGIT.GT.100) LOGIT = 100.00
EMAX = EXP(LOGIT) / (1 + EXP(LOGIT))


Avec ce code, EMAX sera toujours entre 0 et 1 quelque soit la valeur d'ETA
Il n'est pas nécessaire de donner des limites à THETA

En revanche, il peut être utile de transformer THETA pour pouvoir l'interpréter:

THETA_1 = EXP(THETA(1)) / (1 + EXP(THETA(1)))

ou ce qui est équivalent
THETA_1 = 1 / (1 + EXP(-THETA(1)))


MU_x referencing:

Pour contraindre entre 0 et 1

MU_1 = THETA(1)
EXPP = MU_1 + ETA(1)
IF (EXPP<-100.0) EXPP= -100.0; protect againts floating overflow
IF (EXPP>100.0) EXPP= 100.0; protect againts floating overflow
EXPW = EXP(-EXPP)
F1 = 1 / (1.0 + EXPW)

theta peut être retransformé pour être plus interprétable:
Thetap = 1 / (1 + EXP(-THETA(1)))

img