*! version 1.5.0 05Mar2024

*! version 1.4.0 23Aug2019

Title

evalue -- Sensitivity analyses for unmeasured confounding in observational studies

Syntax

E-value for risk ratio and rate ratio:

evalue rr
point estimate
[,
lcl(#)
ucl(#)
true(#)
figure[(twoway_options)]
]

E-value for odds ratio:

evalue or
point estimate
[,
lcl(#)
ucl(#)
true(#)
common
figure[(twoway_options)]
]

E-value for hazard ratio:

evalue hr
point estimate
[,
lcl(#)
ucl(#)
true(#)
common
figure[(twoway_options)]
]

E-value for standardized mean difference:

evalue smd
point estimate
[,
se(#)
true(#)
figure[(twoway_options)]
]

E-value for risk difference:

evalue rd
#a #b #c #d
[,
level(#)
true(#)
grid(#)
figure[(twoway_options)]
]

In the syntax for evalue rd, #a is the number of exposed, diseased individuals (E=1, D=1); #b is the number of exposed, non-diseased individuals (E=1, D=0);
#c is the number of unexposed, diseased individuals (E=0, D=1); and #d is the number of unexposed, non-diseased individuals (E=0, D=0). If the observed risk difference
is negative, the exposure coding should first be reversed to yield a positive risk difference.

lcl(#) the lower limit of the confidence interval around the point estimate. Available for RR, OR and HR models

ucl(#) the upper limit of the confidence interval around the point estimate. Available for RR, OR and HR models

se(#) the standard error of the point estimate of the standardized mean difference. Available for SMD model

true(#) the treatment effect value to which to shift the observed point estimate; default is true(0) for RD and SMD models and true(1) for all others

common specify that the outcome is between 15 and 85 percent at end of follow-up, for OR and HR models; default is rare

level(#) set confidence level for RD model; default is level(95)

grid(#) spacing (tolerance) for grid search of E-value for RD model; default is grid(0.0001)

figure produces a curve depicting the range of joint confounder associations for the point estimate, and CI when applicable. All twoway_options are available.

Description

evalue performs sensitivity analyses for unmeasured confounding in observational studies using the methodology proposed by VanderWeele and Ding (2017).
evalue reports E-values, defined as the minimum strength of association on the risk ratio scale that an unmeasured confounder would need to have
with both the treatment and the outcome to fully explain away a specific treatment-outcome association, conditional on the measured covariates.
evalue computes E-values for point estimates (and optionally, confidence limits) for several common outcome types, including risk and rate ratios, odds ratios
with common or rare outcomes, hazard ratios with common or rare outcomes, standardized mean differences in outcomes, and risk differences. evalue
produces identical results to those computed in the EValue package for R (https://cran.r-project.org/web/packages/EValue/index.html) and the web-based
graphical interface (https://evalue.hmdc.harvard.edu).

Options

lcl(#) specifies the lower limit of the confidence interval around the point estimate. evalue will use lcl() to compute an E-value
for the confidence interval limit, if it is closer to the null than ucl(). Available for RR, OR and HR models.

ucl(#) specifies the upper limit of the confidence interval around the point estimate. evalue will use ucl() to compute an E-value
for the confidence interval limit, if it is closer to the null than lcl(). Available for RR, OR and HR models.

se(#) specifies the standard error of the point estimate of the standardized mean difference (e.g. Cohen's D) (see [R] esize).
evalue will use se() to compute an E-value for the confidence interval limit closest to the null. Available for SMD model.

true(#) specifies a treatment effect value to which to shift the observed point estimate other than the null effect. A null true effect (default values in evalue) is 0 in RD and SMD models and 1 in all ratio type models.

common specifies that the outcome prevalence is between 15% and 85% at the end of the follow-up, for OR and HR models.
When the common option is specified, an approximate E-value is obtained by replacing the RR with the square root of OR.
It should be noted that when the outcome is rare, the square root transformation provides a poor approximation, and thus the
calculation under the rare outcome assumption should be used (by not specifying common). However, when the outcome
prevalence is between 15% and 85%, the square root transformation works quite well (Ding and VanderWeele 2016).

level(#) specifies the confidence level, as a percentage, for the confidence interval used for producing RD estimates. The default is level(95).

grid(#) specifies the tolerance for the grid search of the E-value for an RD estimate. The default is grid(0.0001).

figure[(twoway_options)] produces a curve depicting the range of joint relationships
(exposure-confounder and exposure-disease) that may explain away the estimated effect with the computed E-value highlighted. A curve for the E-value of the CI is also displayed in the
the figure under the following conditions:
(1) for RR, OR, and HR models, the user must specify lcl(#) when the point estimate is greater than 1.0 or ucl(#) when the estimate is lower than 1.0;
(2) for an SMD model, the user must specify se(#);
(3) for an RD model, a CI curve is always produced; and
(4) the computed E-value for the CI does not equal 1. Specifying figure without options uses the default graph settings.

Remarks

The interpretation of the E-value is straightforward. In the first example below, the risk ratio estimate is 3.9, which produces an E-value of 7.263. The interpretation
is as follows: "the observed risk ratio of 3.9 could be explained away by an unmeasured confounder that was associated with both the treatment and outcome by a risk ratio
of 7.26-fold each, above and beyond the measured confounders, but weaker confounding could not do so." The higher the E-value, the stronger the confounder associations
must be to explain away an effect (VanderWeele and Ding, 2017).

To account for the statistical uncertainty of the point estimate, an E-value can also be computed for the confidence limit closest to the null. In the first example below,
the LCL is 1.8 which is closer to the null (1.0) than the UCL (8.7). Thus, the E-value for the lower limit is 3.0, which can be interpreted as "an unmeasured confounder associated
with infant respiratory death and breast feeding by a risk ratio of 3.0-fold each could explain away the lower confidence limit, but weaker confounding could not." (VanderWeele
and Ding, 2017).

E-values can also be computed to assesss the minimum strength of the association of an unmeasured confounder would need to have with both the treatment and outcome to move the
point estimate to some other value of the risk ratio (which is represented by the true() option in evalue). In the third example below, we want to determine the
amount of unmeasured confounding that would be necessary to shift the RR point estimate (0.80) to an RR of 0.90. The resulting E-value is 1.50, which can be interpreted as
"for an unmeasured confounder to shift the observed estimate of RR = 0.80 to an estimate of RR = 0.90, an unmeasured confounder that was associated with both breast-feeding
and childhood leukemia by a risk ratio of 1.0-fold each could do so, but weaker confounding could not." (VanderWeele and Ding, 2017).

Examples

1) E-value for a risk ratio

breast-feeding and infant respiratory death example in VanderWeele and Ding (2017)

. evalue rr 3.9, lcl(1.8) u(8.7) fig

breast-feeding and childhood leukemia example in VanderWeele and Ding (2017)

. evalue rr 0.80, lcl(0.71) u(0.91) fig

same as above but assessing the amount of confounding needed to shift the estimate from 0.80 to 0.90.

. evalue rr 0.80, lcl(0.71) u(0.91) true(0.90) fig

same as above but assessing the amount of confounding needed to shift the estimate from 0.80 to 1.20 (other side of null hypothesis)

. evalue rr 0.80, lcl(0.71) u(0.91) true(1.20) fig

anti-depressants use during pregnancy and infact cardiac defects example in VanderWeele and Ding (2017)

. evalue rr 1.06, lcl(0.93) u(1.22) true(1.20) fig

2) E-value for an odds ratio

ovarian cancer example (with rare outcome) in VanderWeele and Ding (2017)

. evalue or 0.5, lcl(0.3) u(0.8) fig

breast-feeding and child obesity example (with common outcome) in VanderWeele and Ding (2017)

. evalue or 1.47, lcl(1.12) u(1.93) common fig

3) E-value for a hazard ratio

example with a common outcome

. evalue hr 0.56, l(0.46) u(0.69) common fig

example with a rare outcome and true effect of 0.9. Additionally, we modify the X and Y labels (scale values) on the figure

. evalue hr 0.60, l(0.50) u(0.70) true(0.85) fig(xlabel(0(2)6) ylabel(0(2)6))

4) E-value for a standardized mean difference

phenobarbital and intelligence example in VanderWeele and Ding (2017)

. evalue smd -0.42, se(0.14)

example with a shift to true estimate

. evalue smd 0.5, se(0.2) true(0.1) fig

example using esizeregi to first compute the SMD and SE from a regression model and then plug the respective values into evalue

. esizeregi -224.422, sdp(562.35602) n1(864) n2(3778)

. evalue smd -0.399075, se(0.037937)

or alternatively,

. evalue smd `d', se(`se')

5) E-value for a risk difference

smoking and lung cancer deaths example in VanderWeele and Ding (2017)

. evalue rd 397 78557 51 108778

same as above but assessing the amount of confounding needed to shift the observed risk difference (0.00456) to the value of 0.001

. evalue rd 397 78557 51 108778, true(0.001) fig

Stored results

evalue stores the following in r():

Scalars

r(eval_est) E-value for the point estimate

r(eval_ci) E-value for the confidence interval

References

Ding, P. and T. J. VanderWeele. (2016). Sensitivity analysis without assumptions. Epidemiology, 27: 368-377.

Linden, A., Mathur, M. B., and T. J. VanderWeele. Conducting sensitivity analysis for unmeasured confounding in observational studies using E-values: The evalue package.
Stata Journal, 2020: 162-175.

Mathur, M.B., Ding, P., Riddell, C.A. and T. J. VanderWeele. (2018). Website and R package for computing E-values. Epidemiology, 29: e45-e47.

VanderWeele, T. J. and P. Ding. (2017). Sensitivity analysis in observational research: introducing the E-value. Annals of Internal Medicine, 167: 268-274.

Citation of evalue

evalue is not an official Stata command. It is a free contribution
to the research community, like a paper. Please cite it as such:

Linden A, Mathur M. B., VanderWeele, T. J. (2019). EVALUE: Stata module for conducting sensitivity analyses for unmeasured confounding in observational studies.
http://ideas.repec.org/c/boc/bocode/s458592.html

Authors

Ariel Linden

President, Linden Consulting Group, LLC

alinden@lindenconsulting.org

Maya B. Mathur

Department of Epidemiology

Harvard University

mmathur@stanford.edu

Tyler J. VanderWeele

Department of Epidemiology

Harvard University

tvanderw@hsph.harvard.edu

Also see

Online: cs, esize, esizereg if installed