Math for Causal Inference

Day 79. Bounds & Partial Identification (Manski, Lee)

When the assumptions needed for a point estimate are not credible, report what the data alone can say. Worst-case (Manski) bounds use only the outcome's range, monotonicity assumptions shrink them, and Lee bounds handle outcomes that are missing because of treatment, such as wages observed only for the employed.

Video coming soon
Learning outcomes
  • ●Derive worst-case bounds on mean potential outcomes and the ATE for a bounded outcome.
  • ●Tighten bounds with monotone treatment response and monotone treatment selection.
  • ●Compute Lee bounds by trimming when treatment affects who is observed.
  • ●Report identified sets and their confidence intervals in applied work.
2-HOUR SESSION PLAN
Theory 25′Warm-up (1–5) 20′Proofs (6–10) 35′Applied (11–15) 25′Python & Lab 15′
Colab notebook (.ipynb) Jump to the simulator

Theory

The missing-data problem

For a binary treatment DD, E[Y(1)]=E[Y∣D=1]P(D=1)+E[Y(1)∣D=0]P(D=0)E[Y(1)] = E[Y \mid D = 1]P(D = 1) + E[Y(1) \mid D = 0]P(D = 0). The data reveal everything except E[Y(1)∣D=0]E[Y(1) \mid D = 0] (and, symmetrically, E[Y(0)∣D=1]E[Y(0) \mid D = 1]).

Worst-case (Manski) bounds

If Y∈[yL,yU]Y \in [y_L, y_U], the unobserved term lies in [yL,yU][y_L, y_U], so

E[Y(1)]∈[E[Y∣D=1]p+yL(1−p),    E[Y∣D=1]p+yU(1−p)],p=P(D=1),E[Y(1)] \in \big[E[Y \mid D = 1]p + y_L(1 - p),\;\; E[Y \mid D = 1]p + y_U(1 - p)\big], \quad p = P(D = 1),

and similarly for E[Y(0)]E[Y(0)]. The ATE lower bound is the lower bound of E[Y(1)]E[Y(1)] minus the upper bound of E[Y(0)]E[Y(0)]; the ATE upper bound is the upper bound of E[Y(1)]E[Y(1)] minus the lower bound of E[Y(0)]E[Y(0)]. Their width is always yU−yLy_U - y_L, and they always contain zero: data alone cannot sign the effect.

Monotonicity assumptions (Manski and Pepper)

  • Monotone treatment response (MTR): Y(1)≥Y(0)Y(1) \ge Y(0) for everyone. The ATE is at least 0.
  • Monotone treatment selection (MTS): those who choose treatment have weakly higher potential outcomes: E[Y(d)∣D=1]≥E[Y(d)∣D=0]E[Y(d) \mid D = 1] \ge E[Y(d) \mid D = 0]. Then the naive difference in means is an upper bound on the ATE.
  • Together: 0≤ATE≤E[Y∣D=1]−E[Y∣D=0]0 \le ATE \le E[Y \mid D = 1] - E[Y \mid D = 0].

Lee bounds for selective attrition

In a randomised experiment, the outcome (wages) is observed only for some units (the employed), and treatment changes who is observed. Assume monotonicity of selection: treatment can only make units observed, never unobserved. Then observed treated units contain all "always-observed" units plus some units observed only because of treatment, a share

p=q1−q0q1p = \frac{q_1 - q_0}{q_1}

of treated respondents, where qdq_d is the response rate in arm dd. Trimming the top pp (or bottom pp) of the treated respondents' outcome distribution gives the lowest (or highest) possible mean for always-observed units; subtracting the control respondents' mean bounds the effect for the always-observed.

Inference

Sample bounds are estimates. For a 95% confidence interval covering the true parameter (not the whole set), Imbens and Manski use [L^−c SE⁡L,  U^+c SE⁡U][\hat L - c\,\operatorname{SE}_L,\; \hat U + c\,\operatorname{SE}_U] with cc between 1.645 (wide sets) and 1.96 (narrow sets).

Part 1 · Warm-up

Exercise 1 · Worst-case bounds

Binary outcome. P(D=1)=0.4P(D = 1) = 0.4, P(Y=1∣D=1)=0.7P(Y = 1 \mid D = 1) = 0.7, P(Y=1∣D=0)=0.5P(Y = 1 \mid D = 0) = 0.5. Bound E[Y(1)]E[Y(1)], E[Y(0)]E[Y(0)] and the ATE.

