I am using meta 4.9-5 package for conducting meta-analysis on correlation data. But I cannot figure out why it is unable to calculate lower and upper prediction intervals even I have set prediction = TRUE. Is it due to the small sample size (2 in the following sample code)? Any help is highly appreciated.

# Load required library

# Data to be processed
D2P <- data.frame(stuid = c('S1','S2'),
                  r = c(0.156, 0.117),
                  n = c(559, 206))
# Conducting the meta analysis
ma <- metacor(cor = r, data = D2P, n = n, studlab = stuid,
              prediction = T, level.predict = 0.9)

# See the results
> ma$prediction
[1] TRUE
> ma$lower.predict
[1] NA
> ma$upper.predict
[1] NA

> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)

Matrix products: default

[1] LC_COLLATE=Chinese (Traditional)_Taiwan.950  LC_CTYPE=Chinese (Traditional)_Taiwan.950    LC_MONETARY=Chinese (Traditional)_Taiwan.950
[4] LC_NUMERIC=C                                 LC_TIME=Chinese (Traditional)_Taiwan.950    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] dplyr_0.8.3   readxl_1.3.1  metafor_2.1-0 Matrix_1.2-17 meta_4.9-5   

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.1       lattice_0.20-38  crayon_1.3.4     assertthat_0.2.1 grid_3.6.1       cellranger_1.1.0 R6_2.4.0         nlme_3.1-140    
 [9] magrittr_1.5     pillar_1.4.2     rlang_0.4.0      rstudioapi_0.10  tools_3.6.1      glue_1.3.1       purrr_0.3.2      compiler_3.6.1  
[17] pkgconfig_2.0.2  tidyselect_0.2.5 tibble_2.1.3   

1 Answer 1


The use of prediction intervals in random effects meta-analysis was popularised by Riley, R D and Higgins, J P T and Deeks, J J in an article entitled "Interpretation of random effects meta--analyses" available here where they state among other things that it can only be calculated when there are at least three studies (page 996). Just for the record it only differs from the confidence interval for the summary if $\tau^2 > 0$. This is because the interval is from

$\hat\mu - t_{k-2}\sqrt{\hat\tau^2 + s_{\hat\mu}^2}$


$\hat\mu + t_{k-2}\sqrt{\hat\tau^2 + s_{\hat\mu}^2}$

where $\hat\mu$ is the estimate of the average parameter value, $s$ is its standard error, $\tau^2$ is the estimate of between study standard deviation, $k$ the number of studies. Since $t$ does not exist for zero df it is clear that $k$ must exceed two.

  • $\begingroup$ Thank you for your clear response. $\endgroup$
    – KM Kuo
    Aug 1, 2019 at 12:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.