[R-meta] adjusting individual studies for publication bias

Filippo Gambarota ||||ppo@g@mb@rot@ @end|ng |rom un|pd@|t
Mon May 5 11:53:06 CEST 2025


Hi!
I was wondering if there is a method, maybe using selection models, to
adjust the individual studies taking into account the publication bias. I
was thinking something like:

```
library(metafor)

k <- 500
tau2 <- 0.1
d <- 0.2
n1 <- n2 <- round(runif(k, 10, 300))
deltai <- rnorm(k, 0, sqrt(tau2))
yi <- rnorm(k, d, sqrt(1/n1 + 1/n2 + tau2))
vi <- (rchisq(k, n1 + n2 - 2) / (n1 + n2 - 2)) * (1/n1 + 1/n2)

sim <- data.frame(yi, vi)
sim <- escalc(yi = yi, vi = vi, data = sim)
sim <- summary(sim)
wi <- exp(-5 * sim$pval) # simulating selecting with negexp model
keep <- rbinom(nrow(sim), 1, wi) == 1 # keep if coin flip is 1
sims <- sim[keep, ]

res <- rma(yi, vi, data = sims)
sel <- selmodel(res, type = "negexp")

# linear combination of b + ranef

yi_adj <- sel$b[[1]] + rnorm(sel$k, 0, sqrt(sel$se^2 + sel$vi + sel$tau2))

plot(sims$yi, yi_adj)
```
But of course i'm not sure. Something like using b, tau2, vi and seb to
estimate the individual effect correcting for publication bias.
Thank you!
-- 
*Filippo Gambarota, PhD*
Postdoctoral Researcher - University of Padova
Department of Developmental and Social Psychology
Website: filippogambarota.github.io
Research Groups: Psicostat <https://psicostat.dpss.psy.unipd.it/>

	[[alternative HTML version deleted]]



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