From 6703461cb6fb2f8fdf7c619b12a9586edc650c43 Mon Sep 17 00:00:00 2001 From: Daniel Noble Date: Sun, 28 Feb 2021 20:58:08 +1100 Subject: [PATCH 1/5] Updating ignore to start tracking html --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 815f5eb..034f6e2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ Ecology\ comments/ Ecology_Comment/ DataS1_ORIGINAL_DO_NOT_TOUCH/ Supplemental_Implementation_Example_cache/ -Supplemental_Implementation_Example.html sim_check_rerun/ *.docx New_sims.pdf \ No newline at end of file From 05651c416324f6b6c4c8cb3f6e2c026927bb6c3c Mon Sep 17 00:00:00 2001 From: Daniel Noble Date: Sun, 28 Feb 2021 20:58:34 +1100 Subject: [PATCH 2/5] Supplement updated, html tutorial ready --- Supplemental_Implementation_Example.Rmd | 71 +-- Supplemental_Implementation_Example.html | 632 +++++++++++++++++++++++ 2 files changed, 670 insertions(+), 33 deletions(-) create mode 100644 Supplemental_Implementation_Example.html diff --git a/Supplemental_Implementation_Example.Rmd b/Supplemental_Implementation_Example.Rmd index dfeb6b2..822027e 100644 --- a/Supplemental_Implementation_Example.Rmd +++ b/Supplemental_Implementation_Example.Rmd @@ -1,5 +1,5 @@ --- - title: "Implementation Examples of multi-level meta-analytic models with robust variance estimators and using Bayesian approaches to deal with non-independent effect sizes" + title: "Tutorial on how to implement simple corrections to deal with non-independent effect sizes in multi-level meta-analysis" author: Shinichi Nakagawa, Alistair M. Senior, Wolfgang Viechtbauer and Daniel W. A. Noble date: "`r Sys.Date()`" bibliography: refs.bib @@ -28,8 +28,9 @@ ``` ```{r klippy, echo=FALSE, include=TRUE,results='hide'} -install.packages("devtools") -remotes::install_github("rlesur/klippy") +#install.packages("devtools") +#remotes::install_github("rlesur/klippy") +library(klippy) klippy::klippy(tooltip_message = 'Click to Copy Code', tooltip_success = 'Done', position = 'right', color = "red") ``` @@ -39,15 +40,13 @@ In this tutorial, we demonstrate how meta-analyst's can implement approaches for # R Packages Required First, we'll load some of the packages that we'll need. - ```{r packages_data,results='hide'} # Clean workspace rm(list=ls()) # Loading packages & Functions - - install.packages("pacman") - pacman::p_load(tidyverse, MASS, kableExtra, gridExtra, MCMCglmm, brms, metafor, robumeta, clubSandwich, pander, tidyverse) + + pacman::p_load(tidyverse, MASS, kableExtra, gridExtra, MCMCglmm, brms, metafor, robumeta, clubSandwich, pander, tidyverse) ``` # Simulating Non-independent Effect Size Data @@ -55,19 +54,19 @@ First, we'll load some of the packages that we'll need. Here, we will simulate some meta-analytic data. We will keep this very simple, just for demonstration purposes. Hence, we will assume that we have collected data from a total of 20 studies, and we'll assume that we were able to extract n = 3 effect sizes from each of these 20 studies. In total, we have a data set that contains n = `r 20*3` effect sizes. ```{r simulated data, class.source='klippy'} - # Simulate a dataset composed of 30 papers, each having 5 effects from the same study. + # Simulate a dataset composed of 20 papers, each having 3 effects from the same study. set.seed(87) # Parameters no.paper = 20 # Numbers of unique papers n.effects = 3 # Number of effects per paper. We will keep simple and balanced - rho.e = 0.8 # Correlation in sampling variances + rho.e = 0.8 # Correlation among sampling variances study_id = rep(1:no.paper, each = n.effects) # Study ID's var_paper = 1 # Between-study variance (i.e., tau2) var_effect = 0.8 # Effect size (or within study) variance mu = 0.4 # Average, or overall, effect size - rho = 0.1 #c(0.1, 0.2, 0.3, 0.4) # Note that, setting this to zero equates to Shinichi's approach + rho = 0.1 # Correlation among effect sizes within study; could vary # Add sampling variance # First, sample @@ -99,7 +98,7 @@ Here, we will simulate some meta-analytic data. We will keep this very simple, j # Build the full correlation matrix cor_yi <- as.matrix(Matrix::bdiag(matrices)) - # Calculate the full covariance matrix with Tau2 + # Calculate the full covariance matrix cov_yi <- cor_yi * sqrt(var_effect) * sqrt(var_effect) # Now simulate effect sizes, assuming that the average effect size and all the relevant within study correlations. @@ -114,9 +113,9 @@ Here, we will simulate some meta-analytic data. We will keep this very simple, j ``` -Now that we have our simulated (i.e., fake or toy) data, we can demonstrate a few corrections that can be applied to MLMA models that will offset any possible inflated Type I error rates. +Now that we have our simulated data, we can demonstrate a few corrections that can be applied to MLMA models that will offset any possible inflated Type I error rates. -# Fit the Multi-level Meta-analytic (MLMA) Model +# Step 1: Fit the Multi-level Meta-analytic (MLMA) Model First, lets just fit our multilevel meta-analytic (MLMA) model. We can do that using our simulated data as follows: @@ -126,40 +125,32 @@ First, lets just fit our multilevel meta-analytic (MLMA) model. We can do that u data=data, test="t") summary(mod_multilevel) ``` -We have fit a simple MLMA model that estimates the overall meta-analytic mean. We can see that our model estimates this correctly. Remember that the true mean is `r mu`, and we are pretty close to this value (i.e., `r mod_multilevel$beta`). This is also true of our random effect variance estimates. In this case, we know that the MLMA model is ignoring the shared sampling variance dependence in effect sizes. We expect that this 'should' (at least on average) inflate Type I error rates. Assuming we did not know any better we would want to account for this dependence. Below, we describe a few corrections that meta-analysts can apply that should overcome the problems associated with not accounting for effect size dependence. +We have fit a simple MLMA model that estimates the overall meta-analytic mean. We can see that our model estimates this correctly. Remember that the true mean is `r mu`, and we are pretty close to this value (i.e., `r mod_multilevel$beta`). This is also true of our random effect variance estimates. In this case, we know that the MLMA model is not completely dealing with the dependence among effect sizes. We expect that this 'should' (at least on average) inflate Type I error rates. Assuming we did not know any better we would want to account for this dependence. Below, we describe a few corrections that meta-analysts can apply that should overcome the problems associated with not accounting for effect size dependence. -# Correction using Robust Variance Estimator (RVE) with Saitterwaite Degrees of Freedom Correction +# Correction 1: Using a Robust Variance Estimator (RVE) with Saitterwaite Degrees of Freedom Correction -A very simple solution is to make use of robust variance estimators (RVE). This can be done in a few packages, but very easily using the `clubSandwich` package [@Pustejovsky2020; @Hedges2010; @Tipon2015], which also works well with `metafor` [@Wolfgang2010] models. This appaoch also makes use of a Saitterwaite degrees of freedom correction [@SW; @Tipon2015]. This works with `metafor` objects quite elegantly. The benefit of such an approach is simply that we need not make any assumptions about what the correlation between effect sizes actually is (assuming we didn't know the true correlation) [@Hedges2010; @Tipon2015]. In addition, it also will acount for possible heteroscedascity. This solution can be implemented as follows using our MLMA model we fit in the above section. +A very simple solution is to make use of robust variance estimators (RVE). This can be done in a few packages, but very easily using the `clubSandwich` package [@Pustejovsky2020; @Hedges2010; @Tipon2015], which also works well with `metafor` [@Wolfgang2010] models. This approach also makes use of a Saitterwaite degrees of freedom correction [@SW; @Tipon2015]. This works with `metafor` objects quite elegantly. The benefit of such an approach is simply that we need not make any assumptions about what the correlation between effect sizes actually is (assuming we didn't know the true correlation) [@Hedges2010; @Tipon2015]. In addition, it also will account for possible heteroscedascity. This solution can be implemented as follows using our MLMA model we fit in the above section. ```{r fitrobust, class.source='klippy'} mod_RVE <- coef_test(mod_multilevel, vcov="CR2", cluster = data$study_id) print(mod_RVE) - - mod <- robumeta::robu(formula=yi~1, data=data, studynum=study_id, var.eff.size=vi, method = "HIER", small = FALSE) + ``` -With this simple (and well balanced) data, our RVE approches doesn't change the results much. +A better, but slightly more restricted RVE can be implemented in the `robumeta` package in R. It is better at dealing with non-independence, but is currently limited to a single random effect level. Nonetheless, with our simple model we can fit a RVE model that completely deals with non-independence as follows: -# Correction by Applying Bayesian Multi-level Meta-analytic Model - -As we describe in our comment, Bayesian approaches, assuming one has a good sample size, do a very good job correcting for inflated Type I errors across a variety of situations. Baysian MLMA models can be fit in various packages. Probably the most flexible for meta-analyst's are `MCMCglmm` [@Hadfield2010] and `brms` [@Brkner2017; @Brkner2018]. Here, we demonstrate how to fit the same MLMA model using `MCMCglmm` which has a syntax that is different from the typical one used in packages such as `metafor` and `lme4` [@Bates2015], which meta-analysts might be more acustomed too. - -```{r bayes, class.source='klippy'} - prior <- list(R = list(V = 1, nu = 0.002), - G = list(G1 = list(V = 1 , nu = 1, alpha.mu=0, alpha.V=25^2))) - - bayes_multilevel <- MCMCglmm(yi ~ 1, mev = data$vi, random = ~ study_id, data = data, prior = prior, verbose = FALSE) - summary(bayes_multilevel) +```{r fitrobu, class.source='klippy'} + mod <- robumeta::robu(formula=yi~1, data=data, studynum=study_id, var.eff.size=vi, method = "HIER", small = FALSE) + print(mod) ``` -As expected, our credible intervals get a little bit wider. +With this simple (and well balanced) data, our RVE approaches don't change the results much, but this won't always be the case. -# Correction by Modeling the Entire Sampling Covariance Matrix +# Correction 2: Modeling the Entire Sampling Covariance Matrix -Of course, we can also take an approach proposed by @Noble2017, where we fit the covariance matrix directly by simply assuming that effects that come from the same study are correletd by r = 0.5. Ultimately, one could change this correlation, depending on the situation and context, but r = 0.5 will probably suffice in many situations. This assumes, however, that the degree of correlation among effect sizes within a study is the same across studies. This assumption is relaxed in the RVE approaches decsribed above. We can also test whether this is a safe assumption by combining it with a ClubSandwich estimator. We can build the matrix an implement this approach as follows: +Of course, we can also take an approach proposed by @Noble2017, where we fit the covariance matrix directly by simply assuming that effects that come from the same study are correlated by r = 0.5. Ultimately, one could change this correlation, depending on the situation and context, but r = 0.5 will probably suffice in many situations. This assumes, however, that the degree of correlation among effect sizes within a study is the same across studies. This assumption is relaxed in the RVE approaches described above. We can also test whether this is a safe assumption by combining it with a ClubSandwich estimator. We can build the matrix an implement this approach as follows: -```{r VCVmatrix, class.source='klippy'} +```{r VCVmatrix, class.source="klippy"} vcv <- impute_covariance_matrix(vi = data$vi, cluster = data$study_id, r = 0.5) mod_multilevel_vcv <- metafor::rma.mv(yi=yi, V = vcv, mods=~1, random=list(~1|study_id,~1|obs), data=data, test="t") @@ -168,6 +159,20 @@ Of course, we can also take an approach proposed by @Noble2017, where we fit the print(mod_multilevel_vcv) ``` +# Correction 3: Applying Bayesian Multi-level Meta-analytic Model + +As we describe in our comment, Bayesian approaches, assuming one has a good sample size, do a very good job correcting for inflated Type I errors across a variety of situations. Bayesian MLMA models can be fit in various packages. Probably the most flexible for meta-analyst's are `MCMCglmm` [@Hadfield2010] and `brms` [@Brkner2017; @Brkner2018]. Here, we demonstrate how to fit the same MLMA model using `MCMCglmm` which has a syntax that is different from the typical one used in packages such as `metafor` and `lme4` [@Bates2015], which meta-analysts might be more accustomed too. + +```{r bayes, class.source="klippy"} + prior <- list(R = list(V = 1, nu = 0.002), + G = list(G1 = list(V = 1 , nu = 1, alpha.mu=0, alpha.V=25^2))) + + bayes_multilevel <- MCMCglmm(yi ~ 1, mev = data$vi, random = ~ study_id, data = data, prior = prior, verbose = FALSE) + summary(bayes_multilevel) +``` + +As expected, our credible intervals get a little bit wider. Bayesian models are the most conservative here given this is not a large data set. + # Conclusions The goal of our short tutorial was to dispel the idea that overcoming, and implementing, solutions to deal with non-independent effect sizes when working with multi-level meta-analytic models is challenging. Our simulations show [@Nakagawa2021] that there are a number of very easily implemented solutions. As such, meta-analyst's can harness the power of MLMA models without the need to average effect sizes, as suggested by @Song2020. diff --git a/Supplemental_Implementation_Example.html b/Supplemental_Implementation_Example.html new file mode 100644 index 0000000..b619871 --- /dev/null +++ b/Supplemental_Implementation_Example.html @@ -0,0 +1,632 @@ + + + + + + + + + + + + + + + +Tutorial on how to implement simple corrections to deal with non-independent effect sizes in multi-level meta-analysis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+
+ +
+ + + + + + + +
+

