View source: R/MxAlgebraFunctions.R
mxPearsonSelCov | R Documentation |
maturing These functions implement the Pearson Aitken selection formulae.
mxPearsonSelCov(origCov, newCov)
mxPearsonSelMean(origCov, newCov, origMean)
origCov |
covariance matrix. The covariance prior to selection. |
newCov |
covariance matrix. A subset of |
origMean |
column vector. A mean vector to adjust. |
Which dimensions to condition on can be communicated in one
of two ways: (1) newCov
is a submatrix of origCov
.
The dimnames are matched to determine which
partition of origCov
to replace with newCov
.
Or (2) newCov
is the same dimension as origCov
.
The matrix entries are inspected to determine which entries have
changed. The changed entries determine which partition of
origCov
to replace with newCov
.
Let the n \times n
covariance matrix R (origCov
) be partitioned into non-empty,
disjoint sets p and q.
Let R_{ij}
denote the covariance matrix between the p
and q variables where the subscripts denote the variable subsets (e.g. R_{pq}
).
Let column vectors \mu_p
and \mu_q
contain the means of p and q
variables, respectively.
We wish to compute the conditional covariances of the variables in q
for a subset of the population where R_{pp}
and \mu_p
are known (or partially known)—that is, we wish
to condition the covariances and means of q on those of p.
Let V_{pp}
(newCov
) be an arbitrary covariance matrix of the same
dimension as R_{pp}
.
If we replace R_{pp}
by V_{pp}
then the mean
of q (origMean
) is transformed as
\mu_q \to \mu_q + R_{qp} R_{pp}^{-1} \mu_p
and the covariance of p and q are transformed as
\left[
\begin{array}{c|c}
R_{pp} & R_{pq} \\
\hline
R_{qp} & R_{qq}
\end{array}
\right] \to
\left[
\begin{array}{c|c}
V_{pp} & V_{pp}R_{pp}^{-1}R_{pq} \\
\hline
R_{qp}R_{pp}^{-1}V_{pp} & R_{qq}-R_{qp} (R_{pp}^{-1} - R_{pp}^{-1} V_{pp} R_{pp}^{-1}) R_{pq}
\end{array}
\right]
Aitken, A. (1935). Note on selection from a multivariate normal population. Proceedings of the Edinburgh Mathematical Society (Series 2), 4(2), 106-110. doi:10.1017/S0013091500008063
library(OpenMx)
m1 <- mxModel(
'selectionTest',
mxMatrix('Full', 10, 10, values=rWishart(1, 20, toeplitz((10:1)/10))[,,1],
dimnames=list(paste0('c',1:10),paste0('c',1:10)), name="m1"),
mxMatrix('Full', 2, 2, values=diag(2),
dimnames=list(paste0('c',1:2),paste0('c',1:2)), name="m2"),
mxMatrix('Full', 10, 1, values=runif(10),
dimnames=list(paste0('c',1:10),c('v')), name="u1"),
mxAlgebra(mxPearsonSelCov(m1, m2), name="c1"),
mxAlgebra(mxPearsonSelMean(m1, m2, u1), name="u2")
)
m1 <- mxRun(m1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.