[R-meta] simulating three-level meta-analysis
Filippo Gambarota
||||ppo@g@mb@rot@ @end|ng |rom gm@||@com
Wed Jun 15 13:44:15 CEST 2022
Hello!
I'm trying to simulate a three-level meta-analysis model but I'm stuck
on understanding how to generate sampling variances that will be
associated with a certain value of tau2 (level 2) and tau3 (level 3).
My approach so far is setting values for population parameters and
generating sampling variances for the effect ij:
```
library(metafor)
b0 <- 0.3 # effect
ni <- 100 # number of papers
nj <- 5 # number of effects within each paper
taui <- 0.3 # level 3 tau
tauj <- 0.1 # level 2 tau
icc <- taui^2 / sum(taui^2 + tauj^2) # real ICC
# i-level data
dati <- data.frame(paper = 1:ni,
b0_i = rnorm(ni, 0, taui))
# j-level data
datj <- data.frame(paper = rep(1:ni, nj),
study = 1:sum(nj),
b0_j = rnorm(sum(nj), 0, tauj))
dat <- merge(dati, datj, by = "paper") # combine
dat$vi <- runif(nrow(dat), 0, 0.3) # sampling variances at level 1
dat$yi <- b0 + dat$b0_i + dat$b0_j + rnorm(nrow(dat), 0, dat$vi)
fit <- rma.mv(yi, vi, random = ~study|paper, data = dat)
```
However, I'm sure that I'm doing wrong because taus are estimated
using vi and the vis are not sampled with specific criteria.
Does someone have some hints? Or in general suggestions about to setup
a simulation like this?
Thanks!
--
Filippo Gambarota
PhD Student - University of Padova
Department of Developmental and Social Psychology
Website: filippogambarota
Research Group: Colab Psicostat
More information about the R-sig-meta-analysis
mailing list