Skip to contents

rxode2's default random-effects parameterization for estimation is a Cholesky decomposition (see rxSymInvCholCreate()), whose parameters are Cholesky factors rather than interpretable variances/covariances. To report standard errors on the natural variance-covariance scale – or to build an analytic covariance matrix over the Omega elements – a non-Cholesky path is needed that differentiates with respect to the variance-covariance entries directly.

Usage

rxOmegaVarCovDeriv(omega, order = 2L)

Arguments

omega

symmetric positive-definite random-effects covariance matrix.

order

integer; 1 for first derivatives only, 2 (default) to also return the second derivatives needed for the covariance Hessian.

Value

a list with omegaInv, logDet, the free-element index matrix elements (each row c(a, b), a >= b), first derivatives dOmegaInv / dLogDet, and (when order = 2) second derivatives d2OmegaInv / d2LogDet.

Details

This returns Omega^{-1}, log|Omega|, and their first (and optionally second) derivatives with respect to each free lower-triangular variance-covariance element omega_{ab}, using the closed forms

$$\partial \Omega^{-1}/\partial \omega_{ab} = -\Omega^{-1} E_{ab} \Omega^{-1}$$ $$\partial \log|\Omega|/\partial \omega_{ab} = \mathrm{tr}(\Omega^{-1} E_{ab})$$

where \(E_{ab}\) is the symmetric single-entry basis matrix. These are the pieces a FOCEI/FOCE observed-information covariance contracts against for the Omega block.

Author

Hidde van de Beek