Introduction

+

In this tutorial, we demonstrate how meta-analyst’s can implement approaches for correcting inflated Type I error rates when using multilevel meta-analytic (MLMA) models with non-independent effect size data. For ease of presentation, we use simulated data to demonstrate the implementation of a few easy solutions.

+
+
+

R Packages Required

+

First, we’ll load some of the packages that we’ll need.

+
# Clean workspace
+rm(list = ls())
+
+# Loading packages & Functions
+
+pacman::p_load(tidyverse, MASS, kableExtra, gridExtra, MCMCglmm, brms, metafor, robumeta, 
+    clubSandwich, pander, tidyverse)
+
+
+

Simulating Non-independent Effect Size Data

+

Here, we will simulate some meta-analytic data. We will keep this very simple, just for demonstration purposes. Hence, we will assume that we have collected data from a total of 20 studies, and we’ll assume that we were able to extract n = 3 effect sizes from each of these 20 studies. In total, we have a data set that contains n = 60 effect sizes.

+
# Simulate a dataset composed of 20 papers, each having 3 effects from the same
+# study.
+
+set.seed(87)
+
+# Parameters
+no.paper = 20  # Numbers of unique papers
+n.effects = 3  # Number of effects per paper. We will keep simple and balanced
+rho.e = 0.8  # Correlation among sampling variances
+study_id = rep(1:no.paper, each = n.effects)  # Study ID's
+var_paper = 1  # Between-study variance (i.e., tau2)
+var_effect = 0.8  # Effect size (or within study) variance
+mu = 0.4  # Average, or overall, effect size
+rho = 0.1  # Correlation among effect sizes within study; could vary
+
+# Add sampling variance First, sample
+n.sample <- rnbinom(no.paper, mu = 40, size = 0.5) + 4
+
+# Assume logRR. So, sampling variance approximated by the CV.
+cv <- sample(seq(0.3, 0.35, by = 0.001), no.paper, replace = TRUE)
+
+# Assuming sample size is the same for all effects within study (pretty sensible)
+rep_sample <- rep(n.sample, each = n.effects)
+
+# Sampling variances
+vi <- (2 * cv^2)/rep_sample
+
+# Create the sampling (co)variance matrix
+cov_vi <- as.matrix(Matrix::bdiag(impute_covariance_matrix(vi = vi, cluster = study_id, 
+    r = rho.e)))
+
+# Now create the effect size level covariance matrix. This would simulate a
+# situation where, for example, you have effect sizes on reading and maths that
+# are correlated, but to varying extents across studies. Of course, this could
+# vary within study too.
+
+# Create list of matrices, 1 for each study
+matrices <- list()
+for (i in 1:no.paper) {
+    r <- sample(rho, size = 1, replace = TRUE)
+    tmp <- matrix(r, nrow = n.effects, ncol = n.effects)
+    diag(tmp) <- 1
+    matrices[[i]] <- tmp
+}
+
+# Build the full correlation matrix
+cor_yi <- as.matrix(Matrix::bdiag(matrices))
+
+# Calculate the full covariance matrix
+cov_yi <- cor_yi * sqrt(var_effect) * sqrt(var_effect)
+
+# Now simulate effect sizes, assuming that the average effect size and all the
+# relevant within study correlations.
+
+yi <- mu + rep(rnorm(no.paper, 0, sqrt(var_paper)), each = n.effects) + mvrnorm(n = 1, 
+    mu = rep(0, n.effects * no.paper), cov_yi) + mvrnorm(n = 1, mu = rep(0, n.effects * 
+    no.paper), cov_vi)
+
+# Create the data. We'll just assume that meta-analysts have already derived
+# their effect size and sampling variance
+data <- data.frame(study_id = study_id, yi = yi, vi = vi, obs = c(1:(n.effects * 
+    no.paper)))
+

Now that we have our simulated data, we can demonstrate a few corrections that can be applied to MLMA models that will offset any possible inflated Type I error rates.