Show solution

Step 1. E[Y(1)]∈[0.7(0.4)+0,  0.28+0.6]=[0.28,0.88]E[Y(1)] \in [0.7(0.4) + 0,\; 0.28 + 0.6] = [0.28, 0.88].

Step 2. E[Y(0)]∈[0.5(0.6)+0,  0.30+0.4]=[0.30,0.70]E[Y(0)] \in [0.5(0.6) + 0,\; 0.30 + 0.4] = [0.30, 0.70].

Step 3. ATE ∈[0.28−0.70,  0.88−0.30]=[−0.42,0.58]\in [0.28 - 0.70,\; 0.88 - 0.30] = [-0.42, 0.58].

Answer: width 1, containing zero.

Exercise 2 · Width

Check that the width in Exercise 1 equals yU−yLy_U - y_L.

Show solution

Step 1. 0.58−(−0.42)=1.00=1−00.58 - (-0.42) = 1.00 = 1 - 0.

Exercise 3 · Adding MTR

Under MTR, what are the ATE bounds in Exercise 1?

Show solution

Step 1. MTR implies ATE≥0ATE \ge 0, and it does not lower the upper bound here.

Answer: [0,0.58][0, 0.58].

Exercise 4 · Adding MTS

Under MTS (and MTR), what are the bounds?

Show solution

Step 1. MTS: ATE ≤ naive difference 0.7−0.5=0.20.7 - 0.5 = 0.2.

Answer: [0,0.2][0, 0.2].

Exercise 5 · Lee's trimming share

Response rates are 0.9 (treated) and 0.8 (control). What share of treated respondents is trimmed?

Show solution

Step 1. p=(0.9−0.8)/0.9≈0.111p = (0.9 - 0.8)/0.9 \approx 0.111.

Answer: about 11% of treated respondents.

Part 2 · Proofs

Exercise 6 · Worst-case bounds

Prove the bounds on E[Y(1)]E[Y(1)] and that they are sharp (attainable).

Show solution

Step 1. Law of total expectation: E[Y(1)]=E[Y∣D=1]p+E[Y(1)∣D=0](1−p)E[Y(1)] = E[Y \mid D = 1]p + E[Y(1) \mid D = 0](1 - p), using consistency for the treated.

Step 2. E[Y(1)∣D=0]∈[yL,yU]E[Y(1) \mid D = 0] \in [y_L, y_U] since Y(1)Y(1) is bounded.

Step 3. Substitute the extremes. Each value in the interval is attained by a distribution of Y(1)Y(1) among the untreated that is consistent with the data, so the bounds are sharp. ■\blacksquare

Exercise 7 · The width is always the range

Prove that the width of the ATE bounds is yU−yLy_U - y_L.

Show solution

Step 1. Width of the E[Y(1)]E[Y(1)] bounds: (yU−yL)(1−p)(y_U - y_L)(1 - p); of E[Y(0)]E[Y(0)]: (yU−yL)p(y_U - y_L)p.

Step 2. ATE width = sum of the two widths =(yU−yL)(1−p+p)= (y_U - y_L)(1 - p + p). ■\blacksquare

Exercise 8 · MTS gives an upper bound

Prove that under MTS, ATE≤E[Y∣D=1]−E[Y∣D=0]ATE \le E[Y \mid D = 1] - E[Y \mid D = 0].

Show solution

Step 1. MTS for d=1d = 1: E[Y(1)∣D=0]≤E[Y(1)∣D=1]=E[Y∣D=1]E[Y(1) \mid D = 0] \le E[Y(1) \mid D = 1] = E[Y \mid D = 1], so E[Y(1)]≤E[Y∣D=1]E[Y(1)] \le E[Y \mid D = 1].

Step 2. MTS for d=0d = 0: E[Y(0)∣D=1]≥E[Y(0)∣D=0]=E[Y∣D=0]E[Y(0) \mid D = 1] \ge E[Y(0) \mid D = 0] = E[Y \mid D = 0], so E[Y(0)]≥E[Y∣D=0]E[Y(0)] \ge E[Y \mid D = 0].

Step 3. Subtract. ■\blacksquare

Exercise 9 · Lee bounds

Assume random assignment and monotone selection (S(1)≥S(0)S(1) \ge S(0)). Show that treated respondents are a mixture of always-observed units (share 1−p1 - p) and units observed only if treated (share pp), and that trimming the top pp gives a lower bound for the always-observed treated mean.

