Title: | Robust Variance Meta-Regression |
---|---|
Description: | Functions for conducting robust variance estimation (RVE) meta-regression using both large and small sample RVE estimators under various weighting schemes. These methods are distribution free and provide valid point estimates, standard errors and hypothesis tests even when the degree and structure of dependence between effect sizes is unknown. Also included are functions for conducting sensitivity analyses under correlated effects weighting and producing RVE-based forest plots. |
Authors: | Zachary Fisher [aut, cre], Elizabeth Tipton [aut], Hou Zhipeng [aut] |
Maintainer: | Zachary Fisher <[email protected]> |
License: | GPL-2 |
Version: | 2.0 |
Built: | 2024-11-19 05:10:46 UTC |
Source: | https://github.com/zackfisher/robumeta |
Fictional data used in TannerTanner-Smith and Tipton (2013).
A dataframe containing 172 effect sizes from 39 studies used in Tanner- Smith and Tipton (2013).
https://my.vanderbilt.edu/emilytannersmith/training-materials/
Tanner-Smith E.E., Tipton, E. (2013) Robust variance estimation with dependent effect sizes: practical considerations including a software tutorial in Stata and SPSS. Research Synthesis Methods. ISSN 1759-2887.
Data used in Tipton (2013).
A dataframe containing 300 effect sizes from 28 studies used in Tipton (2013).
Elizabeth Tipton
Tipton, E. (in press) Small sample adjustments for robust variance estimation with meta-regression. Psychological Methods.
forest.robu
In meta-analysis, forest plots provide a graphical
depiction of effect size estimates and their corresponding confidence
intervals. The forest.robu()
function in robumeta can be used
to produce forest plots for RVE meta-analyses. The function requires the
grid package and is based on examples provided in (Murrell, 2011). As
is the case with traditional forest plots, point estimates of individual
effect sizes are plotted as boxes with areas proportional to the weight
assigned to that effect size. Importantly, here the weight is not
necessarily proportional to the effect size variance or confidence
intervals, since the combined study weight is divided evenly across the
study effect sizes. Two-sided 95% confidence intervals are calculated for
each effect size using a standard normal distribution and plotted along with
each block. The overall effect is included at the bottom of the plot as a
diamond with width equivalent to the confidence interval for the estimated
effect. The RVE forest function is designed to provide users with forest
plots which display each individual effect size used in the meta-analysis,
while taking into account the study- or cluster-level properties inherent to
the RVE analysis. As such, the user must specify columns from their original
dataset that contain labels for the study or cluster and for the individual
effect sizes.
forest.robu(x, es.lab, study.lab, ...)
forest.robu(x, es.lab, study.lab, ...)
x |
An intercept-only RVE model previously fit using the |
es.lab |
A vector of labels to be used to individual effect sizes in the forest plot. Labels for individual effect sizes might be “Math Score” or “Reading Score” for a meta-analysis that included such measures or as simple as “Effect Size 1” and “Effect Size 2.” |
study.lab |
A vector of labels to be used to identify study (or cluster) level groupings in the forest plot. For instance, labels for the study column might be author names with corresponding publication years. |
... |
Additional arguments to be passed to the forest function. Any
number of additional columns can be specified to be plotted along side the
confidence interval column and can be specified with the following syntax
|
Hedges, L.V., Tipton, E., Johnson, M.C. (2010) Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods. 1(1): 39–65. Erratum in 1(2): 164–165. DOI: 10.1002/jrsm.5
Murrell P (2011). R Graphics. CRC/Taylor & Francis. ISBN 9781439831762.
Tipton, E. (in press) Small sample adjustments for robust variance estimation with meta-regression. Psychological Methods.
# Load data data(oswald2013.ex1) # Run intercept only model. oswald_intercept <- robu(formula = effect.size ~ 1, data = oswald2013.ex1, studynum = Study, var.eff.size = var.eff.size, rho = 0.8, small = TRUE) # Create forest plot. forest.robu(oswald_intercept, es.lab = "Crit.Cat", study.lab = "Study", "Effect Size" = effect.size, # optional column "Weight" = r.weights) # optional column
# Load data data(oswald2013.ex1) # Run intercept only model. oswald_intercept <- robu(formula = effect.size ~ 1, data = oswald2013.ex1, studynum = Study, var.eff.size = var.eff.size, rho = 0.8, small = TRUE) # Create forest plot. forest.robu(oswald_intercept, es.lab = "Crit.Cat", study.lab = "Study", "Effect Size" = effect.size, # optional column "Weight" = r.weights) # optional column
Creates a within-study (or within-cluster) version of the covariate in question.
group.center(var, grp)
group.center(var, grp)
var |
The covariate to be group centered. |
grp |
A vector corresponding to the group identification. |
A column or vector containing the group.centered covariate.
# Load data data(corrdat) # Create a group centered covariate males_c <- group.center(corrdat$males, corrdat$studyid)
# Load data data(corrdat) # Create a group centered covariate males_c <- group.center(corrdat$males, corrdat$studyid)
Creates a between-study (or between-cluster) version of the covariate in question.
group.mean(var, grp)
group.mean(var, grp)
var |
The covariate cotaining the values to be group averaged. |
grp |
The group from which the average should be calculated. |
A column or vector containing the group.mean covariate.
# Load data data(corrdat) # Create a group mean covariate age_m <- group.mean(corrdat$age, corrdat$studynum)
# Load data data(corrdat) # Create a group mean covariate age_m <- group.mean(corrdat$age, corrdat$studynum)
Data from a meta-analysis on the effectiveness of phonics reading instruction by Ehri, Nunes, Stahl and Willows (2001). Data reported in Hedges, Tipton, and Johnson (2010) with example.
A dataframe containing 179 effect sizes from 66 different studies
Hedges, Tipton, and Johnson (2010)
Ehri, L.C., Nunes, S.R., Stahl, S.A., Willows, D.M. (2001) Systematic phonics instruction helps children learn to read: Evidence from the National Reading Panel's meta-analysis. Review of Educational Research. 71, 393–447.
Hedges, L.V., Tipton, E., Johnson, M.C. (2010) Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods. 1(1): 39–65. Erratum in 1(2): 164–165. DOI: 10.1002/jrsm.5
Fictional data used in TannerTanner-Smith and Tipton (2013).
A dataframe containing 68 effect sizes from 15 studies used in Tanner- Smith and Tipton (2013).
https://my.vanderbilt.edu/emilytannersmith/training-materials/
Tanner-Smith E.E., Tipton, E. (2013) Robust variance estimation with dependent effect sizes: practical considerations including a software tutorial in Stata and SPSS. Research Synthesis Methods. ISSN 1759-2887.
Data from a meta-analysis on IAT conducted by Oswald et al., (2013) examining the predictive validity of the Implicit Association Test (IAT) and various explicit measures of bias for a variety of criterion measures of discrimination. Included in the dataset are the study level correlations between IAT scores and some criterion measure of discrimination.
A dataframe containing 308 effect sizes from 46 studies.
[,1] | Study | Factor |
[,2] | Crit.Domain | Factor |
[,3] | IAT.ID | Integer |
[,4] | IAT.Focus | Factor |
[,5] | Crit.ID | Integer |
[,6] | Crit.Cat | Factor |
[,7] | Scoring | Factor |
[,8] | Target | Factor |
[,9] | Type | Factor |
[,10] | Sample.ID | Integer |
[,11] | N | Integer |
[,12] | R | Numeric |
Oswald FL, Mitchell G, Blanton H, Jaccard J, Tetlock PE (2013) Predicting ethnic and racial discrimination: a meta-analysis of IAT criterion studies. Journal of Personality and Social Psychology, 105(2), 171-192. ISSN 1939-1315. doi:10.1037/a0032734. PMID: 23773046.
Oswald FL, Mitchell G, Blanton H, Jaccard J, Tetlock PE (2013) Predicting ethnic and racial discrimination: a meta-analysis of IAT criterion studies. Journal of Personality and Social Psychology, 105(2), 171-192. ISSN 1939-1315. doi:10.1037/a0032734. PMID: 23773046.
Data from a meta-analysis on IAT conducted by Oswald et al., (2013)
examining the predictive validity of the Implicit Association Test (IAT) and
various explicit measures of bias for a variety of criterion measures of
discrimination. Included in the dataset are the study-level correlations
between IAT scores and criterion measures of neurological activity or
response latency from the original oswald2013
dataset.
A dataframe containing 32 effect sizes from 9 studies.
[,1] | Study | Factor |
[,2] | Crit.Domain | Factor |
[,3] | IAT.ID | Integer |
[,4] | IAT.Focus | Factor |
[,5] | Crit.ID | Integer |
[,6] | Crit.Cat | Factor |
[,7] | Scoring | Factor |
[,8] | Target | Factor |
[,9] | Type | Factor |
[,10] | Sample.ID | Integer |
[,11] | N | Integer |
[,12] | R | Numeric |
[,13] | effect.size | Numeric |
[,14] | var.eff.size | Numeric |
Oswald FL, Mitchell G, Blanton H, Jaccard J, Tetlock PE (2013) Predicting ethnic and racial discrimination: a meta-analysis of IAT criterion studies. Journal of Personality and Social Psychology, 105(2), 171-192. ISSN 1939-1315. doi:10.1037/a0032734. PMID: 23773046.
Oswald FL, Mitchell G, Blanton H, Jaccard J, Tetlock PE (2013) Predicting ethnic and racial discrimination: a meta-analysis of IAT criterion studies. Journal of Personality and Social Psychology, 105(2), 171-192. ISSN 1939-1315. doi:10.1037/a0032734. PMID: 23773046.
predict.robu
produces the predicted mean and confidence interval of a fitted robumeta model object given a prediction vector.
## S3 method for class 'robu' predict(object, pred.vector, level = 0.95, ...)
## S3 method for class 'robu' predict(object, pred.vector, level = 0.95, ...)
object |
A fitted robumeta model object. |
pred.vector |
A prediction vector containing the new covariate values. |
level |
Confidence level. |
... |
Additional arguments to predict. |
intercept
If an intercept is included in the robumeta model,
the first element should always be 1, representing the intercept,
followed by the covariate values in appropriate order.
If the robumeta model does not have an intercept, the prediction
vector should begin with the first covariate value.
variable
For continuous variables, use the variable value as the
corresponding element value in pred.vector
.
For a categorical variable the original variable value should
be transformed to match the coding system used in the robumeta
model (e.g. dummy coding, deviation coding, etc.).
NA
If the vector contains NAs, predict.robu
will remove the
corresponding covariates from the original data, and refit a new
robumeta model. The prediction and confidence interval will be
estimated based on the new model.
robu_mod <- robu(LOR1 ~ study_design + duration + service_hrs, data = dropoutPrevention, studynum = studyID, var.eff.size = varLOR, modelweights = "HIER", small = TRUE)
In this robumeta model, the first covariate is a categorical variable that contains three levels: "Matched" (33 percent, dummy code: 00), "Randomized"(24 percent, 01) and "non-match non-randomized"(43 percent, 10). The corresponding prediction vector begins with 1 (intercept), and followed by 0, 0, the dummy code for "Matched". The last two elements are 38 and 5, the values for duration and sevice_hrs.
predict(object = robu_mod, pred.vector = c(1,0,0,38,5),level = 0.95)
If we do not know the value of duration, the prediction vector should be c(1,0,0,NA,5). predict.robu() will refit a new model without the covariate duration, and the prediction will be based on it.
predict(object = robu_mod, pred.vector = c(1,0,0,NA,5),level = 0.95)
prediction
the predicted value based on the prediction vector.
se
The standard error for the predicted mean.
t
The t-statistic calculated based on the predicted mean.
df
The small sample corrected degrees of freedom of the distribution of the t-statistic.
lower
The lower bound of the confidence interval for the predicted mean.
upper
The upper bound of the confidence interval for the predicted mean.
Prints relevant information from robu function.
## S3 method for class 'robu' print(x, digits = 3, ...)
## S3 method for class 'robu' print(x, digits = 3, ...)
x |
Object from robu class. |
digits |
Controls the number of digits to print when printing numeric values. |
... |
Additional arguments to be passed to the fitting function. |
Hedges, L.V., Tipton, E., Johnson, M.C. (2010) Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods. 1(1): 39–65. Erratum in 1(2): 164–165. DOI: 10.1002/jrsm.5
Tipton, E. (in press) Small sample adjustments for robust variance estimation with meta-regression. Psychological Methods.
# Load data data(hierdat) ### Small-Sample Corrections - Hierarchical Dependence Model HierMod <- robu(formula = effectsize ~ binge + followup + sreport + age, data = hierdat, studynum = studyid, var.eff.size = var, modelweights = "HIER", small = FALSE) print(HierMod) # Output results
# Load data data(hierdat) ### Small-Sample Corrections - Hierarchical Dependence Model HierMod <- robu(formula = effectsize ~ binge + followup + sreport + age, data = hierdat, studynum = studyid, var.eff.size = var, modelweights = "HIER", small = FALSE) print(HierMod) # Output results
robu
is used to meta-regression models using robust variance
estimation (RVE) methods. robu
can be used to estimate correlated and
hierarchical effects models using the original (Hedges, Tipton and Johnson,
2010) and small-sample corrected (Tipton, 2013) RVE methods. In addition,
robu
contains options for fitting these models using user-specified
weighting schemes (see the Appendix of Tipton (2013) for a discussion of
non- efficient weights in RVE).
robu(formula, data, studynum, var.eff.size, userweights, modelweights = c("CORR", "HIER"), rho = 0.8, small = TRUE, ...)
robu(formula, data, studynum, var.eff.size, userweights, modelweights = c("CORR", "HIER"), rho = 0.8, small = TRUE, ...)
formula |
An object of class |
data |
A data frame, list or environment or an object coercible by as.data.frame to a data frame. |
studynum |
A vector of study numbers to be used in model fitting.
|
var.eff.size |
A vector of user-calculated effect-size variances. |
userweights |
A vector of user-specified weights if non-efficient weights are of interest. Users interested in non-efficient weights should see the Appendix of Tipton (2013) for a discussion of the role of non-efficient weights in RVE). |
modelweights |
User-specified model weighting scheme. The two two
avialable options are |
rho |
User-specified within-study effect-size correlation used to fit
correlated ( |
small |
|
... |
Additional arguments to be passed to the fitting function. |
output |
A data frame containing some combination of the robust coefficient names and values, standard errors, t-test value, confidence intervals, degrees of freedom and statistical significance. |
n |
The number of studies in the sample |
.
k |
The number of effect sizes in the sample |
.
k descriptives |
the minimum |
tau.sq. |
|
omega.sq. |
|
I.2 |
|
Hedges, L.V., Tipton, E., Johnson, M.C. (2010) Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods. 1(1): 39–65. Erratum in 1(2): 164–165. DOI: 10.1002/jrsm.5
Tipton, E. (in press) Small sample adjustments for robust variance estimation with meta-regression. Psychological Methods.
# Load data data(hierdat) # Small-Sample Corrections - Hierarchical Dependence Model HierModSm <- robu(formula = effectsize ~ binge + followup + sreport + age, data = hierdat, studynum = studyid, var.eff.size = var, modelweights = "HIER", small = TRUE) print(HierModSm) # Output results
# Load data data(hierdat) # Small-Sample Corrections - Hierarchical Dependence Model HierModSm <- robu(formula = effectsize ~ binge + followup + sreport + age, data = hierdat, studynum = studyid, var.eff.size = var, modelweights = "HIER", small = TRUE) print(HierModSm) # Output results
sensitivity
is used to assess the impact of differing rho values on
the correlated effects meta-regression model.
sensitivity(x)
sensitivity(x)
x |
A dataframe containing values of rho, tau squared, coefficient estimates, and standard errors. |
Hedges, L.V., Tipton, E., Johnson, M.C. (2010) Robust variance estimation in meta-regression with dependent effect size estimates. Research Synthesis Methods. 1(1): 39–65. Erratum in 1(2): 164–165. DOI: 10.1002/jrsm.5
Tipton, E. (in press) Small sample adjustments for robust variance estimation with meta-regression. Psychological Methods.
# Correlated Effects Model CorrMod <- robu(formula = effectsize ~ followup + males + binge + college, data = corrdat, studynum = studyid, var.eff.size = var, rho = .8, modelweights = "CORR", small = FALSE) sensitivity(CorrMod) # Output sensitivity
# Correlated Effects Model CorrMod <- robu(formula = effectsize ~ followup + males + binge + college, data = corrdat, studynum = studyid, var.eff.size = var, rho = .8, modelweights = "CORR", small = FALSE) sensitivity(CorrMod) # Output sensitivity