rma.glmm
function from R package
metafor (Viechtbauer 2010) is called internally.metainc(event.e, time.e, event.c, time.c, studlab,
data=NULL, subset=NULL, method="MH",
sm=.settings$sminc,
incr=.settings$incr, allincr=.settings$allincr,
addincr=.settings$addincr,
model.glmm = "UM.FS",
level=.settings$level, level.comb=.settings$level.comb,
comb.fixed=.settings$comb.fixed, comb.random=.settings$comb.random,
hakn=.settings$hakn,
method.tau=
ifelse(!is.na(charmatch(tolower(method), "glmm", nomatch = NA)),
"ML", .settings$method.tau),
tau.preset=NULL, TE.tau=NULL,
tau.common=.settings$tau.common,
prediction=.settings$prediction, level.predict=.settings$level.predict,
method.bias=.settings$method.bias,
n.e=NULL, n.c=NULL,
backtransf=.settings$backtransf,
title=.settings$title, complab=.settings$complab, outclab="",
label.e=.settings$label.e, label.c=.settings$label.c,
label.left=.settings$label.left, label.right=.settings$label.right,
byvar, bylab, print.byvar=.settings$print.byvar,
keepdata=.settings$keepdata,
warn=.settings$warn,
...)
"MH"
, "Inverse"
,
"Cochran"
, or "GLMM"
can be abbreviated."IRR"
or "IRD"
) is to be used for pooling of
studies, see Details.incr
is added to each
cell frequency of all studies if at least one study has a zero cell
count. If FALSE (default), incr
is added only to each cell frequency of
studies with a zero cell count.incr
is added to each cell
frequency of all studies irrespective of zero cell counts."UM.FS"
, "UM.RS"
, and "CM.EL"
,
see Details."DL"
, "PM"
, "REML"
, "ML"
, "HS"
,
"SJ"
, "HE"
, o"linreg"
or
"rank"
, can be abbreviated. See function metabias
sm="IRR"
) should be back transformed in
printouts and plots. If TRUE (default), results will be presented
as incidence rate ratios; otherwise log incidence rate ratiosevent.e
).incr
is added to studies with zero cell
frequencies).rma.glmm
function.c("metainc", "meta")
with corresponding
print
, summary
, plot
function. The object is a
list containing the following components:hakn=TRUE
).byvar
is not
missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing
and hakn=TRUE
.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing
(only calculated if argument tau.common
is TRUE).byvar
is not missing.byvar
is not missing.byvar
is not
missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is not missing.byvar
is
not missing.byvar
is not missing.byvar
is
not missing.keepdata=TRUE
).keepdata=TRUE
).rma.glmm
function (fixed effect model).rma.glmm
function (random effects model).sm="IRR"
)sm="IRD"
).settings$
). 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
. By default, both fixed effect and random effects models are
considered (see arguments comb.fixed
and
comb.random
). If method
is "MH"
(default), the
Mantel-Haenszel method is used to calculate the fixed effect
estimate (Greenland & Robbins, 1985); if method
is
"Inverse"
, inverse variance weighting is used for pooling; if
method
is "Cochran"
, the Cochran method is used for
pooling (Bayne-Jones, 1964, Chapter 8). By default, the
DerSimonian-Laird estimate (1986) is used in the random effects
model (method.tau="DL"
).
A distinctive and frequently overlooked advantage of incidence rates
is that individual patient data (IPD) can be extracted from count
data. Accordingly, statistical methods for IPD, i.e., generalised
linear mixed models, can be utilised in a meta-analysis of incidence
rate ratios (Stijnen et al., 2010). These methods are available
(argument method = "GLMM"
) by calling the
rma.glmm
function from R package
metafor internally. Three different GLMMs are available for
meta-analysis of incidence rate ratios using argument
model.glmm
(which corresponds to argument model
in the
rma.glmm
function):
model.glmm = "UM.FS"
, i.e.,UnconditionalModel -FixedStudy effects)model.glmm = "UM.RS"
, i.e.,UnconditionalModel -RandomStudy effects)model.glmm = "CM.EL"
, i.e.,ConditionalModel -ExactLikelihood)...
' in metainc
are
described in rma.glmm
where you can also find
information on the iterative algorithms used for estimation. Note,
regardless of which value is used for argument model.glmm
,
results for two different GLMMs are calculated: fixed effect model
(with fixed treatment effect) and random effects model (with random
treatment effects).
For studies with a zero cell count, by default, 0.5 is added to all
cell frequencies of these studies (argument incr
). This
continuity correction is used both to calculate individual study
results with confidence limits and to conduct meta-analysis based on
the inverse variance method. For Mantel-Haenszel method, Cochran
method, and GLMMs, nothing is added to zero cell counts.
Accordingly, estimates for these methods are not defined if the
number of events is zero in all studies either in the experimental
or control group.
Argument byvar
can be used to conduct subgroup analysis for
all methods but GLMMs. Instead use the metareg
function for GLMMs which can also be used for continuous covariates.
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
meta-analysis of an existing metainc 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 iterative Paule-Mandel method (1982) to estimate the
between-study 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
If R package metafor (Viechtbauer 2010) is installed, the
following methods to estimate the between-study variance
$\tau^2$ (argument method.tau
) are also available:
method.tau="REML"
)method.tau="ML"
)method.tau="HS"
)method.tau="SJ"
)method.tau="HE"
)method.tau="EB"
).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
between-study variance.DerSimonian R & Laird N (1986), Meta-analysis in clinical trials. Controlled Clinical Trials, 7, 177--188.
Greenland S & Robins JM (1985), Estimation of a common effect parameter from sparse follow-up data. Biometrics, 41, 55--68.
Hartung J & Knapp G (2001), A Refined Method for the Meta-analysis of Controlled Clinical Trials with Binary Outcome. Statistics in Medicine, 20, 3875--89. Higgins JPT, Thompson SG, Spiegelhalter DJ (2009), A re-evaluation of random-effects meta-analysis. Journal of the Royal Statistical Society: Series A, 172, 137--159.
Knapp G & Hartung J (2003), Improved Tests for a Random Effects Meta-regression 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. Stijnen T, Hamza TH, Ozdemir P (2010), Random effects meta-analysis of event outcome in the framework of the generalized linear mixed model with applications in sparse data. Statistics in Medicine, 29, 3046--67.
Viechtbauer W (2010), Conducting Meta-Analyses in R with the Metafor Package. Journal of Statistical Software, 36, 1--48.
metabin
, update.meta
, print.meta
data(smoking)
m1 <- metainc(d.smokers, py.smokers,
d.nonsmokers, py.nonsmokers,
data=smoking, studlab=study)
print(m1, digits=2)
m2 <- metainc(d.smokers, py.smokers,
d.nonsmokers, py.nonsmokers,
data=smoking, studlab=study,
method="Cochran")
print(m2, digits=2)
data(lungcancer)
m3 <- metainc(d.smokers, py.smokers,
d.nonsmokers, py.nonsmokers,
data=lungcancer, studlab=study)
print(m3, digits=2)
# Redo Cochran meta-analysis with inflated standard errors
#
# All cause mortality
#
TEa <- log( (smoking$d.smokers/smoking$py.smokers) /
(smoking$d.nonsmokers/smoking$py.nonsmokers)
)
seTEa <- sqrt(1/smoking$d.smokers +
1/smoking$d.nonsmokers + 2.5/smoking$d.nonsmokers)
#
metagen(TEa, seTEa, sm="IRR", studlab=smoking$study)
# Lung cancer mortality
#
TEl <- log( (lungcancer$d.smokers/lungcancer$py.smokers) /
(lungcancer$d.nonsmokers/lungcancer$py.nonsmokers)
)
seTEl <- sqrt(1/lungcancer$d.smokers +
1/lungcancer$d.nonsmokers + 2.25/lungcancer$d.nonsmokers)
#
metagen(TEl, seTEl, sm="IRR", studlab=lungcancer$study)
#
# Meta-analysis using generalised linear mixed models
# (only if R packages 'metafor' and 'lme4' are available)
#
if (suppressMessages(require(metafor, quietly = TRUE, warn = FALSE)) &
require(lme4, quietly = TRUE))
#
# Poisson regression model (fixed study effects)
#
m4 <- metainc(d.smokers, py.smokers, d.nonsmokers, py.nonsmokers,
data = smoking, studlab = study, method = "GLMM")
m4
#
# Mixed-effects Poisson regression model (random study effects)
#
update(m4, model.glmm = "UM.RS", nAGQ = 1)
#
# Generalised linear mixed model (conditional Poisson-Normal)
#
update(m4, model.glmm = "CM.EL")
Run the code above in your browser using DataLab