$SIGMA

Supplies initial estimates for the NONMEM SIGMA Matrix.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 $SIGMA  [DIAGONAL(n) | BLOCK(n) | BLOCK(n) SAME(m) | BLOCK SAME(m)]
         [[value1]  [value2]  [value3] ...
         [(value,value...) xn]
         [BLOCK(n) VALUES(diag,odiag)]
         [label=value] ...
         [BLOCK(n) [NAMES (label1,...,labeln)] [VALUES (diag,odiag)]
         [FIXED] [UNINT]
         [VARIANCE|STANDARD] [COVARIANCE|CORRELATON] [CHOLESKY]
         [SCALE(scalevalue)]

;# Example
 $SIGMA BLOCK(3)  6. .005 .3 .0002 .006 .4

Discussion

Gives initial estimates and constraints for elements of one or several blocks of the SIGMA matrix, i.e., the matrix of variances and covariances of the eps variables in the statistical model. This record should appear only if the statistical model contains eps variables. Multiple $SIGMA records may be used to define multiple blocks of SIGMA. The order of the appearance of all blocks over all records corresponds to the order of the blocks in SIGMA.

If the initial estimates are omitted for any element(s) of SIGMA, then NONMEM will try to obtain the initial estimates.

Options

There are seven forms:

DIAGONAL(n)

1
$SIGMA   [DIAGONAL(n)] [ v11 v22 v33 ... vnn ]

This gives the initial estimates of the diagonal elements of a diagonal block of SIGMA. E.g.,

1
  $SIGMA .04 .12

Initial estimate of variance of eps(1) = .04; initial estimate of variance of eps(2) = .12.

Each initial estimate may optionally be coded with one of the forms:

1
  init options  (init options)   (options init)

NONMEM v7.3+ supports (value,value...)xn for repeated elements. It specifies replications of the values within parentheses n times.

The following options apply only to a single initial estimate (i.e., a single 1x1 block) and must follow the initial estimate unless within parentheses.

  • FIXED indicates that the variance is to be constrained to be fixed to the given initial estimate. (When FIXED appears anywhere, then the block is described by NONMEM as consisting of separate blocks, each of dimension one.)
  • UNINT is used with NONMEM 7.5. UNINT is used during the Optimal Design Step to identify an eps as uninteresting. UNINT may be used anywhere that FIXED may be used.
  • VARIANCE indicates that the initial estimate is understood to be a variance of the eps. This is the default.
  • STANDARD indicates that the initial estimate is understood to be a standard deviation of the eps. May also be coded SD. An initial estimate may be 0 only if the variance or standard deviation is fixed to this estimate.

BLOCK(n)

1
  $SIGMA BLOCK(n) [ v11 v21 v22 v31 v32 v33 ... vn1 vn2 ... vnn ]

This gives the initial estimates of all the elements of a nondiagonal ("full") block of SIGMA. E.g.,

1
  $SIGMA BLOCK(2) .04 .002 .12

Initial estimate of variance of eps(1) = .04; initial estimate of covariance of eps(2), eps(1) = .002; initial estimate of variance of eps(2) = .12.

Any initial value or group of initial values may be enclosed in parentheses and followed by "xn", which means to replicate the values within parentheses n times ("repeated value").

The following options apply to the entire block and may appear anywhere among the list of initial estimates:

  • FIXED indicates that the entire block is constrained to be fixed to its initial estimate.
  • UNINT is used with NONMEM 7.5. UNINT is used during the Optimal Design Step to identify an eps as uninteresting. UNINT may be used anywhere that FIXED may be used.
  • VARIANCE indicates that all initial estimates given for diagonal elements are understood to be initial estimates of variances of eps. This is the default.
  • STANDARD indicates that all initial estimates given for diagonal elements are understood to be initial estimates of standard deviations of EPSILONs. May also be coded SD.
  • COVARIANCE indicates that all initial estmates given for offdiagonal elements are understood to be initial estimates of covariances of EPSILONs. This is the default.
  • CORRELATON indicates that all initial estmates given for offdiagonal elements are understood to be initial estimates of correlations of EPSILONs.
  • CHOLESKY indicates that the block is specified in its Cholesky form.
  • VARIANCE or STANDARD may be combined with COVARIANCE or CORRELATON.

Note that NONMEM converts all initial estimates to variance and covariances. The values desplayed in the NONMEM report and in the raw and additional output files are always variances and covariances.

Examples: the following describe the same block (within rounding errors):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
  $SIGMA BLOCK(2) ; or $SIGMA VARIANCE COVARIANCE BLOCK(2)
  0.64
  -0.24 0.58

  $SIGMA STANDARD BLOCK(2)
  0.8
  -0.24 0.762

  $SIGMA STANDARD CORRELATION BLOCK(2)
  0.8
  -0.394 0.762

  $SIGMA VARIANCE CORRELATION BLOCK(2)
  0.64
  -0.394 0.58

  $SIGMA CHOLESKY BLOCK(2)
  0.8
  -0.3 0.7

The (entire) initial estimate of the block must be positive definite. The only exception is when the entire initial estimate of the block is 0, in which case it must be fixed to this estimate. Initial estimates of some of the elements of the block may be 0, while initial estimates of some other elements may be nonzero, but only in the case where the block is constrained to be of band symmetric form. That is, given the diagonal and a group of contiguous subdiagonals symmetrically ocurring across the diagonal, the elements off both the diagonal and the subdiagonals are constrained to be zero. To specify the initial estimates of such a block, the initial estimates of those elements that are to be constrained to 0 should be given as 0, while all other initial estimates should be given as nonzero. E.g., with these structures for $SIGMA BLOCK(3), the 0's are preserved:

1
2
3
4
5
6
7
  x
  0x
  00x

  x
  xx
  0xx

With NONMEM 7.3 if the initial estimate of a block is not positive definite because of rounding errors, a value will be added to the diagonal elements to make it positive definite. A message in the NONMEM report file will indicate that this was done. E.g.,

1
 DIAGONAL SHIFT OF  1.1000E-03 WAS IMPOSED TO ENSURE POSITIVE DEFINITENESS

BLOCK(n) SAME

1
  $SIGMA BLOCK(n) SAME(m)

This describes a block whose initial estimates, as well as final estimates, are constrained to be equal to those of the preceding block. Values may not be given. "(n)" may be omitted. With NONMEM 7.3 (m) is permitted. If (m) is present, then this record is equivalent to m identical records without (m). E.g.,

1
$SIGMA BLOCK(2) SAME(3)

is equivalent to

1
2
3
$SIGMA BLOCK(2) SAME
$SIGMA BLOCK(2) SAME
$SIGMA BLOCK(2) SAME

BLOCK(n) VALUES

1
  $SIGMA BLOCK(n) VALUES(diag,odiag)

This supplies initial values for a block such that the initial estimates of the diagonal elements are all the same, specified by "diag", and the initial estimates of the off-diagonal elements are all the same, specified by "odiag". If present, VALUES must follow BLOCK. Other options (such as FIXED, CHOLESKY, VARIANCE,STANDARD,COVARIANCE,CORRELATON, UNINT) may follow VALUES or be placed between BLOCK and VALUES. E.g.,

1
$SIGMA BLOCK(6) VALUES(0.1,0.01)

is the same as

1
2
3
4
5
6
7
$SIGMA BLOCK(6)
0.1
0.01 0.1
(0.01)x2 0.1
(0.01)x3 0.1
(0.01)x4 0.1
(0.01)x5 0.1

For fixed block (such as for sigma priors):

1
$SIGMA BLOCK(6) FIX VALUES(0.15,0.0)

label=value (NM75)

1
  $SIGMA label=value (NM75)

The symbolic label substitution feature is new with NONMEM 7.5. This is a compact method of defining an EPS (an element of SIGMA) specifying its initial estimate, and specifying a label for the index for this element of SIGMA. The label may be used as a index for EPS in abbreviated code, and will also identify this element of SIGMA in the NONMEM output. If new $SIGMA records change the ordering, the abbreviated code does not have to be changed. For example, suppose the first element of SIGMA that is defined happens to be

1
  $SIGMA RSW=.06

The NONMEM report will describe the relationship, e.g.,

1
2
  LABELS FOR EPS
  EPS(1)=EPS(RSW)

and EPS(RSW) rather than EPS1 will appear in the NONMEM report. The abbreviated code can use this symbolic index instead of the numeric index.

As with $OMEGA, $SIGMA and $THETA records (if elements of THETA are used) must be placed ahead of any records that use the symbolic label.

Another example defines symbolic labels for a block of SIGMA:

1
2
3
  $SIGMA BLOCK(2)
  RSW=  0.3
  EX=   0.01 0.35

Or, for diagonals,

1
2
3
  $SIGMA
  RSW= 0.3
  EX= 0.35

Yet another example using labels for all parameters:

 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
$THETA
V1=(0.0,7.0) CL=(0.0,7.0) Q=(0.0,7.0) V2=7

$OMEGA BLOCK(4)
ECL=  0.3
EV1=  0.01 0.35
EQ=   (0.01)X2 0.54
EV2=  (0.01)X3 0.67

$SIGMA
RSW=(0.6 )   ;#[P]

$THI
THETA(CL)=LOG(THETAI(CL))
THETA(V1)=LOG(THETAI(V1))
THETA(Q)=LOG(THETAI(Q))
THETA(V2)=LOG(THETAI(V2))

$THR
THETAR(CL)=LOG(THETA(CL))
THETAR(V1)=LOG(THETA(V1))
THETAR(Q)=LOG(THETA(Q))
THETAR(V2)=LOG(THETA(V2))

$PK
MU_ECL=THETA(CL)
MU_EV1=THETA(V1)
MU_EQ=theta(Q)
MU_EV2=THETA(V2)
CL=DEXP(MU_ECL+ETA(ECL))
V1=DEXP(MU_EV1+ETA(EV1))
Q=DEXP(MU_EQ+ETA(EQ))
V2=DEXP(MU_EV2+ETA(EV2))
S1=V1

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

Notice the $THETA, $OMEGA and $SIGMA records must be placed ahead of any records that use the symbolic label. So, these records must be placed before $THI, $THR, $PK, and $ERROR. Also, notice that the position of CL V1 in $PK in reverse order relative to the associated ETAs in $OMEGA. Thus, the inter-subject variability of CL is ETA(1), and its fixed effect is THETA(2). The user no longer needs to consider the numeric ordering of THETAs and ETAs, however, and just utilize the symbols, and NMTRAN will map out everything correctly in the final FSUBS routine. If later, you wish to add a theta, you can place it anywhere in the $THETA record (its position in $THETA defines its numerical index), and not be concerned about renumbering the THETAs in the code.

BLOCK(n) NAMES VALUES

1
$SIGMA  BLOCK(n) NAMES  (label1,...,labeln)  VALUES  (odiag,diag)

With NONMEM 7.5, Symbolic label substitution may be specified for an entire block using the NAMES option. This is a compact way of defining one or more EPSILONs with labels and, when combined with VALUES, with initial values. For example

1
  $SIGMA BLOCK(2) NAMES(RSW,EX) VALUES(0.03,0.01)

This is equivalent to

1
2
3
  $SIGMA BLOCK(2)
  RSW=  0.03
  EX=   0.01 0.03

If both are present, VALUES() must come after NAMES().

SCALE(scalevalue) (NM76)

1
    $SIGMA  SCALE(scalevalue) (NM760)

One may have OMEGA or SIGMA values multiplied by a SCALE value. The SCALE value takes into affect on any OMEGA or SIGMA values that come after it in the record:

1
$SIGMA 0.5 0.7 SCALE(2.0) 0.8 0.9 SCALE(1.5) 0.1 0.2

is equivalent to

1
$SIGMA 0.5 0.7 1.6 1.8 0.15 0.3

Another example:

1
$SIGMAP SCALE(0.7) BLOCK(4) FIX VALUES(0.5,0.01)

is equivalent to:

1
$SIGMAP BLOCK(4) FIX VALUES(0.35,0.07)

Another example:

1
2
3
4
5
$SIGMAP SCALE(0.7) BLOCK(4) FIX
0.5
0.01 0.5
SCALE(2.5)
0.02 0.02 0.003

is equivalent to

1
2
3
4
$SIGMAP SCALE(0.7) BLOCK(4) FIX
0.5
0.01 0.5
0.05 0.05 0.0075

The SCALE is most useful when it is desired to scale an informed prior SIGMA from a previous analysis that differs from NONMEMs normal treatment. For example, you may wish to scale the sigma prior by (df-p-1)/df, where df=degrees of freedom, and p=dimension of sigma block. Rather than always re-calculate by hand, you can change the scale on the fly.