# [R-meta] Calculating the var-covar matrix for dependent effect sizes for ROM

Jonas Duus Stevens Lekfeldt jdsl at plen.ku.dk
Wed Nov 8 09:19:15 CET 2017

```Thank you, Wolfgang for the fast and clear reply!

In an earlier reply by Wolfgang I found the following formula for calculating the covariance for ROM (log response ratio) when controls are shared among some of the datasets (if I have understood it correctly):

Covariance = sd^2/(n*mean^2), from the group whose data is being re-used.

I have calculated a new covariance column in the dataset data of the individual effect sizes based on the control data in the following way:

data <- data %>%
dplyr::mutate (covar=((data\$sd2i)^2)/(data\$n2i*(data\$m2i^2))),

where:
sd2i is the standard deviation of the control group
n2i is the sample size of the control group
m2i is the mean of the control group

Subsequently I have calculated the variance-covariance matrix (here called VarC) using the following code (again inspired by Wolfgang):

calc.v.ROM <- function(x) {
v <- matrix(x\$covar,nrow=nrow(x),ncol=nrow(x))
diag(v) <- x\$vi
v
}

covar_list <- lapply(split(data,data\$ControlName),calc.v.ROM)
VarC <- bldiag(covar_list)

Where "ControlName" is the column in "data" where the names of the control groups are stored.

Using VarC as the argument to V in the following code gives meaningful results so it seems to work, but I would like to ask if it seems correct?

meta_list <- rma.mv(yi=data\$yi,
V=VarC,
random = ~1|ExpName/ControlName/ID,
test="t")

Another question: drawing a qqnorm-plot does not seem to be implemented for rma.mv(). Is that right?

Best regards

Jonas Duus Stevens Lekfeldt

```

More information about the R-sig-meta-analysis mailing list