+
+
+

Step 1: Fit the Multi-level Meta-analytic (MLMA) Model

+

First, lets just fit our multilevel meta-analytic (MLMA) model. We can do that using our simulated data as follows:

+
mod_multilevel = metafor::rma.mv(yi = yi, V = vi, mods = ~1, random = list(~1 | study_id, 
+    ~1 | obs), data = data, test = "t")
+summary(mod_multilevel)
+
## 
+## Multivariate Meta-Analysis Model (k = 60; method: REML)
+## 
+##   logLik  Deviance       AIC       BIC      AICc 
+## -95.5412  191.0824  197.0824  203.3150  197.5188   
+## 
+## Variance Components:
+## 
+##             estim    sqrt  nlvls  fixed    factor 
+## sigma^2.1  0.9791  0.9895     20     no  study_id 
+## sigma^2.2  0.9304  0.9646     60     no       obs 
+## 
+## Test for Heterogeneity:
+## Q(df = 59) = 21024.3536, p-val < .0001
+## 
+## Model Results:
+## 
+## estimate      se    tval    pval    ci.lb   ci.ub 
+##   0.4262  0.2545  1.6747  0.0993  -0.0830  0.9354  . 
+## 
+## ---
+## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+

We have fit a simple MLMA model that estimates the overall meta-analytic mean. We can see that our model estimates this correctly. Remember that the true mean is 0.4, and we are pretty close to this value (i.e., 0.43). This is also true of our random effect variance estimates. In this case, we know that the MLMA model is not completely dealing with the dependence among effect sizes. We expect that this ‘should’ (at least on average) inflate Type I error rates. Assuming we did not know any better we would want to account for this dependence. Below, we describe a few corrections that meta-analysts can apply that should overcome the problems associated with not accounting for effect size dependence.

+
+
+

Correction 1: Using a Robust Variance Estimator (RVE) with Saitterwaite Degrees of Freedom Correction

+

A very simple solution is to make use of robust variance estimators (RVE). This can be done in a few packages, but very easily using the clubSandwich package (Hedges et al. 2010, Tipton and Pustejovsky 2015, Pustejovsky 2020), which also works well with metafor (Viechtbauer 2010) models. This approach also makes use of a Saitterwaite degrees of freedom correction (Satterthwaite 1946, Tipton and Pustejovsky 2015). This works with metafor objects quite elegantly. The benefit of such an approach is simply that we need not make any assumptions about what the correlation between effect sizes actually is (assuming we didn’t know the true correlation) (Hedges et al. 2010, Tipton and Pustejovsky 2015). In addition, it also will account for possible heteroscedascity. This solution can be implemented as follows using our MLMA model we fit in the above section.

+
mod_RVE <- coef_test(mod_multilevel, vcov = "CR2", cluster = data$study_id)
+print(mod_RVE)
+
##     Coef. Estimate    SE t-stat d.f. p-val (Satt) Sig.
+## 1 intrcpt    0.426 0.254   1.67   19         0.11
+

A better, but slightly more restricted RVE can be implemented in the robumeta package in R. It is better at dealing with non-independence, but is currently limited to a single random effect level. Nonetheless, with our simple model we can fit a RVE model that completely deals with non-independence as follows:

+
mod <- robumeta::robu(formula = yi ~ 1, data = data, studynum = study_id, var.eff.size = vi, 
+    method = "HIER", small = FALSE)
+print(mod)
+
## RVE: Correlated Effects Model  
+## 
+## Model: yi ~ 1 
+## 
+## Number of studies = 20 
+## Number of outcomes = 60 (min = 3 , mean = 3 , median = 3 , max = 3 )
+## Rho = 0.8 
+## I.sq = 100 
+## Tau.sq = 1.8 
+## 
+##                Estimate StdErr t-value dfs P(|t|>) 95% CI.L 95% CI.U Sig
+## 1 X.Intercept.    0.425  0.255    1.67  19   0.112   -0.108    0.958    
+## ---
+## Signif. codes: < .01 *** < .05 ** < .10 *
+## ---
+

With this simple (and well balanced) data, our RVE approaches don’t change the results much, but this won’t always be the case.

+
+
+

Correction 2: Modeling the Entire Sampling Covariance Matrix

+

Of course, we can also take an approach proposed by Noble et al. (2017), where we fit the covariance matrix directly by simply assuming that effects that come from the same study are correlated by r = 0.5. Ultimately, one could change this correlation, depending on the situation and context, but r = 0.5 will probably suffice in many situations. This assumes, however, that the degree of correlation among effect sizes within a study is the same across studies. This assumption is relaxed in the RVE approaches described above. We can also test whether this is a safe assumption by combining it with a ClubSandwich estimator. We can build the matrix an implement this approach as follows:

+
vcv <- impute_covariance_matrix(vi = data$vi, cluster = data$study_id, r = 0.5)
+
+mod_multilevel_vcv <- metafor::rma.mv(yi = yi, V = vcv, mods = ~1, random = list(~1 | 
+    study_id, ~1 | obs), data = data, test = "t")
+
+mod_multilevel_vcv <- coef_test(mod_multilevel_vcv, vcov = "CR2", cluster = data$study_id)
+print(mod_multilevel_vcv)
+
##     Coef. Estimate    SE t-stat d.f. p-val (Satt) Sig.
+## 1 intrcpt    0.425 0.255   1.67   19        0.112
+
+
+

Correction 3: Applying Bayesian Multi-level Meta-analytic Model

+

As we describe in our comment, Bayesian approaches, assuming one has a good sample size, do a very good job correcting for inflated Type I errors across a variety of situations. Bayesian MLMA models can be fit in various packages. Probably the most flexible for meta-analyst’s are MCMCglmm (Hadfield 2010) and brms (Bürkner 2017, 2018). Here, we demonstrate how to fit the same MLMA model using MCMCglmm which has a syntax that is different from the typical one used in packages such as metafor and lme4 (Bates et al. 2015), which meta-analysts might be more accustomed too.

+
prior <- list(R = list(V = 1, nu = 0.002), G = list(G1 = list(V = 1, nu = 1, alpha.mu = 0, 
+    alpha.V = 25^2)))
+
+bayes_multilevel <- MCMCglmm(yi ~ 1, mev = data$vi, random = ~study_id, data = data, 
+    prior = prior, verbose = FALSE)
+summary(bayes_multilevel)
+
## 
+##  Iterations = 3001:12991
+##  Thinning interval  = 10
+##  Sample size  = 1000 
+## 
+##  DIC: 185 
+## 
+##  G-structure:  ~study_id
+## 
+##          post.mean l-95% CI u-95% CI eff.samp
+## study_id      1.19    0.242     2.32      615
+## 
+##  R-structure:  ~units
+## 
+##       post.mean l-95% CI u-95% CI eff.samp
+## units     0.982    0.576     1.46     1000
+## 
+##  Location effects: yi ~ 1 
+## 
+##             post.mean l-95% CI u-95% CI eff.samp pMCMC
+## (Intercept)     0.422   -0.105    1.012     1000  0.14
+

As expected, our credible intervals get a little bit wider. Bayesian models are the most conservative here given this is not a large data set.

+
+
+

Conclusions

+

The goal of our short tutorial was to dispel the idea that overcoming, and implementing, solutions to deal with non-independent effect sizes when working with multi-level meta-analytic models is challenging. Our simulations show (Nakagawa et al. 2021) that there are a number of very easily implemented solutions. As such, meta-analyst’s can harness the power of MLMA models without the need to average effect sizes, as suggested by Song et al. (2020).

+
+
+

Session Info

+

R version 4.0.3 (2020-10-10)

+

Platform: x86_64-apple-darwin17.0 (64-bit)

+

locale: +en_AU.UTF-8||en_AU.UTF-8||en_AU.UTF-8||C||en_AU.UTF-8||en_AU.UTF-8

+

attached base packages: +stats, graphics, grDevices, utils, datasets, methods and base

+

other attached packages: +pander(v.0.6.3), clubSandwich(v.0.5.3), robumeta(v.2.0), metafor(v.2.4-0), brms(v.2.14.4), Rcpp(v.1.0.6), MCMCglmm(v.2.30), ape(v.5.4-1), coda(v.0.19-4), Matrix(v.1.2-18), gridExtra(v.2.3), kableExtra(v.1.3.1), MASS(v.7.3-53), forcats(v.0.5.0), stringr(v.1.4.0), dplyr(v.1.0.3), purrr(v.0.3.4), readr(v.1.4.0), tidyr(v.1.1.2), tibble(v.3.0.5), ggplot2(v.3.3.3), tidyverse(v.1.3.0) and klippy(v.0.0.0.9500)

+

