Arte SheetsLearn. Try. Understand.

Epidemiology & Causal Inference

VanderWeele-Ding E-Value Formula for Unmeasured Confounding

Calculate the VanderWeele-Ding (2017) E-value = RR* + SQRT(RR* * (RR* - 1)) for both point risk ratios and 95% confidence limits, handling protective RR < 1 automatically.

Quantify the minimum confounder strength needed to explain away an observational association

In observational epidemiology and real-world evidence studies, reviewers routinely ask whether an unmeasured confounder U could explain away an observed Risk Ratio RR. Without distributional assumptions on U, VanderWeele and Ding (2017) proved that to reduce an observed RR >= 1 all the way to the null (1.0), an unmeasured confounder must be associated with BOTH exposure AND outcome by risk ratios of at least E-value = RR + SQRT(RR * (RR - 1))!

Two rules prevent spreadsheet bugs: (1) for protective exposures (RR < 1), invert first via RR_star = IF(RR >= 1, RR, 1 / RR) before applying the formula; (2) for the 95% confidence interval [RR_low, RR_high], if the interval crosses 1.0 (RR_low <= 1 <= RR_high), the confidence-limit E-value is 1.0000 (zero unmeasured confounding needed to include the null!). Verify by hand for RR = 2.50 (B2) with 95% CI [1.60, 3.90] (B3, B4): Point E-value = 2.50 + SQRT(2.50 * 1.50) = 2.50 + SQRT(3.75) = 4.4365, and Lower-CI E-value = 1.60 + SQRT(1.60 * 0.60) = 1.60 + SQRT(0.96) = 2.5798!

Observational InputExact E-Value TransformationSample Output
Point Risk Ratio RR = 2.502.50 + SQRT(2.50 * 1.50)4.4365
Lower 95% CI Bound RR_low = 1.601.60 + SQRT(1.60 * 0.60)2.5798
Protective Exposure RR = 0.40Invert RR* = 1 / 0.40 = 2.50 first4.4365 (Symmetric!)
CI Crossing Null [0.85, 1.90]Interval already contains 1.01.0000

Point-Estimate E-Value Formula (Handling Both Harmful RR >= 1 and Protective RR < 1)

Invert RR < 1 to 1 / RR automatically inside LET so protective vaccine or therapy risk ratios (such as RR = 0.40 = 1 / 2.50) never trigger SQRT of a negative number!

=LET(rr_pt, B2, IF(rr_pt <= 0, "Invalid Risk Ratio", LET(rr_st, IF(rr_pt >= 1, rr_pt, 1 / rr_pt), ROUND(rr_st + SQRT(rr_st * (rr_st - 1)), 4))))

95% Confidence-Interval Limit Closest-to-Null E-Value Formula

Evaluate 1 if [RR_low, RR_high] straddles 1; otherwise transform RR_low (when RR > 1) or 1 / RR_high (when protective RR_high < 1).

=LET(rr_lo, B3, rr_hi, B4, IF(OR(rr_lo <= 0, rr_hi < rr_lo), "Invalid CI Bounds", IF(AND(rr_lo <= 1, rr_hi >= 1), 1, LET(rr_bnd, IF(rr_lo > 1, rr_lo, 1 / rr_hi), ROUND(rr_bnd + SQRT(rr_bnd * (rr_bnd - 1)), 4)))))

Try the example

Use the original values or change them to test your understanding.

Further reading