Show solution

Step 1. Control respondents have S(0)=1S(0) = 1: always-observed only (by monotonicity). Their share of the population is q0q_0.

Step 2. Treated respondents have S(1)=1S(1) = 1: always-observed (q0q_0) plus marginal units (q1−q0q_1 - q_0); the marginal share among them is pp.

Step 3. The always-observed treated outcomes are an unknown (1−p)(1 - p) part of the treated respondents' distribution; the smallest possible mean of such a part is the mean of the lowest 1−p1 - p (trim the top pp), the largest is the mean after trimming the bottom pp.

Step 4. Control respondents' mean is the always-observed untreated mean. Subtract. ■\blacksquare

Exercise 10 · Covering the parameter, not the set

Explain why [L^−1.645 SE⁡,  U^+1.645 SE⁡][\hat L - 1.645\,\operatorname{SE},\; \hat U + 1.645\,\operatorname{SE}] covers the true parameter with probability at least about 95% when the identified set is wide.

Show solution

Step 1. The parameter lies in [L,U][L, U]. If it is near LL, only the lower end can miss, which happens with probability about 5% using the one-sided 1.645.

Step 2. When the set is wide, the parameter cannot be near both ends at once, so at most one tail matters.

Answer: coverage of the parameter is about 95%; for narrow sets the critical value rises towards 1.96 (Imbens–Manski). ■\blacksquare

Part 3 · Applied

Exercise 11 · Job training and wages

In a randomised training programme, 90% of the treatment group and 80% of the control group are employed (wages observed). Treated workers' wages are uniform on $0–$900 a week; control workers' mean wage is $380. Compute Lee bounds on the wage effect for always-employed workers.

Show solution

Step 1. Trim share p=0.111p = 0.111; with a uniform on [0, 900], that is the top or bottom $100.

Step 2. Trim the top: mean of [0, 800] = $400. Trim the bottom: mean of [100, 900] = $500.

Step 3. Bounds: [400−380,  500−380]=[20,120][400 - 380,\; 500 - 380] = [20, 120].

Answer: the programme raised weekly wages of always-employed workers by $20–$120; the naive comparison ($450 − $380 = $70) mixes in newly employed workers.

Exercise 12 · Smoking and a health outcome

In a survey, 25% smoke; 30% of smokers and 15% of non-smokers report a chronic respiratory condition. Give worst-case bounds on the effect of smoking on the condition, then bounds under MTR and MTS.

Show solution

Step 1. E[Y(1)]∈[0.075,0.825]E[Y(1)] \in [0.075, 0.825]; E[Y(0)]∈[0.1125,0.3625]E[Y(0)] \in [0.1125, 0.3625].

Step 2. Worst case: [0.075−0.3625,  0.825−0.1125]=[−0.2875,0.7125][0.075 - 0.3625,\; 0.825 - 0.1125] = [-0.2875, 0.7125].

Step 3. MTR (smoking never improves respiratory health) and MTS (smokers would have worse outcomes either way): [0,0.30−0.15]=[0,0.15][0, 0.30 - 0.15] = [0, 0.15].

Answer: data alone: anything from −29 to +71 points; with two plausible monotonicity assumptions: between 0 and 15 points.

Exercise 13 · Returns to schooling under MTR and MTS

Mean log wages are 2.9 for college graduates and 2.5 for others. Under MTR (schooling never lowers wages) and MTS (people who chose college would earn more at any schooling level), bound the effect of college on log wages.

Show solution

Step 1. MTR: effect ≥ 0.

Step 2. MTS: effect ≤ naive difference 2.9−2.5=0.42.9 - 2.5 = 0.4.

Answer: between 0 and 0.4 log points; Manski and Pepper report bounds of this kind as a transparent alternative to IV.

Exercise 14 · Missing outcomes in a vaccine trial

In a trial with 10,000 per arm, 50 infections are observed among 9,500 followed-up vaccinated participants and 200 among 9,600 placebo participants. Compute worst-case bounds on the infection risk in each arm, treating lost participants as all infected or all uninfected.

Show solution

Step 1. Vaccine arm: [50/10,000,  (50+500)/10,000]=[0.005,0.055][50/10{,}000,\; (50 + 500)/10{,}000] = [0.005, 0.055].