loaded via a namespace (and not attached): +readxl(v.1.3.1), backports(v.1.2.1), plyr(v.1.8.6), igraph(v.1.2.6), splines(v.4.0.3), crosstalk(v.1.1.1), rstantools(v.2.1.1), inline(v.0.3.17), digest(v.0.6.27), htmltools(v.0.5.1), rsconnect(v.0.8.16), fansi(v.0.4.2), magrittr(v.2.0.1), modelr(v.0.1.8), RcppParallel(v.5.0.2), matrixStats(v.0.57.0), sandwich(v.3.0-0), xts(v.0.12.1), prettyunits(v.1.1.1), colorspace(v.2.0-0), rvest(v.0.3.6), haven(v.2.3.1), xfun(v.0.20), callr(v.3.5.1), crayon(v.1.3.4), jsonlite(v.1.7.2), lme4(v.1.1-26), zoo(v.1.8-8), glue(v.1.4.2), gtable(v.0.3.0), webshot(v.0.5.2), V8(v.3.4.0), pkgbuild(v.1.2.0), rstan(v.2.21.1), abind(v.1.4-5), scales(v.1.1.1), mvtnorm(v.1.1-1), DBI(v.1.1.1), miniUI(v.0.1.1.1), viridisLite(v.0.3.0), xtable(v.1.8-4), stats4(v.4.0.3), StanHeaders(v.2.21.0-7), DT(v.0.17), htmlwidgets(v.1.5.3), httr(v.1.4.2), threejs(v.0.3.3), ellipsis(v.0.3.1), pkgconfig(v.2.0.3), loo(v.2.4.1), dbplyr(v.2.0.0), tidyselect(v.1.1.0), rlang(v.0.4.10), reshape2(v.1.4.4), later(v.1.1.0.1), munsell(v.0.5.0), cellranger(v.1.1.0), tools(v.4.0.3), cli(v.2.2.0), generics(v.0.1.0), pacman(v.0.5.1), broom(v.0.7.3), ggridges(v.0.5.3), evaluate(v.0.14), fastmap(v.1.0.1), yaml(v.2.2.1), processx(v.3.4.5), knitr(v.1.30), fs(v.1.5.0), nlme(v.3.1-149), mime(v.0.9), projpred(v.2.0.2), formatR(v.1.7), xml2(v.1.3.2), compiler(v.4.0.3), bayesplot(v.1.8.0), shinythemes(v.1.1.2), rstudioapi(v.0.13), gamm4(v.0.2-6), curl(v.4.3), reprex(v.0.3.0), statmod(v.1.4.35), stringi(v.1.5.3), ps(v.1.5.0), Brobdingnag(v.1.2-6), cubature(v.2.0.4.1), lattice(v.0.20-41), nloptr(v.1.2.2.2), markdown(v.1.1), shinyjs(v.2.0.0), tensorA(v.0.36.2), vctrs(v.0.3.6), pillar(v.1.4.7), lifecycle(v.0.2.0), bridgesampling(v.1.0-0), corpcor(v.1.6.9), httpuv(v.1.5.5), R6(v.2.5.0), bookdown(v.0.21), promises(v.1.1.1), codetools(v.0.2-16), boot(v.1.3-25), colourpicker(v.1.1.0), gtools(v.3.8.2), assertthat(v.0.2.1), withr(v.2.4.0), shinystan(v.2.5.0), mgcv(v.1.8-33), parallel(v.4.0.3), hms(v.1.0.0), grid(v.4.0.3), minqa(v.1.2.4), rmarkdown(v.2.6), shiny(v.1.5.0), lubridate(v.1.7.9.2), base64enc(v.0.1-3) and dygraphs(v.1.1.1.6)

+
+
+

References

