From: email@example.com.EDU (S.Beal)
Subject: Correlated Epsilons Across L2 Records
Date: 10 Jul 1998 19:27:57 -0400
NONMEM Version V Supplemental Guide fails to call attention to a new feature allowing epsilons to be correlated across L2 records. An L2 record may be identified with an observation record, or when an L2 data item is used, with a group of contiguous records where the value of the epsilon (vector) is assumed to be constant across all observation records within the group. The observations given on these records comprise a multivariate observation, and this is turn is modeled in terms of the value of the epsilon (vector). By default, the values of the epsilon (vector) across L2 records vary and are statistically independent. The new feature, allowing these values to be correlated, is described in the HELP Guide under the heading NMPRD5. A discussion of its use may be found in Karlsson, M.O., Beal, S.L., Sheiner, L.B. (1995), JPB, 23, 651-672.
Here is a somewhat improved version of the item in the HELP Guide.
MEANING: NONMEM-PRED common
CONTEXT: PRED and ERROR routines
COMMON /NMPRD5/ C(NO,LVR-1)
(If double precision is to be used):
DOUBLE PRECISION C
(If single precision is to be used):
The values of NO and LVR must be the same as that found in file NSIZES. See nsizes.
By default, the values of an epsilon are statistically independent across the L2 records within an individual record, i.e. across the (multivariate) observations defined by the L2 records. Using NMPRD5, however, these values may be taken to be correlated. With the first data record (which need not be an observation record) of the individual record, the PRED routine may set C(1,m)=1.0, signaling that the values of those epsilons associated with the mth block of the SIGMA matrix are to be correlated across the L2 records. The values of an epsilon (eps1, say) associated with the mth block will be correlated (across the L2 records) in the same way as those of any other epsilon (eps2, say) associated with the mth block (and of course, the values of eps1 and eps2 will be taken to be correlated within each L2 record if a correlation is specified in the $SIGMA record).
With the first data record of the nth L2 record, the PRED routine should set C(k,m), for k=1,...,n, to the correlation of the epsilon values between the kth L2 record and the nth L2 record. (C(n,n)=1.0)
E.g. Suppose that the L2 records are chronologically ordered with a TIME data item (as with PREDPP), that there are two epsilons in the model, uncorrelated within L2 records, and that the values of the second epsilon are autocorrelated across L2 records, as specified by:
IF (NEWIND.NE.2) I=0
IF (NEWL2.EQ.1) THEN
DO 5 J=1,I
Because C is not recognized by NM-TRAN, and because of other restrictions regarding abbreviated code, a specification of C, as above, within a block of abbreviated code, must be done using verbatim code.
If data are simulated, the correlations must be stored in NMPRD5 before PRED calls the NONMEM utility routine SIMEPS. Since NM-TRAN generated code has a call to SIMEPS in its second section (see Guide IV), this means that a specification of C within a block of abbreviated code must be done using verbatim code within the FIRST block.
Population data can be simulated and analyzed using correlated epsilons across L2 records. So can single-subject data. For single-subject data, though, a certain technique is needed: (i) the data are entered as population data - a population sample of only one individual, and (ii) OMEGA is constrained to be 0. This technique can always be used when working with single-subject data, but it is necessary to use it when simulating or analyzing single-subject data using correlated epsilons.