RE: Block versus diagonal omega
All,
Just a reminder that NONMEM VI and NONMEM 7.1.0 have a bug that may
affect certain band matrices as noted in a previous bug alert (see
excerpt below). This has been corrected in NONMEM 7.1.2.
Tom
1. There is a bug in NONMEM VI 1.x & 2.0 and NONMEM 7.1.0 that
results in the spurious error message below, or a similar message,
when certain band symmetric matrices are defined in $OMEGA.
PROGRAM TERMINATED BY OBJ
OMEGA ESTIMATED TO BE SINGULAR
MESSAGE ISSUED FROM ESTIMATION STEP
AT INITIAL OBJ. FUNCTION EVALUATION
Workaround:
None is available.
Quoted reply history
________________________________
From: [email protected] [mailto:[email protected]]
On Behalf Of Paolo Denti
Sent: Friday, September 03, 2010 7:44 AM
To: nmusers
Subject: Re: [NMusers] Block versus diagonal omega
Hi Al,
as far as I can tell, if you have a BLOCK matrix in NONMEM, the only
elements that you can fix to zero (without fixing the whole block) are
the ones in the lower corner of the matrix.
You can have lower triangular matrices of zeros as large as all of yours
off-diagonal elements (in which case the matrix would become diagonal).
To do this, you just set the initial estimate of those element to
exactly zero. Don't write FIX anywhere in the block, or else NONMEM is
going fix the values of the whole block.
Some examples would be
$OMEGA BLOCK(3)
a
b c
0 d e
or
$OMEGA BLOCK(4)
a
b c
0 d e
0 0 f g
or
$OMEGA BLOCK(4)
a
b c
d e f
0 g h j
Obviously, unless you are lucky, the zeros won't be where you want them
to be with the numbering you chose for the ETAs, so you might need to
change the order and bring all the zeros to the lower triangle. Lots of
fun! ;)
Some matrices can't be obtained this way unless you sacrifice some
additional correlations, I fear. Or at least I can't see how. Like the
one below:
$OMEGA BLOCK(4)
a
b c
d e f
0 0 g h
The only way I can think to obtain exactly this one (someone else can
maybe help here) is to calculate the Cholesky factor of your matrix so
that you can rewrite it the whole thing in your code using only thetas.
In that way you would be able free to fix whatever you want to any
value.
Hope this is not too confusing...
Greetings from Cape Town,
Paolo
On 02/09/2010 22:39, Berg, Alexander K., Pharm.D., Ph.D. wrote:
Everyone -
Thank you all for your assistance in answering my question
regarding the block versus diagonal omega structure. The answers that
you all provided have been a great help thus far and are much
appreciated. As a follow-up, I was curious if someone could point me
towards a reference that would help me to figure out how to restructure
the covariance into different omega blocks. Specifically, I would like
to understand the basis and proper method for restructuring the omega
block so that I may remove selected covariance terms when simplifying
from a completely unstructured block to a more parsimonious one. Thanks
again for your help and time -
Al Berg
--
------------------------------------------------
Paolo Denti, PhD
Post-Doctoral Fellow
Division of Clinical Pharmacology
Department of Medicine
University of Cape Town
K45 Old Main Building
Groote Schuur Hospital
Observatory, Cape Town
7925 South Africa
phone: +27 21 404 7719
fax: +27 21 448 1989
email: [email protected]