Step 2. Placebo: [200/10,000,  (200+400)/10,000]=[0.020,0.060][200/10{,}000,\; (200 + 400)/10{,}000] = [0.020, 0.060].

Step 3. Risk difference bounds: [0.005−0.060,  0.055−0.020]=[−0.055,0.035][0.005 - 0.060,\; 0.055 - 0.020] = [-0.055, 0.035].

Answer: worst-case bounds cannot even sign the effect, because attrition (5% and 4%) is large relative to infection rates; reducing loss to follow-up matters as much as sample size.

Exercise 15 · When to report bounds

A ministry asks for the effect of a microcredit programme with voluntary take-up and no instrument. What should be delivered?

Show solution

Step 1. Worst-case bounds (usually uninformative, but honest).

Step 2. Bounds under explicit, defensible assumptions (MTR if credit cannot reduce profits on average; MTS if more entrepreneurial households select in), showing how each assumption narrows the set.

Step 3. Point estimates under stronger assumptions (selection on observables) alongside, with sensitivity analysis (Day 95).

Answer: a ladder from weak to strong assumptions, so the reader sees what each conclusion rests on.

Verify in Python

import numpy as np

def manski(p, m1, m0, lo=0, hi=1):
    y1 = (m1 * p + lo * (1 - p), m1 * p + hi * (1 - p)); y0 = (m0 * (1 - p) + lo * p, m0 * (1 - p) + hi * p)
    return np.round(y1, 4), np.round(y0, 4), np.round((y1[0] - y0[1], y1[1] - y0[0]), 4)
for name, args in [("Ex 1", (.4, .7, .5)), ("Ex 12", (.25, .30, .15))]:
    y1, y0, ate = manski(*args); print(f"{name}: E[Y(1)] {y1.tolist()}, E[Y(0)] {y0.tolist()}, ATE {ate.tolist()}")
print("Ex 14:", np.round([50 / 1e4 - 600 / 1e4, 550 / 1e4 - 200 / 1e4], 4).tolist())

# Lee bounds: Exercise 11 by formula, then a simulated experiment
p = (.9 - .8) / .9
print(f"Ex 11: trim share {p:.3f}, bounds [{900 * (1 - p) / 2 - 380:.0f}, {(900 * p + 900) / 2 - 380:.0f}]")
rng = np.random.default_rng(79); n = 400_000
Z = rng.random(n) < .5
t = rng.choice([0, 1, 2], n, p=[.8, .1, .1])          # always employed, employed only if treated, never
w0 = rng.lognormal(6, .5, n)
w = np.where(Z, 1.1 * w0, w0); w = np.where(t == 1, .7 * w, w)
S = (t == 0) | ((t == 1) & Z)
q1, q0 = S[Z].mean(), S[~Z].mean(); p = (q1 - q0) / q1
wt = np.sort(w[Z & S]); k = int(round(p * len(wt))); c = w[~Z & S].mean()
print(f"trim {p:.3f}; Lee bounds [{wt[:len(wt) - k].mean() - c:.1f}, {wt[k:].mean() - c:.1f}]; "
      f"truth for always-employed {(.1 * w0[t == 0]).mean():.1f}; naive {w[Z & S].mean() - c:.1f}")

Key takeaways

  • With a bounded outcome and no assumptions, the ATE is bounded by an interval of width yU−yLy_U - y_L that contains zero.
  • Monotone response and selection assumptions narrow the bounds transparently; MTS makes the naive difference an upper bound.
  • Lee bounds trim the treated respondents' distribution to handle outcomes observed only for some units, assuming treatment only adds respondents.

Simulation Lab: Manski & Lee Bounds

Open full screen →

Worst-case bounds, monotonicity assumptions that shrink them, and Lee bounds by trimming.

-1-0.500.51naive 0.20ATE ∈ [-0.420, 0.580]
$0$900treated workers' wages (uniform); trim 11.1% from one endeffect for always-employed ∈ [20, 120]
naive difference
70
Lee bounds width
100
= trim share × wage range

Left: worst-case bounds on the average effect of a programme on a binary outcome use only the data and the outcome's range [0, 1]; their width is always 1. Monotone treatment response (no one is harmed) raises the lower bound to 0; monotone treatment selection (participants would do better anyway) caps the upper bound at the naive difference. Right: Lee bounds when wages are seen only for the employed and treatment raises employment.

Day 78Day 80