rma.mh(ai, bi, ci, di, n1i, n2i, x1i, x2i, t1i, t2i,
measure="OR", data, slab, subset,
add=1/2, to="only0", drop00=TRUE,
correct=TRUE, level=95, digits=4, verbose=FALSE)
escalc
function for more details.escalc
function for more details.escalc
function for more details.escalc
function for more details.escalc
function for more details.escalc
function for more details.escalc
function for more details.escalc
function for more details.escalc
function for more details.escalc
function for more details."OR"
), the relative risk ("RR"
), the risk difference ("RD"
), the incidence rate ratio ("IRR"
add
should be added (either "only0"
, "all"
, "if0all"
, or "none"
). Can also be a character vector, where the first string again applies when NA
). See below and the documenFALSE
).c("rma.mh","rma")
. The object is a list containing the following components:measure="OR"
) or Mantel-Haenszel test statistic (measure="IRR"
).measure="OR"
).measure="OR"
).print.rma.mh
function. If fit statistics should also be given, use summary.rma
(or use the fitstats.rma
function to extract them).
The residuals.rma
, rstandard.rma.mh
, and rstudent.rma.mh
functions extract raw and standardized residuals. Leave-one-out diagnostics can be obtained with leave1out.rma.mh
.
Forest, funnel, radial, L'Abbe, and Baujat plots can be obtained with forest.rma
, funnel.rma
, radial.rma
, labbe.rma
, and baujat.rma.mh
. The qqnorm.rma.mh
function provides normal QQ plots of the standardized residuals. One can also just call plot.rma.mh
on the fitted model object to obtain various plots at once.
A cumulative meta-analysis (i.e., adding one obervation at a time) can be obtained with cumul.rma.mh
.
Other assessor functions include coef.rma
, vcov.rma
, logLik.rma
, deviance.rma
, AIC.rma
, and BIC.rma
."OR"
), relative risk (measure="RR"
), or risk difference (measure="RD"
), the studies are assumed to provide data in terms of $2 \times 2$ tables of the form:
ai
bi
n1i
group 2 ci
di
n2i
} where ai
, bi
, ci
, and di
denote the cell frequencies and n1i
and n2i
the row totals. For example, in a set of randomized clinical trials (RCTs) or cohort studies, group 1 and group 2 may refer to the treatment (exposed) and placebo/control (not exposed) group, with outcome 1 denoting some event of interest (e.g., death) and outcome 2 its complement. In a set of case-control studies, group 1 and group 2 may refer to the group of cases and the group of controls, with outcome 1 denoting, for example, exposure to some risk factor and outcome 2 non-exposure. For these outcome measures, one needs to specify either ai
, bi
, ci
, and di
or alternatively ai
, ci
, n1i
, and n2i
.
Alternatively, when the outcome measure is the incidence rate ratio (measure="IRR"
) or the incidence rate difference (measure="IRD"
), the studies are assumed to provide data in terms of tables of the form:
x1i
t1i
group 2 x2i
t2i
} where x1i
and x2i
denote the number of events in the first and the second group, respectively, and t1i
and t2i
the corresponding total person-times at risk.
An approach for aggregating table data of these types was suggested by Mantel and Haenszel (1959) and later extended by various authors (see references). The Mantel-Haenszel method provides a weighted estimate under a fixed-effects model. The method is particularly advantageous when aggregating a large number of studies with small sample sizes (the so-called sparse data or increasing strata case).
When analyzing odds ratios, the Cochran-Mantel-Haenszel (CMH) test (Cochran, 1954; Mantel & Haenszel, 1959) and Tarone's test for heterogeneity (Tarone, 1985) are also provided (by default, the CMH test statistic is computed with the continuity correction; this can be switched off with correct=FALSE
). When analyzing incidence rate ratios, the Mantel-Haenszel (MH) test (Rothman et al., 2008) for person-time data is also provided (again, the correct
argument controls whether the continuity correction is applied). When analyzing odds ratios, relative risks, or incidence rate ratios, the printed results are given both in terms of the log and the raw units (for easier interpretation).
The Mantel-Haenszel method itself does not require the calculation of the individual outcome values and directly makes use of the table/event counts. Zero cells/events are not a problem (except in extreme cases, such as when one of the two outcomes never occurs in any of the $2 \times 2$ tables or when there are no events for one of the two groups in any of the tables). Therefore, it is unnecessary to add some constant to the cell counts (or the number of events) when there are zero cells/events. However, for plotting and various other functions, it is necessary to calculate the individual outcome values for the $k$ studies. Here, zero cells/events can be problematic, so adding a constant value to the cell counts (or the number of events) ensures that all $k$ values can be calculated. The add
and to
arguments are used to specify what value should be added to the cell frequencies (or the number of events) and under what circumstances when calculating the individual outcome values and when applying the Mantel-Haenszel method. The documentation of the escalc
function explains how the add
and to
arguments work. If only one value for these arguments is specified, then these values are used when calculating the individual outcomes and no adjustment to the cell counts (or the number of events) is made when applying the Mantel-Haenszel method. Alternatively, when specifying two values for these arguments, the first value applies when calculating the individual outcomes and the second value when applying the Mantel-Haenszel method. Note that drop00
is set to TRUE
by default, since studies where ai=ci=0
or bi=di=0
or studies where x1i=x2i=0
are also automatically rma.uni
, rma.glmm
, rma.peto
, rma.mv
### load BCG vaccine data
data(dat.bcg)
### meta-analysis of the (log) odds ratios using the Mantel-Haenszel method
rma.mh(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, measure="OR")
### meta-analysis of the (log) relative risks using the Mantel-Haenszel method
rma.mh(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg, measure="RR")
Run the code above in your browser using DataLab