metafor zéro variance niveau 2

Oct 31 2020

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

2 Wolfgang Oct 31 2020 at 16:16

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.