+
+
+Bates, D., M. Maechler, B. Bolker, and S. Walker. 2015. Fitting linear mixed-effects models using lme4. Journal of Statistical Software 67:1–48. doi:10.18637/jss.v067.i01. +
+
+Bürkner, P.-C. 2017. Brms: An r package for bayesian multilevel models using stan. Journal of Statistical Software 80:1–28. doi:10.18637/jss.v080.i01. +
+
+Bürkner, P.-C. 2018. Advanced bayesian multilevel modeling with the r package brms. The R Journal 10:395-411. doi:10.32614/RJ-2018-017. +
+
+Hadfield, J. D. 2010. MCMC methods for multi-response generalised linear mixed models: The MCMCglmm r package. Journal of Statistical Software 33:1–22. +
+
+Hedges, L. V., E. Tipton, and M. C. Johnson. 2010. Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods 1:39–65. +
+
+Nakagawa, S., A. M. Senior, W. Viechtbauer, and D. W. A. Noble. 2021. An assessment of statistical methods for non-independent data in ecological meta-analyses: comment. Ecology in press. +
+
+Noble, D. W. A., M. Lagisz, R. E. O’Dea, and S. Nakagawa. 2017. Non‐independence and sensitivity analyses in ecological and evolutionary meta‐analyses. Molecular Ecology 26:2410–2425. +
+
+Pustejovsky, J. 2020. clubSandwich: Cluster-robust (sandwich) variance estimators with small-sample corrections. R package version 0.5.1. https://CRAN.R-project.org/package=clubSandwich. +
+
+Satterthwaite, F. E. 1946. An approximate distribution of estimates of variance components. Biometrics Bulletin 2:110–114. +
+
+Song, C., S. D. Peacor, C. W. Osenberg, and J. R. Bence. 2020. An assessment of statistical methods for nonindependent data in ecological meta-analyses. Ecology online: e03184. +
+
+Tipton, E., and J. E. Pustejovsky. 2015. Small-sample adjustments for tests of moderators and model fit using robust variance estimation in meta-regression. Journal of Educational and Behavioral Statistics 40:604–634. +
+
+Viechtbauer, W. 2010. Conducting meta-analyses in r with the metafor package. Journal of Statistical Software 36:1–48. +
+
+
+ + + +
+
+ +
+ + + + + + + + + + + + + + + + + From ffb944be10dae5dc64c36e386f203b105077ae08 Mon Sep 17 00:00:00 2001 From: Daniel Noble Date: Sun, 28 Feb 2021 21:07:19 +1100 Subject: [PATCH 3/5] cleanup and update to README --- Figure 1.pdf | Bin 49844 -> 0 bytes FigureS1.pdf | Bin 12629 -> 0 bytes README.md | 15 ++++++++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) delete mode 100644 Figure 1.pdf delete mode 100644 FigureS1.pdf diff --git a/Figure 1.pdf b/Figure 1.pdf deleted file mode 100644 index 51dea0e1d323d3e2c528d4777c8d9ea93d9ec2b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49844 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%0DXwm!od|H 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 Date: Mon, 1 Mar 2021 15:07:59 +1100 Subject: [PATCH 4/5] Fixed the code so that code copying icons appear on code chunks. Problem for why not working seemed to be related to results=hide in chunk paramters --- Supplemental_Implementation_Example.Rmd | 18 +- Supplemental_Implementation_Example.html | 1612 ++++++++++++++++++++-- 2 files changed, 1535 insertions(+), 95 deletions(-) diff --git a/Supplemental_Implementation_Example.Rmd b/Supplemental_Implementation_Example.Rmd index 822027e..d43011e 100644 --- a/Supplemental_Implementation_Example.Rmd +++ b/Supplemental_Implementation_Example.Rmd @@ -11,13 +11,6 @@ toc: yes toc_depth: 6 toc_float: yes - bookdown::word_document2: - toc: no - toc_depth: 6 - number_sections: true - reference_docx: template.docx - editor_options: - chunk_output_type: console --- ```{r setup, include=FALSE} @@ -25,12 +18,13 @@ ## numbers >= 10^5 will be denoted in scientific notation, ## numbers >= 10^5 will be denoted in scientific notation, ## and rounded to 2 digits ## and rounded to 2 digits options(digits = 2) + + #install.packages("devtools") +#remotes::install_github("rlesur/klippy") +#library(klippy) ``` -```{r klippy, echo=FALSE, include=TRUE,results='hide'} -#install.packages("devtools") -#remotes::install_github("rlesur/klippy") -library(klippy) +```{r klippy, echo=FALSE, include=TRUE} klippy::klippy(tooltip_message = 'Click to Copy Code', tooltip_success = 'Done', position = 'right', color = "red") ``` @@ -40,7 +34,7 @@ In this tutorial, we demonstrate how meta-analyst's can implement approaches for # R Packages Required First, we'll load some of the packages that we'll need. -```{r packages_data,results='hide'} +```{r packages_data,results='hide', class.source='klippy'} # Clean workspace rm(list=ls()) diff --git a/Supplemental_Implementation_Example.html b/Supplemental_Implementation_Example.html index b619871..475ddfd 100644 --- a/Supplemental_Implementation_Example.html +++ b/Supplemental_Implementation_Example.html @@ -11,33 +11,1498 @@ - + Tutorial on how to implement simple corrections to deal with non-independent effect sizes in multi-level meta-analysis - - - - - - - - - - - - - - + + + + + + + + +.tocify { +width: 20%; +max-height: 90%; +overflow: auto; +margin-left: 2%; +position: fixed; +border: 1px solid #ccc; +border-radius: 6px; +} + +.tocify ul, .tocify li { +list-style: none; +margin: 0; +padding: 0; +border: none; +line-height: 30px; +} + +.tocify-header { +text-indent: 10px; +} + +.tocify-subheader { +text-indent: 20px; +display: none; +} + +.tocify-subheader li { +font-size: 12px; +} + +.tocify-subheader .tocify-subheader { +text-indent: 30px; +} +.tocify-subheader .tocify-subheader .tocify-subheader { +text-indent: 40px; +} +.tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader { +text-indent: 50px; +} +.tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader { +text-indent: 60px; +} + +.tocify .tocify-item > a, .tocify .nav-list .nav-header { +margin: 0px; +} + +.tocify .tocify-item a, .tocify .list-group-item { +padding: 5px; +} +.tocify .nav-pills > li { +float: none; +} + + + + + + + + + + + + - - @@ -301,11 +1743,15 @@

Tutorial on how to implement simple corrections to deal with non-independent effect sizes in multi-level meta-analysis

Shinichi Nakagawa, Alistair M. Senior, Wolfgang Viechtbauer and Daniel W. A. Noble

-

2021-02-28

+

2021-03-01

+

Introduction

In this tutorial, we demonstrate how meta-analyst’s can implement approaches for correcting inflated Type I error rates when using multilevel meta-analytic (MLMA) models with non-independent effect size data. For ease of presentation, we use simulated data to demonstrate the implementation of a few easy solutions.

@@ -313,7 +1759,7 @@

Introduction

R Packages Required

First, we’ll load some of the packages that we’ll need.

-
# Clean workspace
+
# Clean workspace
 rm(list = ls())
 
 # Loading packages & Functions
@@ -333,7 +1779,7 @@ 

Simulating Non-independent Effect Size Data

no.paper = 20 # Numbers of unique papers n.effects = 3 # Number of effects per paper. We will keep simple and balanced rho.e = 0.8 # Correlation among sampling variances -study_id = rep(1:no.paper, each = n.effects) # Study ID's +study_id = rep(1:no.paper, each = n.effects) # Study ID's var_paper = 1 # Between-study variance (i.e., tau2) var_effect = 0.8 # Effect size (or within study) variance mu = 0.4 # Average, or overall, effect size @@ -382,7 +1828,7 @@

Simulating Non-independent Effect Size Data

mu = rep(0, n.effects * no.paper), cov_yi) + mvrnorm(n = 1, mu = rep(0, n.effects * no.paper), cov_vi) -# Create the data. We'll just assume that meta-analysts have already derived +# Create the data. We'll just assume that meta-analysts have already derived # their effect size and sampling variance data <- data.frame(study_id = study_id, yi = yi, vi = vi, obs = c(1:(n.effects * no.paper)))
@@ -415,7 +1861,7 @@

Step 1: Fit the Multi-level Meta-analytic (MLMA) Model

## 0.4262 0.2545 1.6747 0.0993 -0.0830 0.9354 . ## ## --- -## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

We have fit a simple MLMA model that estimates the overall meta-analytic mean. We can see that our model estimates this correctly. Remember that the true mean is 0.4, and we are pretty close to this value (i.e., 0.43). This is also true of our random effect variance estimates. In this case, we know that the MLMA model is not completely dealing with the dependence among effect sizes. We expect that this ‘should’ (at least on average) inflate Type I error rates. Assuming we did not know any better we would want to account for this dependence. Below, we describe a few corrections that meta-analysts can apply that should overcome the problems associated with not accounting for effect size dependence.

@@ -478,17 +1924,17 @@

Correction 3: Applying Bayesian Multi-level Meta-analytic Model

## G-structure: ~study_id ## ## post.mean l-95% CI u-95% CI eff.samp -## study_id 1.19 0.242 2.32 615 +## study_id 1.17 0.353 2.41 578 ## ## R-structure: ~units ## ## post.mean l-95% CI u-95% CI eff.samp -## units 0.982 0.576 1.46 1000 +## units 0.984 0.605 1.49 1000 ## ## Location effects: yi ~ 1 ## ## post.mean l-95% CI u-95% CI eff.samp pMCMC -## (Intercept) 0.422 -0.105 1.012 1000 0.14 +## (Intercept) 0.423 -0.104 0.953 1000 0.12

As expected, our credible intervals get a little bit wider. Bayesian models are the most conservative here given this is not a large data set.

@@ -497,55 +1943,55 @@

Conclusions

Session Info

-

R version 4.0.3 (2020-10-10)

-

Platform: x86_64-apple-darwin17.0 (64-bit)

+

R version 3.6.0 (2019-04-26)

+

Platform: x86_64-apple-darwin15.6.0 (64-bit)

locale: en_AU.UTF-8||en_AU.UTF-8||en_AU.UTF-8||C||en_AU.UTF-8||en_AU.UTF-8

attached base packages: stats, graphics, grDevices, utils, datasets, methods and base

other attached packages: -pander(v.0.6.3), clubSandwich(v.0.5.3), robumeta(v.2.0), metafor(v.2.4-0), brms(v.2.14.4), Rcpp(v.1.0.6), MCMCglmm(v.2.30), ape(v.5.4-1), coda(v.0.19-4), Matrix(v.1.2-18), gridExtra(v.2.3), kableExtra(v.1.3.1), MASS(v.7.3-53), forcats(v.0.5.0), stringr(v.1.4.0), dplyr(v.1.0.3), purrr(v.0.3.4), readr(v.1.4.0), tidyr(v.1.1.2), tibble(v.3.0.5), ggplot2(v.3.3.3), tidyverse(v.1.3.0) and klippy(v.0.0.0.9500)

+pander(v.0.6.3), clubSandwich(v.0.5.1), robumeta(v.2.0), metafor(v.2.4-0), brms(v.2.12.0), Rcpp(v.1.0.5), MCMCglmm(v.2.29), ape(v.5.4-1), coda(v.0.19-3), Matrix(v.1.2-18), gridExtra(v.2.3), kableExtra(v.1.1.0), MASS(v.7.3-51.6), forcats(v.0.5.0), stringr(v.1.4.0), dplyr(v.1.0.2), purrr(v.0.3.4), readr(v.1.3.1), tidyr(v.1.1.1), tibble(v.3.0.3), ggplot2(v.3.3.2) and tidyverse(v.1.3.0)

loaded via a namespace (and not attached): -readxl(v.1.3.1), backports(v.1.2.1), plyr(v.1.8.6), igraph(v.1.2.6), splines(v.4.0.3), crosstalk(v.1.1.1), rstantools(v.2.1.1), inline(v.0.3.17), digest(v.0.6.27), htmltools(v.0.5.1), rsconnect(v.0.8.16), fansi(v.0.4.2), magrittr(v.2.0.1), modelr(v.0.1.8), RcppParallel(v.5.0.2), matrixStats(v.0.57.0), sandwich(v.3.0-0), xts(v.0.12.1), prettyunits(v.1.1.1), colorspace(v.2.0-0), rvest(v.0.3.6), haven(v.2.3.1), xfun(v.0.20), callr(v.3.5.1), crayon(v.1.3.4), jsonlite(v.1.7.2), lme4(v.1.1-26), zoo(v.1.8-8), glue(v.1.4.2), gtable(v.0.3.0), webshot(v.0.5.2), V8(v.3.4.0), pkgbuild(v.1.2.0), rstan(v.2.21.1), abind(v.1.4-5), scales(v.1.1.1), mvtnorm(v.1.1-1), DBI(v.1.1.1), miniUI(v.0.1.1.1), viridisLite(v.0.3.0), xtable(v.1.8-4), stats4(v.4.0.3), StanHeaders(v.2.21.0-7), DT(v.0.17), htmlwidgets(v.1.5.3), httr(v.1.4.2), threejs(v.0.3.3), ellipsis(v.0.3.1), pkgconfig(v.2.0.3), loo(v.2.4.1), dbplyr(v.2.0.0), tidyselect(v.1.1.0), rlang(v.0.4.10), reshape2(v.1.4.4), later(v.1.1.0.1), munsell(v.0.5.0), cellranger(v.1.1.0), tools(v.4.0.3), cli(v.2.2.0), generics(v.0.1.0), pacman(v.0.5.1), broom(v.0.7.3), ggridges(v.0.5.3), evaluate(v.0.14), fastmap(v.1.0.1), yaml(v.2.2.1), processx(v.3.4.5), knitr(v.1.30), fs(v.1.5.0), nlme(v.3.1-149), mime(v.0.9), projpred(v.2.0.2), formatR(v.1.7), xml2(v.1.3.2), compiler(v.4.0.3), bayesplot(v.1.8.0), shinythemes(v.1.1.2), rstudioapi(v.0.13), gamm4(v.0.2-6), curl(v.4.3), reprex(v.0.3.0), statmod(v.1.4.35), stringi(v.1.5.3), ps(v.1.5.0), Brobdingnag(v.1.2-6), cubature(v.2.0.4.1), lattice(v.0.20-41), nloptr(v.1.2.2.2), markdown(v.1.1), shinyjs(v.2.0.0), tensorA(v.0.36.2), vctrs(v.0.3.6), pillar(v.1.4.7), lifecycle(v.0.2.0), bridgesampling(v.1.0-0), corpcor(v.1.6.9), httpuv(v.1.5.5), R6(v.2.5.0), bookdown(v.0.21), promises(v.1.1.1), codetools(v.0.2-16), boot(v.1.3-25), colourpicker(v.1.1.0), gtools(v.3.8.2), assertthat(v.0.2.1), withr(v.2.4.0), shinystan(v.2.5.0), mgcv(v.1.8-33), parallel(v.4.0.3), hms(v.1.0.0), grid(v.4.0.3), minqa(v.1.2.4), rmarkdown(v.2.6), shiny(v.1.5.0), lubridate(v.1.7.9.2), base64enc(v.0.1-3) and dygraphs(v.1.1.1.6)

+cubature(v.2.0.4.1), colorspace(v.1.4-1), ellipsis(v.0.3.1), ggridges(v.0.5.2), rsconnect(v.0.8.16), corpcor(v.1.6.9), markdown(v.1.1), base64enc(v.0.1-3), fs(v.1.5.0), rstudioapi(v.0.11), rstan(v.2.19.3), DT(v.0.17), fansi(v.0.4.1), mvtnorm(v.1.1-0), lubridate(v.1.7.9), xml2(v.1.3.2), bridgesampling(v.1.0-0), knitr(v.1.29), shinythemes(v.1.1.2), bayesplot(v.1.7.1), jsonlite(v.1.7.2), broom(v.0.7.0), dbplyr(v.1.4.4), shiny(v.1.4.0.2), compiler(v.3.6.0), httr(v.1.4.2), backports(v.1.1.9), assertthat(v.0.2.1), fastmap(v.1.0.1), cli(v.2.0.2), later(v.1.1.0.1), formatR(v.1.7), prettyunits(v.1.1.1), htmltools(v.0.5.1.1), tools(v.3.6.0), igraph(v.1.2.5), gtable(v.0.3.0), glue(v.1.4.1), reshape2(v.1.4.4), cellranger(v.1.1.0), vctrs(v.0.3.2), nlme(v.3.1-147), crosstalk(v.1.1.0.1), tensorA(v.0.36.1), xfun(v.0.16), ps(v.1.3.4), rvest(v.0.3.6), mime(v.0.9), miniUI(v.0.1.1.1), lifecycle(v.0.2.0), pacman(v.0.5.1), gtools(v.3.8.2), klippy(v.0.0.0.9500), zoo(v.1.8-8), scales(v.1.1.1), colourpicker(v.1.0), hms(v.0.5.3), promises(v.1.1.1), Brobdingnag(v.1.2-6), sandwich(v.2.5-1), parallel(v.3.6.0), inline(v.0.3.15), shinystan(v.2.5.0), yaml(v.2.2.1), StanHeaders(v.2.21.0-1), loo(v.2.2.0), stringi(v.1.5.3), dygraphs(v.1.1.1.6), pkgbuild(v.1.1.0), rlang(v.0.4.10), pkgconfig(v.2.0.3), matrixStats(v.0.56.0), evaluate(v.0.14), lattice(v.0.20-41), rstantools(v.2.0.0), htmlwidgets(v.1.5.1), processx(v.3.4.5), tidyselect(v.1.1.0), plyr(v.1.8.6), magrittr(v.1.5), bookdown(v.0.18), R6(v.2.4.1), generics(v.0.0.2), DBI(v.1.1.0), pillar(v.1.4.6), haven(v.2.3.1), withr(v.2.4.1), xts(v.0.12-0), abind(v.1.4-5), modelr(v.0.1.8), crayon(v.1.3.4), rmarkdown(v.2.3), grid(v.3.6.0), readxl(v.1.3.1), callr(v.3.5.1), blob(v.1.2.1), threejs(v.0.3.3), reprex(v.0.3.0), digest(v.0.6.27), webshot(v.0.5.2), xtable(v.1.8-4), httpuv(v.1.5.2), stats4(v.3.6.0), munsell(v.0.5.0), viridisLite(v.0.3.0) and shinyjs(v.1.1)

References

-
-
-Bates, D., M. Maechler, B. Bolker, and S. Walker. 2015. Fitting linear mixed-effects models using lme4. Journal of Statistical Software 67:1–48. doi:10.18637/jss.v067.i01. +
+
+

Bates, D., M. Maechler, B. Bolker, and S. Walker. 2015. Fitting linear mixed-effects models using lme4. Journal of Statistical Software 67:1–48. doi:10.18637/jss.v067.i01.

-
-Bürkner, P.-C. 2017. Brms: An r package for bayesian multilevel models using stan. Journal of Statistical Software 80:1–28. doi:10.18637/jss.v080.i01. +
+

Bürkner, P.-C. 2017. Brms: An r package for bayesian multilevel models using stan. Journal of Statistical Software 80:1–28. doi:10.18637/jss.v080.i01.

-
-Bürkner, P.-C. 2018. Advanced bayesian multilevel modeling with the r package brms. The R Journal 10:395-411. doi:10.32614/RJ-2018-017. +
+

Bürkner, P.-C. 2018. Advanced bayesian multilevel modeling with the r package brms. The R Journal 10:395–411. doi:10.32614/RJ–2018–017.

-
-Hadfield, J. D. 2010. MCMC methods for multi-response generalised linear mixed models: The MCMCglmm r package. Journal of Statistical Software 33:1–22. +
+

Hadfield, J. 2010. MCMC methods for multi-response generalised linear mixed models: The mcmcglmm r package. Journal of Statistical Software 33:1–22.

-
-Hedges, L. V., E. Tipton, and M. C. Johnson. 2010. Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods 1:39–65. +
+

Hedges, L. V., E. Tipton, and M. C. Johnson. 2010. Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods 1:39–65.

-
-Nakagawa, S., A. M. Senior, W. Viechtbauer, and D. W. A. Noble. 2021. An assessment of statistical methods for non-independent data in ecological meta-analyses: comment. Ecology in press. +
+

Nakagawa, S., A. M. Senior, W. Viechtbauer, and D. W. A. Noble. 2021. An assessment of statistical methods for non-independent data in ecological meta-analyses: Comment. Ecology in press.

-
-Noble, D. W. A., M. Lagisz, R. E. O’Dea, and S. Nakagawa. 2017. Non‐independence and sensitivity analyses in ecological and evolutionary meta‐analyses. Molecular Ecology 26:2410–2425. +
+

Noble, D. W., M. Lagisz, R. E. O’Dea, and S. Nakagawa. 2017. Non‐independence and sensitivity analyses in ecological and evolutionary meta‐analyses. Molecular Ecology 26:2410–2425.

-
-Pustejovsky, J. 2020. clubSandwich: Cluster-robust (sandwich) variance estimators with small-sample corrections. R package version 0.5.1. https://CRAN.R-project.org/package=clubSandwich. +
+

Pustejovsky, J. 2020. ClubSandwich: Cluster-robust (sandwich) variance estimators with small-sample corrections. R package version 0.5.1. https://CRAN.R-project.org/package=clubSandwich.

-
-Satterthwaite, F. E. 1946. An approximate distribution of estimates of variance components. Biometrics Bulletin 2:110–114. +
+

Satterthwaite, F. E. 1946. An approximate distribution of estimates of variance components. Biometrics Bulletin 2:110–114.

-
-Song, C., S. D. Peacor, C. W. Osenberg, and J. R. Bence. 2020. An assessment of statistical methods for nonindependent data in ecological meta-analyses. Ecology online: e03184. +
+

Song, C., S. D. Peacor, C. W. Osenberg, and J. R. Bence. 2020. An assessment of statistical methods for nonindependent data in ecological meta-analyses. Ecology online: e03184.

-
-Tipton, E., and J. E. Pustejovsky. 2015. Small-sample adjustments for tests of moderators and model fit using robust variance estimation in meta-regression. Journal of Educational and Behavioral Statistics 40:604–634. +
+

Tipton, E., and J. E. Pustejovsky. 2015. Small-sample adjustments for tests of moderators and model fit using robust variance estimation in meta-regression. Journal of Educational and Behavioral Statistics 40:604–634.

-
-Viechtbauer, W. 2010. Conducting meta-analyses in r with the metafor package. Journal of Statistical Software 36:1–48. +
+

Viechtbauer, W. 2010. Conducting meta-analyses in r with the metafor package. Journal of Statistical Software 36:1–48.

@@ -561,7 +2007,7 @@

References

// add bootstrap table styles to pandoc tables function bootstrapStylePandocTables() { - $('tr.odd').parent('tbody').parent('table').addClass('table table-condensed'); + $('tr.header').parent('thead').parent('table').addClass('table table-condensed'); } $(document).ready(function () { bootstrapStylePandocTables(); From 5920d16c45e107e6528af8320b45ad6228fe24a8 Mon Sep 17 00:00:00 2001 From: Daniel Noble Date: Mon, 1 Mar 2021 15:13:37 +1100 Subject: [PATCH 5/5] Updated html with code copying --- Supplemental_Implementation_Example.html | 1608 ++-------------------- 1 file changed, 85 insertions(+), 1523 deletions(-) diff --git a/Supplemental_Implementation_Example.html b/Supplemental_Implementation_Example.html index 475ddfd..aafdba5 100644 --- a/Supplemental_Implementation_Example.html +++ b/Supplemental_Implementation_Example.html @@ -15,1494 +15,33 @@ Tutorial on how to implement simple corrections to deal with non-independent effect sizes in multi-level meta-analysis - + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + + + + + @@ -1750,7 +312,7 @@

2021-03-01

Introduction

@@ -1779,7 +341,7 @@

Simulating Non-independent Effect Size Data

no.paper = 20 # Numbers of unique papers n.effects = 3 # Number of effects per paper. We will keep simple and balanced rho.e = 0.8 # Correlation among sampling variances -study_id = rep(1:no.paper, each = n.effects) # Study ID's +study_id = rep(1:no.paper, each = n.effects) # Study ID's var_paper = 1 # Between-study variance (i.e., tau2) var_effect = 0.8 # Effect size (or within study) variance mu = 0.4 # Average, or overall, effect size @@ -1828,7 +390,7 @@

Simulating Non-independent Effect Size Data

mu = rep(0, n.effects * no.paper), cov_yi) + mvrnorm(n = 1, mu = rep(0, n.effects * no.paper), cov_vi) -# Create the data. We'll just assume that meta-analysts have already derived +# Create the data. We'll just assume that meta-analysts have already derived # their effect size and sampling variance data <- data.frame(study_id = study_id, yi = yi, vi = vi, obs = c(1:(n.effects * no.paper))) @@ -1861,7 +423,7 @@

Step 1: Fit the Multi-level Meta-analytic (MLMA) Model

## 0.4262 0.2545 1.6747 0.0993 -0.0830 0.9354 . ## ## --- -## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 +## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

We have fit a simple MLMA model that estimates the overall meta-analytic mean. We can see that our model estimates this correctly. Remember that the true mean is 0.4, and we are pretty close to this value (i.e., 0.43). This is also true of our random effect variance estimates. In this case, we know that the MLMA model is not completely dealing with the dependence among effect sizes. We expect that this ‘should’ (at least on average) inflate Type I error rates. Assuming we did not know any better we would want to account for this dependence. Below, we describe a few corrections that meta-analysts can apply that should overcome the problems associated with not accounting for effect size dependence.

@@ -1924,17 +486,17 @@

Correction 3: Applying Bayesian Multi-level Meta-analytic Model

## G-structure: ~study_id ## ## post.mean l-95% CI u-95% CI eff.samp -## study_id 1.17 0.353 2.41 578 +## study_id 1.19 0.242 2.32 615 ## ## R-structure: ~units ## ## post.mean l-95% CI u-95% CI eff.samp -## units 0.984 0.605 1.49 1000 +## units 0.982 0.576 1.46 1000 ## ## Location effects: yi ~ 1 ## ## post.mean l-95% CI u-95% CI eff.samp pMCMC -## (Intercept) 0.423 -0.104 0.953 1000 0.12 +## (Intercept) 0.422 -0.105 1.012 1000 0.14

As expected, our credible intervals get a little bit wider. Bayesian models are the most conservative here given this is not a large data set.

@@ -1943,55 +505,55 @@

Conclusions

Session Info

-

R version 3.6.0 (2019-04-26)

-

Platform: x86_64-apple-darwin15.6.0 (64-bit)

+

R version 4.0.3 (2020-10-10)

+

Platform: x86_64-apple-darwin17.0 (64-bit)

locale: en_AU.UTF-8||en_AU.UTF-8||en_AU.UTF-8||C||en_AU.UTF-8||en_AU.UTF-8

attached base packages: stats, graphics, grDevices, utils, datasets, methods and base

other attached packages: -pander(v.0.6.3), clubSandwich(v.0.5.1), robumeta(v.2.0), metafor(v.2.4-0), brms(v.2.12.0), Rcpp(v.1.0.5), MCMCglmm(v.2.29), ape(v.5.4-1), coda(v.0.19-3), Matrix(v.1.2-18), gridExtra(v.2.3), kableExtra(v.1.1.0), MASS(v.7.3-51.6), forcats(v.0.5.0), stringr(v.1.4.0), dplyr(v.1.0.2), purrr(v.0.3.4), readr(v.1.3.1), tidyr(v.1.1.1), tibble(v.3.0.3), ggplot2(v.3.3.2) and tidyverse(v.1.3.0)

+pander(v.0.6.3), clubSandwich(v.0.5.3), robumeta(v.2.0), metafor(v.2.4-0), brms(v.2.14.4), Rcpp(v.1.0.6), MCMCglmm(v.2.30), ape(v.5.4-1), coda(v.0.19-4), Matrix(v.1.2-18), gridExtra(v.2.3), kableExtra(v.1.3.1), MASS(v.7.3-53), forcats(v.0.5.0), stringr(v.1.4.0), dplyr(v.1.0.3), purrr(v.0.3.4), readr(v.1.4.0), tidyr(v.1.1.2), tibble(v.3.0.5), ggplot2(v.3.3.3) and tidyverse(v.1.3.0)

loaded via a namespace (and not attached): -cubature(v.2.0.4.1), colorspace(v.1.4-1), ellipsis(v.0.3.1), ggridges(v.0.5.2), rsconnect(v.0.8.16), corpcor(v.1.6.9), markdown(v.1.1), base64enc(v.0.1-3), fs(v.1.5.0), rstudioapi(v.0.11), rstan(v.2.19.3), DT(v.0.17), fansi(v.0.4.1), mvtnorm(v.1.1-0), lubridate(v.1.7.9), xml2(v.1.3.2), bridgesampling(v.1.0-0), knitr(v.1.29), shinythemes(v.1.1.2), bayesplot(v.1.7.1), jsonlite(v.1.7.2), broom(v.0.7.0), dbplyr(v.1.4.4), shiny(v.1.4.0.2), compiler(v.3.6.0), httr(v.1.4.2), backports(v.1.1.9), assertthat(v.0.2.1), fastmap(v.1.0.1), cli(v.2.0.2), later(v.1.1.0.1), formatR(v.1.7), prettyunits(v.1.1.1), htmltools(v.0.5.1.1), tools(v.3.6.0), igraph(v.1.2.5), gtable(v.0.3.0), glue(v.1.4.1), reshape2(v.1.4.4), cellranger(v.1.1.0), vctrs(v.0.3.2), nlme(v.3.1-147), crosstalk(v.1.1.0.1), tensorA(v.0.36.1), xfun(v.0.16), ps(v.1.3.4), rvest(v.0.3.6), mime(v.0.9), miniUI(v.0.1.1.1), lifecycle(v.0.2.0), pacman(v.0.5.1), gtools(v.3.8.2), klippy(v.0.0.0.9500), zoo(v.1.8-8), scales(v.1.1.1), colourpicker(v.1.0), hms(v.0.5.3), promises(v.1.1.1), Brobdingnag(v.1.2-6), sandwich(v.2.5-1), parallel(v.3.6.0), inline(v.0.3.15), shinystan(v.2.5.0), yaml(v.2.2.1), StanHeaders(v.2.21.0-1), loo(v.2.2.0), stringi(v.1.5.3), dygraphs(v.1.1.1.6), pkgbuild(v.1.1.0), rlang(v.0.4.10), pkgconfig(v.2.0.3), matrixStats(v.0.56.0), evaluate(v.0.14), lattice(v.0.20-41), rstantools(v.2.0.0), htmlwidgets(v.1.5.1), processx(v.3.4.5), tidyselect(v.1.1.0), plyr(v.1.8.6), magrittr(v.1.5), bookdown(v.0.18), R6(v.2.4.1), generics(v.0.0.2), DBI(v.1.1.0), pillar(v.1.4.6), haven(v.2.3.1), withr(v.2.4.1), xts(v.0.12-0), abind(v.1.4-5), modelr(v.0.1.8), crayon(v.1.3.4), rmarkdown(v.2.3), grid(v.3.6.0), readxl(v.1.3.1), callr(v.3.5.1), blob(v.1.2.1), threejs(v.0.3.3), reprex(v.0.3.0), digest(v.0.6.27), webshot(v.0.5.2), xtable(v.1.8-4), httpuv(v.1.5.2), stats4(v.3.6.0), munsell(v.0.5.0), viridisLite(v.0.3.0) and shinyjs(v.1.1)

+readxl(v.1.3.1), backports(v.1.2.1), plyr(v.1.8.6), igraph(v.1.2.6), splines(v.4.0.3), crosstalk(v.1.1.1), rstantools(v.2.1.1), inline(v.0.3.17), digest(v.0.6.27), htmltools(v.0.5.1), rsconnect(v.0.8.16), fansi(v.0.4.2), magrittr(v.2.0.1), modelr(v.0.1.8), RcppParallel(v.5.0.2), matrixStats(v.0.57.0), sandwich(v.3.0-0), xts(v.0.12.1), prettyunits(v.1.1.1), colorspace(v.2.0-0), rvest(v.0.3.6), haven(v.2.3.1), xfun(v.0.20), callr(v.3.5.1), crayon(v.1.3.4), jsonlite(v.1.7.2), lme4(v.1.1-26), zoo(v.1.8-8), glue(v.1.4.2), gtable(v.0.3.0), webshot(v.0.5.2), V8(v.3.4.0), pkgbuild(v.1.2.0), rstan(v.2.21.1), abind(v.1.4-5), scales(v.1.1.1), mvtnorm(v.1.1-1), DBI(v.1.1.1), miniUI(v.0.1.1.1), viridisLite(v.0.3.0), xtable(v.1.8-4), klippy(v.0.0.0.9500), stats4(v.4.0.3), StanHeaders(v.2.21.0-7), DT(v.0.17), htmlwidgets(v.1.5.3), httr(v.1.4.2), threejs(v.0.3.3), ellipsis(v.0.3.1), pkgconfig(v.2.0.3), loo(v.2.4.1), dbplyr(v.2.0.0), tidyselect(v.1.1.0), rlang(v.0.4.10), reshape2(v.1.4.4), later(v.1.1.0.1), munsell(v.0.5.0), cellranger(v.1.1.0), tools(v.4.0.3), cli(v.2.2.0), generics(v.0.1.0), pacman(v.0.5.1), broom(v.0.7.3), ggridges(v.0.5.3), evaluate(v.0.14), fastmap(v.1.0.1), yaml(v.2.2.1), processx(v.3.4.5), knitr(v.1.30), fs(v.1.5.0), nlme(v.3.1-149), mime(v.0.9), projpred(v.2.0.2), formatR(v.1.7), xml2(v.1.3.2), compiler(v.4.0.3), bayesplot(v.1.8.0), shinythemes(v.1.1.2), rstudioapi(v.0.13), gamm4(v.0.2-6), curl(v.4.3), reprex(v.0.3.0), statmod(v.1.4.35), stringi(v.1.5.3), ps(v.1.5.0), Brobdingnag(v.1.2-6), cubature(v.2.0.4.1), lattice(v.0.20-41), nloptr(v.1.2.2.2), markdown(v.1.1), shinyjs(v.2.0.0), tensorA(v.0.36.2), vctrs(v.0.3.6), pillar(v.1.4.7), lifecycle(v.0.2.0), bridgesampling(v.1.0-0), corpcor(v.1.6.9), httpuv(v.1.5.5), R6(v.2.5.0), bookdown(v.0.21), promises(v.1.1.1), codetools(v.0.2-16), boot(v.1.3-25), colourpicker(v.1.1.0), gtools(v.3.8.2), assertthat(v.0.2.1), withr(v.2.4.0), shinystan(v.2.5.0), mgcv(v.1.8-33), parallel(v.4.0.3), hms(v.1.0.0), grid(v.4.0.3), minqa(v.1.2.4), rmarkdown(v.2.6), shiny(v.1.5.0), lubridate(v.1.7.9.2), base64enc(v.0.1-3) and dygraphs(v.1.1.1.6)

References

-
-
-

Bates, D., M. Maechler, B. Bolker, and S. Walker. 2015. Fitting linear mixed-effects models using lme4. Journal of Statistical Software 67:1–48. doi:10.18637/jss.v067.i01.

+
+
+Bates, D., M. Maechler, B. Bolker, and S. Walker. 2015. Fitting linear mixed-effects models using lme4. Journal of Statistical Software 67:1–48. doi:10.18637/jss.v067.i01.
-
-

Bürkner, P.-C. 2017. Brms: An r package for bayesian multilevel models using stan. Journal of Statistical Software 80:1–28. doi:10.18637/jss.v080.i01.

+
+Bürkner, P.-C. 2017. Brms: An r package for bayesian multilevel models using stan. Journal of Statistical Software 80:1–28. doi:10.18637/jss.v080.i01.
-
-

Bürkner, P.-C. 2018. Advanced bayesian multilevel modeling with the r package brms. The R Journal 10:395–411. doi:10.32614/RJ–2018–017.

+
+Bürkner, P.-C. 2018. Advanced bayesian multilevel modeling with the r package brms. The R Journal 10:395-411. doi:10.32614/RJ-2018-017.
-
-

Hadfield, J. 2010. MCMC methods for multi-response generalised linear mixed models: The mcmcglmm r package. Journal of Statistical Software 33:1–22.

+
+Hadfield, J. D. 2010. MCMC methods for multi-response generalised linear mixed models: The MCMCglmm r package. Journal of Statistical Software 33:1–22.
-
-

Hedges, L. V., E. Tipton, and M. C. Johnson. 2010. Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods 1:39–65.

+
+Hedges, L. V., E. Tipton, and M. C. Johnson. 2010. Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods 1:39–65.
-
-

Nakagawa, S., A. M. Senior, W. Viechtbauer, and D. W. A. Noble. 2021. An assessment of statistical methods for non-independent data in ecological meta-analyses: Comment. Ecology in press.

+
+Nakagawa, S., A. M. Senior, W. Viechtbauer, and D. W. A. Noble. 2021. An assessment of statistical methods for non-independent data in ecological meta-analyses: comment. Ecology in press.
-
-

Noble, D. W., M. Lagisz, R. E. O’Dea, and S. Nakagawa. 2017. Non‐independence and sensitivity analyses in ecological and evolutionary meta‐analyses. Molecular Ecology 26:2410–2425.

+
+Noble, D. W. A., M. Lagisz, R. E. O’Dea, and S. Nakagawa. 2017. Non‐independence and sensitivity analyses in ecological and evolutionary meta‐analyses. Molecular Ecology 26:2410–2425.
-
-

Pustejovsky, J. 2020. ClubSandwich: Cluster-robust (sandwich) variance estimators with small-sample corrections. R package version 0.5.1. https://CRAN.R-project.org/package=clubSandwich.

+
+Pustejovsky, J. 2020. clubSandwich: Cluster-robust (sandwich) variance estimators with small-sample corrections. R package version 0.5.1. https://CRAN.R-project.org/package=clubSandwich.
-
-

Satterthwaite, F. E. 1946. An approximate distribution of estimates of variance components. Biometrics Bulletin 2:110–114.

+
+Satterthwaite, F. E. 1946. An approximate distribution of estimates of variance components. Biometrics Bulletin 2:110–114.
-
-

Song, C., S. D. Peacor, C. W. Osenberg, and J. R. Bence. 2020. An assessment of statistical methods for nonindependent data in ecological meta-analyses. Ecology online: e03184.

+
+Song, C., S. D. Peacor, C. W. Osenberg, and J. R. Bence. 2020. An assessment of statistical methods for nonindependent data in ecological meta-analyses. Ecology online: e03184.
-
-

Tipton, E., and J. E. Pustejovsky. 2015. Small-sample adjustments for tests of moderators and model fit using robust variance estimation in meta-regression. Journal of Educational and Behavioral Statistics 40:604–634.

+
+Tipton, E., and J. E. Pustejovsky. 2015. Small-sample adjustments for tests of moderators and model fit using robust variance estimation in meta-regression. Journal of Educational and Behavioral Statistics 40:604–634.
-
-

Viechtbauer, W. 2010. Conducting meta-analyses in r with the metafor package. Journal of Statistical Software 36:1–48.

+
+Viechtbauer, W. 2010. Conducting meta-analyses in r with the metafor package. Journal of Statistical Software 36:1–48.
@@ -2007,7 +569,7 @@

References

// add bootstrap table styles to pandoc tables function bootstrapStylePandocTables() { - $('tr.header').parent('thead').parent('table').addClass('table table-condensed'); + $('tr.odd').parent('tbody').parent('table').addClass('table table-condensed'); } $(document).ready(function () { bootstrapStylePandocTables();