metafor varianza zero livello 2

Oct 31 2020

Mi imbatto in varianza zero al livello 2 per una meta-analisi a 3 livelli con metafor (rma.mv) in cui le dimensioni degli effetti (esid) sono raggruppate all'interno degli studi (studyid). Ecco il mio 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)

Ecco il mio metafor codice e output:

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'ispezione visiva delle dimensioni degli effetti grezzi suggerisce che esiste una varianza all'interno degli studi, quindi non sono sicuro di cosa ci sia di sbagliato nei miei dati (o codice). Apprezzerei qualsiasi consiglio sulle soluzioni dalla comunità.

Risposte

2 Wolfgang Oct 31 2020 at 16:16

Ci sono differenze davvero grandi tra gli studi, ma le stime all'interno degli studi non variano più di quanto ci si aspetterebbe sulla base della sola variabilità del campionamento. Vedere:

forest(overall, efac=c(0,0.5))
abline(h=nrow(df) - cumsum(rle(df$studyid)$length) + 0.5, lty="dotted")

Quindi mi sembra perfettamente ragionevole che la stima della varianza tra studi sia molto grande mentre la stima della varianza all'interno dello studio sia essenzialmente 0.