confounded_meta: Sensitivity analysis for unmeasured confounding in...

Description Usage Arguments Details References Examples

View source: R/meta-analysis.R

Description

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).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
confounded_meta(
  method = "calibrated",
  q,
  r = NA,
  tail = NA,
  CI.level = 0.95,
  give.CI = TRUE,
  R = 1000,
  muB = NA,
  muB.toward.null = FALSE,
  dat = NA,
  yi.name = NA,
  vi.name = NA,
  sigB = NA,
  yr = NA,
  vyr = NA,
  t2 = NA,
  vt2 = NA,
  ...
)

Arguments

method

"calibrated" or "parametric". See Details.

q

True causal effect size chosen as the threshold for a meaningfully large effect.

r

For Tmin and Gmin, value to which the proportion of meaningfully strong effect sizes is to be reduced.

tail

"above" for the proportion of effects above q; "below" for the proportion of effects below q. By default, is set to "above" if the pooled point estimate (method = "parametric") or median of the calibrated estimates (method = "calibrated") is above 1 on the relative risk scale and is set to "below" otherwise.

CI.level

Confidence level as a proportion (e.g., 0.95).

give.CI

Logical. If TRUE, confidence intervals are provided. Otherwise, only point estimates are provided.

R

Number of bootstrap iterates for confidence interval estimation. Only used if method = "calibrated" and give.CI = TRUE.

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., method = "calibrated" or method = "parametric" with sigB = 0), muB represents the log-bias factor in each study. If muB is not specified, then only Tmin and Gmin will be returned, not Prop.

muB.toward.null

Whether you want to consider bias that has on average shifted studies' point estimates away from the null (FALSE; the default) or that has on average shifted studies' point estimates toward the null (TRUE). See Details.

dat

Dataframe containing studies' point estimates and variances. Only used if method = "calibrated".

yi.name

Name of variable in dat containing studies' point estimates on the log-relative risk scale. Only used if method = "calibrated".

vi.name

Name of variable in dat containing studies' variance estimates. Only used if method = "calibrated".

sigB

Standard deviation of log bias factor across studies. Only used if method = "parametric".

yr

Pooled point estimate (on log-relative risk scale) from confounded meta-analysis. Only used if method = "parametric".

vyr

Estimated variance of pooled point estimate from confounded meta-analysis. Only used if method = "parametric".

t2

Estimated heterogeneity (τ^2) from confounded meta-analysis. Only used if method = "parametric".

vt2

Estimated variance of τ^2 from confounded meta-analysis. Only used if method = "parametric".

...

Additional arguments passed to confounded_meta.

Details

Specifying the sensitivity parameters on the bias

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).

Specifying the threshold q

For detailed guidance on choosing the threshold q, see the Supplement of Mathur & VanderWeele (2020a).

Specifying the estimation method

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:

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:

Effect size measures other than log-relative risks

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.

Interpreting 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).

When these methods should be used

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).

References

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.

Examples

 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 )

EValue documentation built on Oct. 28, 2021, 9:10 a.m.