[R-meta] Question about a meta-analysis of 2 studies
Adelina Artenie
@de||n@@@rten|e @end|ng |rom br|@to|@@c@uk
Thu Nov 14 12:11:47 CET 2024
Hello,
The HKSG<https://bmcmedresmethodol.biomedcentral.com/articles/10.1186/1471-2288-14-25#MOESM1> approach has been proposed to be used when the number of studies to pool is small, instead of more traditional meta-analysis methods.
I have to pool several estimates in cases where there are only 2 estimates, often quite different from each other and with varying levels of precision.
In pretty much all cases, the HKSG method seems to break down, leading to unrealistic 95%CI (this seems to improve as soon as I have at least 3 estimates and gets better with more estimates).
Conceptually, I get it: we have only 2 studies and the estimates are very different, so a meta-analysis is not ideal. But if I still want to do it, do you know of other methods that could better account for heterogeneity than traditional methods, even if imperfect?
I included some example code below.
Thanks
Adelina
library(meta)
library(metafor)
idd_count <- c(1, 2)
inci <- c(11.1849, 1.484536956)
CI95_LB <- c(6.8522, 1.042335486)
CI95_UB <- c(18.2571, 1.985159973)
df_inci <- data.frame(idd_count, inci, CI95_LB, CI95_UB)
# DL estimator for tau
df_inci$ln_inci <- log(df_inci$inci)
df_inci$ln_LB <-log(df_inci$CI95_LB)
df_inci$ln_UB <-log(df_inci$CI95_UB)
meta_inci <- metagen(TE = ln_inci,
lower = ln_LB,
upper = ln_UB,
studlab = idd_count,
data = df_inci,
sm = "IRLN",
method.tau = "DL", # switching between estimators (eg, REML, PM) gives the same results
comb.fixed = FALSE,
comb.random = TRUE, backtransf = TRUE,
text.random = "Overall")
summary(meta_inci)
# HKSJ approach: https://bmcmedresmethodol.biomedcentral.com/articles/10.1186/1471-2288-14-25#MOESM1
df_inci$ln_SE <- (df_inci$ln_inci - df_inci$ln_LB) / 1.96
meta_modellll <- rma.uni(yi = ln_inci,
sei = ln_SE,
method = "FE", # intentionally set as FE, following recommendations by Inthout et al 2014
knha=TRUE,
data = df_inci)
summary(meta_modellll)
point_estimate <- exp(meta_modellll$b)
lower_bound <- exp(meta_modellll$ci.lb)
upper_bound <- exp(meta_modellll$ci.ub)
cat("Point Estimate:", point_estimate, "\n")
cat("95% CI Lower Bound:", lower_bound, "\n")
cat("95% CI Upper Bound:", upper_bound, "\n")
[[alternative HTML version deleted]]
More information about the R-sig-meta-analysis
mailing list