inputcov {mvmeta} | R Documentation |
Input (Co)Variance Matrices
Description
This function inputs (co)variance matrices of a set of outcomes given the corresponding standard deviation and correlation values.
Usage
inputcov(sd, cor=NULL)
Arguments
sd |
a |
cor |
either a vector of length 1, |
Details
Depending the number of outcomes k
and matrices m
, the argument cor
is interpreted as:
if a vector of length 1 (a scalar), the same correlation for all the
k
outcomes for all them
matrices;if a vector of length
m
, the same correlation for all thek
outcomes for each of them
matrices;if a vector of length
k(k-1)/2
, the lower triangular elements (without diagonal, taken by column) of the correlation matrix of thek
outcomes, the same for all them
matrices;if a
k \times k
matrix, the correlation matrix for the single matrix (only whenm
=1);if a
m \times k(k-1)/2
matrix, each row represents the lower triangular elements (without diagonal, taken by column) of the correlation matrix of thek
outcomes for each of them
matrices.
Value
For a single matrix, the (co)variance matrix itself. For multiple matrices, a m \times k(k+1)/2
matrix, where each row represents the vectorized entries of the lower triangle (with diagonal, taken by column) of the related (co)variance matrix (see vechMat
).
Note
This function is imported from the package mixmeta. It is called internally by mvmeta
for multivariate models to input the correlation(s) when only the within-unit variances are provided through the argument S
. In this case, the correlation values are set through the argument Scor
in the control list (see mvmeta.control
).
Author(s)
Antonio Gasparrini <antonio.gasparrini@lshtm.ac.uk>
See Also
See xpndMat
. See mvmeta.control
.
Examples
# SOME RANDOM SD FOR A SINGLE MATRIX, WITH CONSTANT CORRELATION
(M <- inputcov(runif(4, 0.1, 3), 0.7))
# CHECK CORRELATION
cov2cor(M)
# NOW WITH A MORE COMPLEX CORRELATION STRUCTURE
(M <- inputcov(runif(3, 0.1, 3), c(0.7,0.2,0.4)))
cov2cor(M)
# MULTIPLE MATRICES
(V <- matrix(runif(5*3, 0.1, 3), 5, 3,
dimnames=list(1:5, paste("V", 1:3, sep=""))))
inputcov(V, 0.6)
# WITH REAL DATA WHEN CORRELATIONS AVAILABLE
hyp
(S <- inputcov(hyp[c("sbp_se","dbp_se")], cor=hyp$rho))
# CHECK FIRST STUDY
cov2cor(xpndMat(S[1,]))
# USED INTERNALLY IN mvmeta
p53
inputcov(sqrt(p53[c("V1","V2")]), 0.5)
model <- mvmeta(cbind(y1,y2), S=cbind(V1,V2), data=p53, control=list(Scor=0.5))
model$S