Description Usage Arguments Details References Examples
View source: R/metaanalysis.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 logrelative risk scale) from confounded metaanalysis. Only used if 
vyr 
Estimated variance of pooled point estimate from confounded metaanalysis. Only used if 
t2 
Estimated heterogeneity (τ^2) from confounded metaanalysis. Only used if 
vt2 
Estimated variance of τ^2 from confounded metaanalysis. Only used if 
... 
Additional arguments passed to 
By convention, the average logbias 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 metaanalyses 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 lognormal 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 metaanalysis uses effect sizes other than logrelative risks, you should first approximately convert them to logrelative risks, for example via convert_measures()
and then pass the converted point estimates or metaanalysis 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 lognormal 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 metaanalyzed 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 lognormal across studies with standard deviation sigB
. Gmin
is a onetoone 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 metaanalyses with at least 10 studies; we do not recommend reporting them in smaller metaanalyses. Additionally, it only makes sense to consider proportions of effects stronger than a threshold when the heterogeneity estimate t2
is greater than 0. For metaanalyses with fewer than 10 studies or with a heterogeneity estimate of 0, you can simply report Evalues for the point estimate via evalue()
(VanderWeele & Ding, 2017; see Mathur & VanderWeele (2020a), Section 7.2 for interpretation in the metaanalysis context).
Mathur MB & VanderWeele TJ (2020a). Sensitivity analysis for unmeasured confounding in metaanalyses. Journal of the American Statistical Association.
Mathur MB & VanderWeele TJ (2020b). Robust metrics and sensitivity analyses for metaanalyses of heterogeneous effects. Epidemiology.
Mathur MB & VanderWeele TJ (2019). New statistical metrics for metaanalyses of heterogeneous effects. Statistics in Medicine.
Ding P & VanderWeele TJ (2016). Sensitivity analysis without assumptions. Epidemiology.
VanderWeele TJ & Ding P (2017). Introducing the Evalue. Annals of Internal Medicine.
Wang CC & Lee WC (2019). A simple method to estimate prediction intervals and predictive distributions: Summarizing metaanalyses 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 randomeffects metaanalysis
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.