Calculation of fixed and random effects estimates for metaanalyses with correlations; inverse variance weighting is used for pooling.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  metacor(cor, n, studlab,
data=NULL, subset=NULL,
sm=gs("smcor"),
level=gs("level"), level.comb=gs("level.comb"),
comb.fixed=gs("comb.fixed"), comb.random=gs("comb.random"),
hakn=gs("hakn"),
method.tau=gs("method.tau"), tau.preset=NULL, TE.tau=NULL,
tau.common=gs("tau.common"),
prediction=gs("prediction"), level.predict=gs("level.predict"),
null.effect=0,
method.bias=gs("method.bias"),
backtransf=gs("backtransf"),
title=gs("title"), complab=gs("complab"), outclab="",
byvar, bylab, print.byvar=gs("print.byvar"),
byseparator = gs("byseparator"),
keepdata=gs("keepdata")
)

cor 
Correlation. 
n 
Number of observations. 
studlab 
An optional vector with study labels. 
data 
An optional data frame containing the study information, i.e., cor and n. 
subset 
An optional vector specifying a subset of studies to be used. 
sm 
A character string indicating which summary measure
( 
level 
The level used to calculate confidence intervals for individual studies. 
level.comb 
The level used to calculate confidence intervals for pooled estimates. 
comb.fixed 
A logical indicating whether a fixed effect metaanalysis should be conducted. 
comb.random 
A logical indicating whether a random effects metaanalysis should be conducted. 
prediction 
A logical indicating whether a prediction interval should be printed. 
level.predict 
The level used to calculate prediction interval for a new study. 
hakn 
A logical indicating whether the method by Hartung and Knapp should be used to adjust test statistics and confidence intervals. 
method.tau 
A character string indicating which method is used
to estimate the betweenstudy variance τ^2. Either

tau.preset 
Prespecified value for the squareroot of the betweenstudy variance τ^2. 
TE.tau 
Overall treatment effect used to estimate the betweenstudy variance tausquared. 
tau.common 
A logical indicating whether tausquared should be the same across subgroups. 
null.effect 
A numeric value specifying the effect under the null hypothesis. 
method.bias 
A character string indicating which test is to be
used. Either 
backtransf 
A logical indicating whether results for Fisher's
z transformed correlations ( 
title 
Title of metaanalysis / systematic review. 
complab 
Comparison label. 
outclab 
Outcome label. 
byvar 
An optional vector containing grouping information (must
be of same length as 
bylab 
A character string with a label for the grouping variable. 
print.byvar 
A logical indicating whether the name of the grouping variable should be printed in front of the group labels. 
byseparator 
A character string defining the separator between label and levels of grouping variable. 
keepdata 
A logical indicating whether original data (set) should be kept in meta object. 
Fixed effect and random effects metaanalysis of correlations based
either on Fisher's z transformation of correlations
(sm="ZCOR"
) or direct combination of correlations
(sm="COR"
) (see Cooper et al., p2645 and p2734).
Only few statisticians would advocate the use of untransformed correlations unless sample sizes are very large (see Cooper et al., p265). The artificial example given below shows that the smallest study gets the largest weight if correlations are combined directly because the correlation is closest to 1.
For several arguments defaults settings are utilised (assignments
using gs
function). These defaults can be changed
using the settings.meta
function.
Internally, both fixed effect and random effects models are
calculated regardless of values choosen for arguments
comb.fixed
and comb.random
. Accordingly, the estimate
for the random effects model can be extracted from component
TE.random
of an object of class "meta"
even if
argument comb.random=FALSE
. However, all functions in R
package meta will adequately consider the values for
comb.fixed
and comb.random
. E.g. function
print.meta
will not print results for the random
effects model if comb.random=FALSE
.
A prediction interval for treatment effect of a new study is
calculated (Higgins et al., 2009) if arguments prediction
and
comb.random
are TRUE
.
R function update.meta
can be used to redo the
metaanalysis of an existing metacor object by only specifying
arguments which should be changed.
For the random effects, the method by Hartung and Knapp (2003) is
used to adjust test statistics and confidence intervals if argument
hakn=TRUE
.
The DerSimonianLaird estimate (1986) is used in the random effects
model if method.tau="DL"
. The iterative PauleMandel method
(1982) to estimate the betweenstudy variance is used if argument
method.tau="PM"
. Internally, R function paulemandel
is
called which is based on R function mpaule.default from R package
metRology from S.L.R. Ellison <s.ellison at lgc.co.uk>.
If R package metafor (Viechtbauer 2010) is installed, the
following methods to estimate the betweenstudy variance
τ^2 (argument method.tau
) are also available:
Restricted maximumlikelihood estimator (method.tau="REML"
)
Maximumlikelihood estimator (method.tau="ML"
)
HunterSchmidt estimator (method.tau="HS"
)
SidikJonkman estimator (method.tau="SJ"
)
Hedges estimator (method.tau="HE"
)
Empirical Bayes estimator (method.tau="EB"
).
For these methods the R function rma.uni
of R package
metafor is called internally. See help page of R function
rma.uni
for more details on these methods to estimate
betweenstudy variance.
An object of class c("metacor", "meta")
with corresponding
print
, summary
, plot
function. The object is a
list containing the following components:
cor, n, studlab, 

sm, level, level.comb, 

comb.fixed, comb.random, 

hakn, method.tau, tau.preset, TE.tau, null.effect, 

method.bias, tau.common, title, complab, outclab, 

byvar, bylab, print.byvar, byseparator 
As defined above. 
TE, seTE 
Either Fisher's z transformation of correlations
( 
lower, upper 
Lower and upper confidence interval limits for individual studies. 
zval, pval 
zvalue and pvalue for test of treatment effect for individual studies. 
w.fixed, w.random 
Weight of individual studies (in fixed and random effects model). 
TE.fixed, seTE.fixed 
Estimated overall effect (Fisher's z transformation of correlation or correlation) and its standard error (fixed effect model). 
lower.fixed, upper.fixed 
Lower and upper confidence interval limits (fixed effect model). 
zval.fixed, pval.fixed 
zvalue and pvalue for test of overall effect (fixed effect model). 
TE.random, seTE.random 
Estimated overall effect (Fisher's z transformation of correlation or correlation) and its standard error (random effects model). 
lower.random, upper.random 
Lower and upper confidence interval limits (random effects model). 
zval.random, pval.random 
zvalue or tvalue and corresponding pvalue for test of overall effect (random effects model). 
prediction, level.predict 
As defined above. 
seTE.predict 
Standard error utilised for prediction interval. 
lower.predict, upper.predict 
Lower and upper limits of prediction interval. 
k 
Number of studies combined in metaanalysis. 
Q 
Heterogeneity statistic Q. 
tau 
Squareroot of betweenstudy variance. 
se.tau 
Standard error of squareroot of betweenstudy variance. 
C 
Scaling factor utilised internally to calculate common tausquared across subgroups. 
method 
A character string indicating method used
for pooling: 
df.hakn 
Degrees of freedom for test of treatment effect for
HartungKnapp method (only if 
bylevs 
Levels of grouping variable  if 
TE.fixed.w, seTE.fixed.w 
Estimated treatment effect and
standard error in subgroups (fixed effect model)  if 
lower.fixed.w, upper.fixed.w 
Lower and upper confidence
interval limits in subgroups (fixed effect model)  if

zval.fixed.w, pval.fixed.w 
zvalue and pvalue for test of
treatment effect in subgroups (fixed effect model)  if

TE.random.w, seTE.random.w 
Estimated treatment effect and
standard error in subgroups (random effects model)  if

lower.random.w, upper.random.w 
Lower and upper confidence
interval limits in subgroups (random effects model)  if

zval.random.w, pval.random.w 
zvalue or tvalue and
corresponding pvalue for test of treatment effect in subgroups
(random effects model)  if 
w.fixed.w, w.random.w 
Weight of subgroups (in fixed and
random effects model)  if 
df.hakn.w 
Degrees of freedom for test of treatment effect for
HartungKnapp method in subgroups  if 
n.harmonic.mean.w 
Harmonic mean of number of observations in
subgroups (for back transformation of FreemanTukey Double arcsine
transformation)  if 
n.w 
Number of observations in subgroups  if 
k.w 
Number of studies combined within subgroups  if

k.all.w 
Number of all studies in subgroups  if 
Q.w 
Heterogeneity statistics within subgroups  if

Q.w.fixed 
Overall within subgroups heterogeneity statistic Q
(based on fixed effect model)  if 
Q.w.random 
Overall within subgroups heterogeneity statistic Q
(based on random effects model)  if 
df.Q.w 
Degrees of freedom for test of overall within
subgroups heterogeneity  if 
Q.b.fixed 
Overall between subgroups heterogeneity statistic Q
(based on fixed effect model)  if 
Q.b.random 
Overall between subgroups heterogeneity statistic
Q (based on random effects model)  if 
df.Q.b 
Degrees of freedom for test of overall between
subgroups heterogeneity  if 
tau.w 
Squareroot of betweenstudy variance within subgroups
 if 
C.w 
Scaling factor utilised internally to calculate common
tausquared across subgroups  if 
H.w 
Heterogeneity statistic H within subgroups  if

lower.H.w, upper.H.w 
Lower and upper confidence limti for
heterogeneity statistic H within subgroups  if 
I2.w 
Heterogeneity statistic I2 within subgroups  if

lower.I2.w, upper.I2.w 
Lower and upper confidence limti for
heterogeneity statistic I2 within subgroups  if 
keepdata 
As defined above. 
data 
Original data (set) used in function call (if

subset 
Information on subset of original data used in
metaanalysis (if 
call 
Function call. 
version 
Version of R package meta used to create object. 
Guido Schwarzer sc@imbi.unifreiburg.de
Cooper H, Hedges LV, Valentine JC (2009), The Handbook of Research Synthesis and MetaAnalysis, 2nd Edition. New York: Russell Sage Foundation.
DerSimonian R & Laird N (1986), Metaanalysis in clinical trials. Controlled Clinical Trials, 7, 177–188.
Higgins JPT, Thompson SG, Spiegelhalter DJ (2009), A reevaluation of randomeffects metaanalysis. Journal of the Royal Statistical Society: Series A, 172, 137–159.
Knapp G & Hartung J (2003), Improved Tests for a Random Effects Metaregression with a Single Covariate. Statistics in Medicine, 22, 2693–710, doi: 10.1002/sim.1482 .
Paule RC & Mandel J (1982), Consensus values and weighting factors. Journal of Research of the National Bureau of Standards, 87, 377–385.
Viechtbauer W (2010), Conducting MetaAnalyses in R with the Metafor Package. Journal of Statistical Software, 36, 1–48.
update.meta
, metacont
, metagen
, print.meta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28  m1 < metacor(c(0.85, 0.7, 0.95), c(20, 40, 10))
#
# Print correlations (back transformed from Fisher's z transformation)
#
m1
#
# Print Fisher's z transformed correlations
#
print(m1, backtransf=FALSE)
#
# Forest plot with back transformed correlations
#
forest(m1)
#
# Forest plot with Fisher's z transformed correlations
#
forest(m1, backtransf=FALSE)
m2 < update(m1, sm="cor")
m2
# Identical forest plots (as back transformation is the identity transformation)
# forest(m2)
# forest(m2, backtransf=FALSE)

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.