rema {rema} | R Documentation |
A permutation-based approach for heterogeneous meta-analyses of rare events
Description
rema
(rare event meta-analysis) performs a permutation-based
meta-analysis for heterogeneous, rare event data.
Usage
rema(
trt.events = NULL,
trt.total = NULL,
ctrl.events = NULL,
ctrl.total = NULL,
rema.obj,
mid.p = TRUE,
distr = TRUE,
one.sided.p = FALSE,
alpha = 0.05
)
Arguments
trt.events |
Numeric vector containing the number of observed events in the treatment group from each independent study. |
trt.total |
Numeric vector containing the total number of observations (events plus non-events) in the treatment group from each independent study. |
ctrl.events |
Numeric vector containing the number of observed events in the control group from each independent study. |
ctrl.total |
Numeric vector containing the total number of observations (events plus non-events) in the control group from each independent study. |
rema.obj |
An object of class |
mid.p |
A logical indicating if the p-values and confidence interval are
adjusted using the mid-p correction to reduce conservatism. If |
distr |
A logical indicating if the permutational distribution of the
test statistic is reported. If |
one.sided.p |
A logical indicating if the one-sided p-value (in the
direction of the treatment effect) is computed and returned. If
|
alpha |
A number between 0 and 1 to create a (1 - alpha)% confidence interval for the treatment effect. |
Details
Conventional meta-analysis approaches tend to perform poorly for
heterogeneous, rare event data. rema
implements a permutation-based
approach for binary meta-analyses of 2x2 tables, founded on conditional
logistic regression, that provides more reliable statistical tests when
heterogeneity is observed in rare event data
(Zabriskie et al. 2021). To adjust for the effect of heterogeneity,
this method conditions on the sufficient statistic of a proxy for the
heterogeneity effect as opposed to estimating the heterogeneity variance.
While this results in the model not strictly falling under the random-effects
framework, it is akin to a random-effects approach in that it assumes
differences in variability due to treatment. Further, this method does not
rely on large-sample approximations or continuity corrections for rare event
data.
This method uses the permutational distribution of the test statistic instead of asymptotic approximations for inference. The number of observed events drives the computation complexity for creating this permutational distribution. Accordingly, for this method to be computationally feasible, it should only be applied to meta-analyses with a relatively low number of observed events. To create this permutational distribution, a network algorithm, based on the work of Mehta et al. (1992) and Corcoran et al. (2001), is employed using C++ and integrated into the package.
Value
An object of class
"rema
" with corresponding
print
, summary
, and plot
(if distr == TRUE
)
functions. The object is a list containing the following elements:
trt.events | As defined above. |
trt.total | As defined above. |
ctrl.events | As defined above. |
ctrl.total | As defined above. |
mid.p | As defined above. |
alpha | As defined above. |
arguments | A string of the arguments passed into rema . |
TE | The estimated overall treatment effect (odds ratio). |
CI | A vector containing the estimated lower and upper bounds of a (1 - alpha)% |
confidence interval of the overall treatment effect (odds ratio). | |
method | A string specifying the method used to compute the odds ratio and its associated |
confidence interval. Either the conditional maximum likelihood estimate (CMLE) | |
or the median unbiased estimate (MUE) will be used. | |
pval | The two-sided p-value for the overall treatment effect. |
pval.one.sided | The one-sided p-value (in the direction of the treatment effect) for the overall |
treatment effect (if
one.sided.p == TRUE ). |
|
dist | A data frame containing the permutational distribution of the test statistic |
(if
distr == TRUE ). |
|
tstat | The observed value of the test statistic (if
distr == TRUE ). |
References
Corcoran C, Ryan L, Senchaudhuri P, Mehta C, Patel N, Molenberghs G (2001).
“An Exact Trend Test for Correlated Binary Data.”
Biometrics, 57, 941–948.
doi:10.1111/j.0006-341x.2001.00941.x.
Mehta CR, Patel N, Senchaudhuri P (1992).
“Exact Stratified Linear Rank Tests for Ordered Categorical and Binary Data.”
Journal of Computational and Graphical Statistics, 1(1), 21–40.
doi:10.2307/1390598.
Normand ST (1999).
“Meta-analysis: formulating, evaluating, combining, and reporting.”
Statistics in Medicine, 18, 321–359.
Zabriskie BN, Corcoran C, Senchaudhuri P (2021).
“A Permutation-Based Approach for Heterogeneous Meta-Analyses of Rare Events.”
Statistics in Medicine, 40(25), 5587–5604.
doi:10.1002/sim.9142.
See Also
metabin and metafor for more traditional meta-analysis methods for combining odds ratios.
Examples
# Lidocaine data set from Normand (1999)
rema(trt.events = c(2, 4, 6, 7, 7, 11),
trt.total = c(39, 44, 107, 103, 110, 154),
ctrl.events = c(1, 4, 4, 5, 3, 4),
ctrl.total = c(43, 44, 110, 100, 106, 146),
mid.p = FALSE,
distr = FALSE,
one.sided.p = TRUE)
# Example using a rema object as the input once the permutational
# distribution is obtained
my.rema.object <- rema(trt.events = c(1, 2, 0, 2, 0, 0, 1, 0, 1, 0),
trt.total = c(30, 14, 30, 49, 38, 11, 31, 13, 49, 23),
ctrl.events = c(4, 3, 3, 0, 4, 4, 3, 2, 3, 4),
ctrl.total = c(15, 26, 42, 24, 40, 26, 47, 24, 27, 26),
mid.p = FALSE,
distr = TRUE,
one.sided.p = FALSE)
rema(rema.obj = my.rema.object,
mid.p = TRUE)
## Not run:
# Vectors of non-whole numbers (such as after applying a continuity correction)
rema(trt.events = c(0.5, 0.5, 1, 3),
trt.total = c(2, 5, 4, 12),
ctrl.events = c(2.5, 4.5, 6, 7),
ctrl.total = c(7, 9, 11, 12))
# Vectors with greater observed events than total observations
rema(trt.events = c(11, 13, 7, 10),
trt.total = c(10, 12, 5, 7),
ctrl.events = c(22, 25, 32, 26),
ctrl.total = c(20, 20, 30, 25))
## End(Not run)