metafor zéro variance niveau 2
Je rencontre une variance nulle au niveau 2 pour une méta-analyse à 3 niveaux avec metafor (rma.mv) dans laquelle les tailles d'effet (esid) sont regroupées dans les études (studyid). Voici mon dataframe:
studyid <- c(1,1,1,1,3,3,4,5,5,5,5,6,6,7,7,7,7,7,7,7,7,8,8,9,10,10,10,10,11,11,11,11,12,12,13,13,14,14,
15,15,18,18,18,18,19,19,19,20,20,20,20,21,21,21,21,22,22,22,23,23,23,24,24,25,28,28,28,
29,29,30,30,30,31,32,32,34,34)
esid <- c(1:77)
yi <- c(4.20,2.90,2.70,3.90,1.40,0.80,11.40,5.00,21.50,20.84,28.73,7.40,4.00,1.38,0.47,1.44,0.46,1.63,
0.46,0.67,0.41,9.24,9.27,8.80,27.30,22.83,18.25,20.08,0.94,0.97,0.77,0.88,14.00,10.40,0.52,0.86,
29.39,33.82,15.30,15.92,45.60,63.10,46.40,44.60,0.10,0.11,0.12,0.17,0.26,0.26,0.31,8.20,1.80,
1.70,9.58,10.15,8.05,0.53,18.95,17.44,23.50,12.62,15.62,4.60,35.10,44.85,33.30,13.30,11.90,0.34,
0.35,0.26,0.69,0.50,0.62,23.80,20.40)
vi <- c(2.90,2.20,2.10,3.00,2.00,1.00,11.03,8.49,16.97,20.00,26.06,3.70,4.00,0.47,0.33,0.74,0.36,0.75,
0.33,0.44,0.37,7.60,5.63,8.80,12.01,13.15,14.41,11.57,0.57,0.76,0.43,0.62,3.50,3.00,0.59,0.65,
10.00,11.30,6.20,6.44,23.04,27.68,17.54,13.04,0.22,0.25,0.24,0.17,0.42,0.17,0.28,7.20,2.00,2.10,
10.08,5.30,3.75,0.68,6.70,6.53,5.74,13.91,31.65,4.10,7.54,12.81,5.28,8.20,7.70,0.25,0.28,0.19,
0.56,0.46,0.37,23.10,15.90)
df <- data.frame(authoryr,studyid,esid,yi,vi)
Voici mon code et ma sortie metafor:
overall <- rma.mv(yi, vi,
data = df,
level = 95,
method = "REML",
slab = authoryr,
tdist = TRUE,
random = list(~ 1 | esid,
~ 1 | studyid))
summary(overall)
Multivariate Meta-Analysis Model (k = 77; method: REML)
logLik Deviance AIC BIC AICc
-229.2872 458.5745 464.5745 471.5667 464.9078
Variance Components:
estim sqrt nlvls fixed factor
sigma^2.1 0.0000 0.0000 77 no esid
sigma^2.2 147.3645 12.1394 28 no studyid
Test for Heterogeneity:
Q(df = 76) = 1930.1990, p-val < .0001
Model Results:
estimate se tval pval ci.lb ci.ub
10.7087 2.3165 4.6229 <.0001 6.0951 15.3224 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
L'inspection visuelle des tailles d'effet brutes suggère qu'il y a une variance au sein des études, donc je ne suis pas sûr de ce qui ne va pas avec mes données (ou mon code). J'apprécierais toute orientation sur les solutions de la communauté.
Réponses
Il existe de très grandes différences entre les études, mais les estimations au sein des études ne varient pas plus que ce à quoi on pourrait s'attendre en fonction de leur seule variabilité d'échantillonnage. Voir:
forest(overall, efac=c(0,0.5))
abline(h=nrow(df) - cumsum(rle(df$studyid)$length) + 0.5, lty="dotted")
Il me semble donc parfaitement raisonnable que l'estimation de la variance inter-études soit très grande alors que l'estimation de la variance intra-étude est essentiellement de 0.