Cinelli Hazlett 2020 - Informal Benchmarking Pitfalls and Related Methods

Summary

Informal benchmarking, meaning “plot the observed covariate’s own partial s as the confounder’s strength”, fails even when the analyst knows is exactly like and : the observed statistics are themselves distorted by omitting (collider bias through ) and by the -vs-Cohen’s- scale change. The paper also contrasts with Frank’s impact thresholds, the E-value, Hosman et al.’s -value parameterisation, and Oster’s , and closes with warnings against mechanical use.

Overview

Prior proposals (Frank 2000; Imbens 2003; Frank et al. 2008; Hosman et al. 2010; Blackwell 2013; Dorie et al. 2016; Carnegie et al. 2016; Middleton et al. 2016; Hong et al. 2018) calibrate the hypothetical confounder by plotting observed statistics of covariates in the same sensitivity plot. This note covers why that is wrong and how the other methods relate.

Main Content

Why informal benchmarks mislead (Sec. 6.2)

Compare coefficient on in the full vs restricted model: , where is the coefficient on in . Even if , because is a collider: conditioning on induces dependence between and . Hence any observed statistic that conditions on (partial correlations, partial , -values) of is contaminated by the omission of .

Two discrepancies between informal and proper benchmarks (in the partial- parameterisation):

  1. Baseline variance adjustment. Informal uses ; correct uses with . Affects both coordinates.
  2. Collider bias in the outcome coordinate: informal uses , correct uses with .

The error grows when is strongly associated with and as grows. If the benchmark does not condition on (Frank 2000) the collider issue disappears but the scale issue remains.

Fig. 4 simulation: confounder identical to an observed covariate

, , , , all iid standard normal; true effect of is zero and is “exactly like “. Unadjusted estimate . Paper: informal benchmark yields 0.31 (concluding a like is insufficient to zero the effect); proper bound yields 0 (correct). I reproduced this with :

QuantityValue
0.498
informal benchmark (, $R^2_{Y\sim XD}=0.101$)
formal bound ($R^2_{D\sim ZX}\le0.502R^2_{Y\sim Z
truth (planted in regression); actual partial s 0.498 and 0.334

Supp. C repeats the point for treatSens (Carnegie et al. 2016) and konfound (Frank): in the same simulation the Frank impact threshold is 0.469 vs the observed covariate impact , wrongly implying robustness. The treatSens package was removed from CRAN on 14 October 2019 for lack of maintenance.

Frank (2000) impact thresholds. Impact . But bias is determined by , not by the product. Rewriting (Eq. 25):

So (i) zero impact can still bias; (ii) non-zero impact can give zero bias (when impact ); (iii) the two terms enter asymmetrically, so same-impact confounders differ in bias. The impact needed for relative bias is , which depends on unless .

E-value (VanderWeele & Ding 2017). Parameterises confounder strength with risk ratios; for risk ratio , . For other effect measures it is approximate; for OLS the is exact. Partial (variance explained) vs risk-ratio scale is a context-dependent choice.

Hosman, Hansen & Holland (2010). Also OVB-based, but (a) relies on informal benchmarking and (b) asks the analyst to calibrate intuition with the confounder’s -value, which mixes strength with sample size. Footnote: a of 200 with means partial ; with it means .

Oster (2017). Gives a formal identification result with (maximum of the full outcome regression, one-to-one with by Eq. 26: ) and , with indices , . For one covariate, where . It depends on the outcome coefficients, so ” means equal importance for treatment” is false: with standardised variables, , , gives though has one half (coefficient) or one quarter (variance) of ‘s explanatory power. The paper’s captures that notion directly.

Sensitivity analysis as principled argument (Sec. 6.4)

  • Sensitivity analyses “tell us what we would have to be prepared to believe in order to accept the substantive claims” (Rosenbaum).
  • The paper refuses universal thresholds: a 15% RV is not automatically “good” in a poorly controlled regression where the analyst cannot rule out strong unobservables.
  • Do not use covariates as bounds unless they are plausibly among the strongest predictors; “a particular moral hazard is that weak covariates can make the apparent bounds look better”.
  • Raises the bar for both skeptic and proponent. Warns against using sensitivity analysis to gatekeep publication.
  • Other obstacles to adoption (6.1): complex assumptions on confounder distribution; no simple reporting measure; difficulty linking to domain knowledge. In political science only 4 of 64 observational papers in 2017’s three top journals used formal sensitivity analysis (footnote 2).

Examples

# Reproduce Fig. 4: informal vs formal benchmark for a Z exactly like X
import numpy as np
rng = np.random.default_rng(3); n = 200_000
X, Z = rng.normal(size=n), rng.normal(size=n)
D = X + Z + rng.normal(size=n); Y = X + Z + rng.normal(size=n)
def fit(y, *c):
    A = np.column_stack([np.ones(n)] + list(c)); b = np.linalg.lstsq(A, y, rcond=None)[0]; return b, y - A @ b
b, r = fit(Y, D, X); tau, df = b[1], n - 3
se = r.std(ddof=3) / (fit(D, X)[1].std() * np.sqrt(df))
def pr2(y, x, *ctrl):
    ry = fit(y, *ctrl)[1] if ctrl else y - y.mean(); rx = fit(x, *ctrl)[1] if ctrl else x - x.mean()
    return np.corrcoef(ry, rx)[0, 1]**2
r2dx, r2yxd = pr2(D, X), pr2(Y, X, D)
adj = lambda ry, rd: tau - np.sqrt(ry*rd/(1-rd))*np.sqrt(df)*se
print("informal:", adj(r2yxd, r2dx))
r2dz = r2dx/(1-r2dx); r2zx = r2dx**2/((1-r2dx)*(1-r2dx))
eta2 = (1+np.sqrt(r2zx))**2/(1-r2zx)
print("formal  :", adj(eta2*r2yxd/(1-r2yxd), r2dz))

Connections

See Also

Cinelli Hazlett 2020 - Making Sense of Sensitivity - Overview, Sensitivity Analysis in Observational Studies, Instrumental Variables