Description Usage Arguments Details References Examples
View source: R/meta-analysis.R
This function implements the sensitivity analyses of Mathur & VanderWeele (2020a, 2020b). It computes point estimates, standard errors, and confidence intervals
for (1) Prop
, the proportion of studies with true causal effect sizes above or below a chosen threshold q
as a function of the bias parameters;
(2) the minimum bias factor on the relative risk scale (Tmin
) required to reduce to
less than r
the proportion of studies with true causal effect sizes more extreme than
q
; and (3) the counterpart to (2) in which bias is parameterized as the minimum
relative risk for both confounding associations (Gmin
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
method |
|
q |
True causal effect size chosen as the threshold for a meaningfully large effect. |
r |
For |
tail |
|
CI.level |
Confidence level as a proportion (e.g., 0.95). |
give.CI |
Logical. If |
R |
Number of bootstrap iterates for confidence interval estimation. Only used if |
muB |
Mean bias factor on the log scale across studies (greater than 0). When considering bias that is of homogeneous strength across studies (i.e., |
muB.toward.null |
Whether you want to consider bias that has on average shifted studies' point estimates away from the null ( |
dat |
Dataframe containing studies' point estimates and variances. Only used if |
yi.name |
Name of variable in |
vi.name |
Name of variable in |
sigB |
Standard deviation of log bias factor across studies. Only used if |
yr |
Pooled point estimate (on log-relative risk scale) from confounded meta-analysis. Only used if |
vyr |
Estimated variance of pooled point estimate from confounded meta-analysis. Only used if |
t2 |
Estimated heterogeneity (τ^2) from confounded meta-analysis. Only used if |
vt2 |
Estimated variance of τ^2 from confounded meta-analysis. Only used if |
... |
Additional arguments passed to |
By convention, the average log-bias factor, muB
, is taken to be greater than 0 (Mathur & VanderWeele, 2020a; Ding & VanderWeele, 2017). Confounding can operate on average either away from or toward the null, a choice specified via muB.toward.null
. The most common choice for sensitivity analysis is to consider bias that operates on average away from the null, which is confounded_meta
's default. In such an analysis, correcting for the bias involves shifting studies' estimates back toward the null by muB
(i.e., if yr > 0
, the estimates will be corrected downward; if yr < 0
, they will be corrected upward). Alternatively, to consider bias that operates on average away from the null, you would still specify muB > 0
but would also specify muB.toward.null = TRUE
. For detailed guidance on choosing the sensitivity parameters muB
and sigB
, see Section 5 of Mathur & VanderWeele (2020a).
q
For detailed guidance on choosing the threshold q
, see the Supplement of Mathur & VanderWeele (2020a).
By default, confounded_meta
performs estimation using a calibrated method (Mathur & VanderWeele, 2020b) that extends work by Wang et al. (2019). This method makes no assumptions about the distribution of population effects and performs well in meta-analyses with as few as 10 studies, and performs well even when the proportion being estimated is close to 0 or 1. However, it only accommodates bias whose strength is the same in all studies (homogeneous bias). When using this method, the following arguments need to be specified:
q
r
(if you want to estimate Tmin
and Gmin
)
muB
dat
yi.name
vi.name
The parametric method assumes that the population effects are approximately normal and that the number of studies is large. Parametric confidence intervals should only be used when the proportion estimate is between 0.15 and 0.85 (and confounded_meta
will issue a warning otherwise). Unlike the calibrated method, the parametric method can accommodate bias that is heterogeneous across studies (specifically, bias that is log-normal across studies). When using this method, the following arguments need to be specified:
q
r
(if you want to estimate Tmin
and Gmin
)
muB
sigB
yr
vyr
(if you want confidence intervals)
t2
vt2
(if you want confidence intervals)
If your meta-analysis uses effect sizes other than log-relative risks, you should first approximately convert them to log-relative risks, for example via convert_measures()
and then pass the converted point estimates or meta-analysis estimates to confounded_meta
.
Tmin
and Gmin
Tmin
is defined as the minimum average bias factor on the relative risk scale that would be required to reduce to less than r
the proportion of studies with true causal effect sizes stronger than the threshold q
, assuming that the bias factors are log-normal across studies with standard deviation sigB
. Gmin
is defined as the minimum confounding strength on the relative risk scale – that is, the relative risk relating unmeasured confounder(s) to both the exposure and the outcome – on average among the meta-analyzed studies, that would be required to reduce to less than r
the proportion of studies with true causal effect sizes stronger than the threshold q
, again assuming that bias factors are log-normal across studies with standard deviation sigB
. Gmin
is a one-to-one transformation of Tmin
given by Gmin = Tmin + √{Tmin * (Tmin - 1)} . If the estimated proportion of meaningfully strong effect sizes is already less than r
even without the introduction of any bias, Tmin
and Gmin
will be set to 1. (These definitions of Tmin
and Gmin
are generalizations of those given in Mathur & VanderWeele, 2020a, who defined these quantities in terms of bias that is homogeneous across studies. You can conduct analyses with homogeneous bias by setting sigB = 0
.)
The direction of bias represented by Tmin
and Gmin
is dependent on the argument tail
: when tail = "above"
, these metrics consider bias that had operated to increase studies' point estimates, and when tail = "below"
, these metrics consider bias that had operated to decrease studies' point estimates. Such bias could operate toward or away from the null depending on whether the pooled point estimate yr
happens to fall above or below the null. As such, the direction of bias represented by Tmin
and Gmin
may or may not match that specified by the argument muB.toward.null
(which is used only for estimation of Prop
).
These methods perform well only in meta-analyses with at least 10 studies; we do not recommend reporting them in smaller meta-analyses. Additionally, it only makes sense to consider proportions of effects stronger than a threshold when the heterogeneity estimate t2
is greater than 0. For meta-analyses with fewer than 10 studies or with a heterogeneity estimate of 0, you can simply report E-values for the point estimate via evalue()
(VanderWeele & Ding, 2017; see Mathur & VanderWeele (2020a), Section 7.2 for interpretation in the meta-analysis context).
Mathur MB & VanderWeele TJ (2020a). Sensitivity analysis for unmeasured confounding in meta-analyses. Journal of the American Statistical Association.
Mathur MB & VanderWeele TJ (2020b). Robust metrics and sensitivity analyses for meta-analyses of heterogeneous effects. Epidemiology.
Mathur MB & VanderWeele TJ (2019). New statistical metrics for meta-analyses of heterogeneous effects. Statistics in Medicine.
Ding P & VanderWeele TJ (2016). Sensitivity analysis without assumptions. Epidemiology.
VanderWeele TJ & Ding P (2017). Introducing the E-value. Annals of Internal Medicine.
Wang C-C & Lee W-C (2019). A simple method to estimate prediction intervals and predictive distributions: Summarizing meta-analyses beyond means and confidence intervals. Research Synthesis Methods.
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | ##### Using Calibrated Method #####
d = metafor::escalc(measure="RR", ai=tpos, bi=tneg,
ci=cpos, di=cneg, data=metadat::dat.bcg)
# obtaining all three estimators and inference
# number of bootstrap iterates
# should be larger in practice
R = 100
confounded_meta( method="calibrated", # for both methods
q = log(0.90),
r = 0.20,
tail="below",
muB = log(1.5),
dat = d,
yi.name = "yi",
vi.name = "vi",
R = 100 )
# passing only arguments needed for prop point estimate
confounded_meta( method="calibrated",
q = log(0.90),
tail="below",
muB = log(1.5),
give.CI = FALSE,
dat = d,
yi.name = "yi",
vi.name = "vi" )
# passing only arguments needed for Tmin, Gmin point estimates
confounded_meta( method="calibrated",
q = log(0.90),
r = 0.10,
tail="below",
give.CI = FALSE,
dat = d,
yi.name = "yi",
vi.name = "vi" )
##### Using Parametric Method #####
# fit random-effects meta-analysis
m = metafor::rma.uni(yi= d$yi,
vi=d$vi,
knha=TRUE,
measure="RR",
method="REML" )
yr = as.numeric(m$b) # metafor returns on log scale
vyr = as.numeric(m$vb)
t2 = m$tau2
vt2 = m$se.tau2^2
# obtaining all three estimators and inference
# now the proportion considers heterogeneous bias
confounded_meta( method = "parametric",
q=log(0.90),
r=0.20,
tail = "below",
muB=log(1.5),
sigB=0.1,
yr=yr,
vyr=vyr,
t2=t2,
vt2=vt2,
CI.level=0.95 )
# passing only arguments needed for prop point estimate
confounded_meta( method = "parametric",
q=log(0.90),
tail = "below",
muB=log(1.5),
sigB = 0,
yr=yr,
t2=t2,
CI.level=0.95 )
# passing only arguments needed for Tmin, Gmin point estimates
confounded_meta( method = "parametric",
q = log(0.90),
sigB = 0,
r = 0.10,
tail = "below",
yr=yr,
t2=t2,
CI.level=0.95 )
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.