Mixture models

Sometimes we can postulate that the subjects are sampled from a population comprised of multiple subpopulations, each with a distinct set of PK parameter typical values, and there are no covariates data available to indicate which subpopulation a subject is from. For such a scenario, mixture models can be used to estimate \(P(m)\), the probability that a subject belongs to subpopulation \(m\). In other words, unknown parameter \(P(m)\) reflects the proportion of subpopulation \(m\) in the entire population. That is why \(P\) is known as mixing proportions. In general, with \(M\) subpopulations, $$ \sum_{m=1}^M P(m) = 1 $$ Namely, \(P\) is on a \((M-1)\)-simplex. The individual likelihood \(L_i\) is then replaced by $$ L_i=\sum_{m=1}^M p(y_i|\Sigma_i, \theta^{(m)}, \Omega)P(m). $$ Here \(\theta^{(m)}\) is \(\theta\) for subpopulation \(m\). The above \(P\)-weighted average of the invidual likelihood (over all subpopulations) is known as the mixture likelihood. .

For example, assume the body weight in the previous PopPK problem is not measured, we postulate that the population comprised of two subpopulations (possibly due to some unknown body weight threshold), denoted by superscript \((1)\) and \((2)\): $$ \theta^{(1)} = (\theta_1, \theta_3),\quad \theta^{(2)} = (\theta_1\theta_2, \theta_3\theta_4), $$ so that $$ \text{CL}^{(1)}=\theta_1e^{\eta_1}, \quad \text{Vd}^{(1)}=\theta_3e^{\eta_2}, \quad \text{CL}^{(2)}=\theta_2\theta_1e^{\eta_3}, \quad \text{Vd}^{(2)}=\theta_4\theta_3e^{\eta_4}. $$

We can use $MIX record to describe the model:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  $PROB PHENOBARB POPULATION DATA MIXTURE MODEL
  $DATA DATA2 (6F7.0)
  $INPUT ID TIME AMT WT APGR CP=DV
  $SUBROUTINES ADVAN1 TRANS2
  $MIX
  NSPOP=2
  P(1)=THETA(5)
  P(2)=1.-THETA(5)
  $PK
  CALLFL=1
  EST=MIXEST
  CL1=THETA(1)*EXP(ETA(1))
  V1=THETA(3)*EXP(ETA(2))
  CL2=THETA(2)*THETA(1)*EXP(ETA(3))
  V2=THETA(4)*THETA(3)*EXP(ETA(4))
  IF (MIXNUM.EQ.1) THEN
    CL=CL1
    V=V1
  ELSE
    CL=CL2
    V=V2
  ENDIF
  S1=V
  $ERROR
  Y=F*EXP(EPS(1))
  $THETA (0,.0047) (0,2.0) (0,.99) (0,2.0) (0,.5,1)
  $OMEGA BLOCK(2) .05 .01 .03
  $OMEGA BLOCK(2) SAME
  $SIGMA .02
  $ESTM MAXEVAL=500 PRINT=5 INTERACTION METHOD=1

NSPOP=2 in the $MIX block indicates there are two subpopulations (\(K=2\)). Reserved variable P(m), m=1,2 is for \(P(m)\), modeled by a THETA element. User can use the reserved variable MIXNUM as subpopulation index to selectively specify CL and V. By fitting the above model we estimate both sets of typical values and the mixing fraction \(P\).

A slightly more succinct way to write mixture models is to use indicator variables. Take the following control stream for example (examples/example5, see also examples/example3 and examples/example4).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
;# Model Desc: Population Mixture Problem in 1 Compartment model, with rate constant parameter mean modeled for two sub-populations, but its inter-subject variance is the same in both sub-populations. See
;#  https://nmusers.github.io/docs/reference-manual/control-records/mix/
;# Project Name: nm7examples

$PROB RUN example5 (from ad1tr1m4t)
$INPUT C SET ID JID TIME CONC=DV DOSE=AMT RATE EVID MDV CMT VC1 K101 VC2 K102 SIGZ PROB
$DATA example5.csv IGNORE=C

$SUBROUTINES ADVAN1 TRANS1

$MIX
P(1)=THETA(4)
P(2)=1.0-THETA(4)
NSPOP=2

$PK
Q=1
IF(MIXNUM.EQ.2) Q=0
MU_1=THETA(1)
;# Note that MU_2 can be modeled as THETA(2) or THETA(3), depending on the MIXNUM value.
;# Also, we are avoiding IF/THEN blocks.
MU_2=Q*THETA(2)+(1.0-Q)*THETA(3)
V=DEXP(MU_1+ETA(1))
K=DEXP(MU_2+ETA(2))
S1=V

$ERROR
Y = F + F*EPS(1)

$THETA
(-1000.0  4.3 1000.0)  ;[MU_1]
(-1000.0 -2.9 1000.0)  ;[MU_2-1]
(-1000.0 -0.67 1000.0) ;[MU_2-2]
(0.0001 0.667 0.9999)  ;[P(1)]

$OMEGA BLOCK(2)
0.04 ;[p]
0.01  ;[f]
0.04 ;[p]

$SIGMA
0.01 ;[p]

$EST METHOD=ITS INTERACTION NITER=100 PRINT=1 NOABORT SIGL=8 FILE=example5.ext CTYPE=3
$EST METHOD=IMPMAP INTERACTION NITER=20 ISAMPLE=300 PRINT=1 NOABORT SIGL=8
$EST METHOD=IMP INTERACTION NITER=20 ISAMPLE=1000 PRINT=1 NOABORT SIGL=6
$EST NBURN=500 NITER=500 METHOD=SAEM INTERACTION PRINT=10 SIGL=6 ISAMPLE=2
$EST METHOD=IMP INTERACTION NITER=5 ISAMPLE=1000 PRINT=1 NOABORT SIGL=6 EONLY=1 MAPITER=0
$EST METHOD=BAYES INTERACTION NBURN=2000 NITER=5000 PRINT=10  FILE=example5.txt SIGL=8
$EST MAXEVAL=9999 NSIG=2 SIGL=8 PRINT=10 FILE=example5.ext METHOD=CONDITIONAL INTERACTION NOABORT
$COV MATRIX=R

In this model, indicator variable Q is set according to MIXNUM, and used to define the typical value of \(K\).