Learn R Programming

mvmeta (version 0.4.7)

inputcov: 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=0)

Arguments

sd
a $m x k$ matrix of standard deviations for $k$ outcomes in $m$ matrices, or a vector for $k$ outcomes in a single matrix.
cor
either a vector of length 1, $m$ or $k(k-1)/2$, or alternatively a $k x k$ or $m x k(k-1)/2$ matrix. See Details.

Value

For a single matrix, the (co)variance matrix itself. For multiple matrices, a $m x 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).

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 the $m$ matrices;
  • if a vector of length $m$, the same correlation for all the $k$ outcomes for each of the $m$ matrices;
  • if a vector of length $k(k-1)/2$, the lower triangular elements (without diagonal, taken by column) of the correlation matrix of the $k$ outcomes, the same for all the $m$ matrices;
  • if a $k x k$ matrix, the correlation matrix for the single matrix (only when $m$=1);
  • if a $m x k(k-1)/2$ matrix, each row represents the lower triangular elements (without diagonal, taken by column) of the correlation matrix of the $k$ outcomes for each of the $m$ matrices.

See Also

See xpndMat. See mvmeta.control.

Examples

Run this code
# 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

Run the code above in your browser using DataLab