Tutorials › Propensity Score Matching and Instrumental Variables › Linear Programming For Sharp Causal Bounds

Partial Identification and Bounds · Tutorial 426 of 699

Linear Programming For Sharp Causal Bounds

You will learn to formulate and solve linear programs for sharp causal-effect bounds when potential outcomes have finite support.

Advanced 13 min read

What You'll Learn

  • Define latent probability variables for joint potential outcomes and treatment assignment.
  • Translate observed treatment-outcome probabilities into linear constraints.
  • Express causal-effect lower and upper endpoints as optimization objectives.
  • Understand why feasible-program extrema are sharp under the stated restrictions.
  • Add linear assumptions and external moment benchmarks to tighten bounds.
  • Diagnose infeasibility, support errors, and solver outputs that do not establish identification.

From Partial Information to an Optimization Problem

When treatment is not randomized, the observed data reveal only one potential outcome for each unit: the outcome under the treatment actually received. If potential outcomes have finite support, the unknown population distribution can be represented by finitely many probabilities. Observed-data facts and stated assumptions then become constraints on those probabilities. A linear objective can select the smallest or largest causal effect compatible with all the constraints.

This formulation is useful when several restrictions must be imposed together. Instead of deriving separate bounds by hand and combining them informally, one writes down the full feasible set and optimizes over it. The result is sharp relative to the specified support, observed distribution, and restrictions: no compatible population has an effect outside the resulting interval, and each endpoint is attained by a compatible population.

Definition: Let \(D\in\{0,1\}\) be treatment assignment, and let \(Y(1)\) and \(Y(0)\) be the potential outcomes under treatment and control. Suppose \(Y(1)\in\mathcal{S}_1\) and \(Y(0)\in\mathcal{S}_0\), where both supports are finite. Define \(q_{d,y_0,y_1}=P(D=d,Y(0)=y_0,Y(1)=y_1)\). These nonnegative probabilities describe the joint population distribution of treatment and both potential outcomes. The average treatment effect is \(\mathrm{ATE}=E[Y(1)-Y(0)]=\sum_{d,y_0,y_1}(y_1-y_0)q_{d,y_0,y_1}\).

The observed-data probabilities are \(p_{d,y}=P(D=d,Y=y)\), where \(Y=Y(D)\) is the observed outcome. Consistency, \(Y=Y(D)\), implies the constraints \(p_{0,y}=\sum_{y_1}q_{0,y,y_1}\) for \(y\in\mathcal{S}_0\), and \(p_{1,y}=\sum_{y_0}q_{1,y_0,y}\) for \(y\in\mathcal{S}_1\). The sums range over the unobserved potential outcome. These equations match the observed distribution but do not reveal the missing potential outcomes.

A general linear program has the form \(Aq=b,\ Cq\leq h,\ q\geq0\), with any required normalization included. Observed-data equations form part of \(Aq=b\). Additional restrictions may set some probabilities to zero, impose linear inequalities, or specify linear moments. For example, monotone treatment response, \(Y(1)\geq Y(0)\), sets \(q_{d,y_0,y_1}=0\) whenever \(y_1<y_0\). A known mean of a potential outcome is also linear in \(q\).

To find the lower endpoint, minimize \(\sum (y_1-y_0)q_{d,y_0,y_1}\) subject to all constraints. To find the upper endpoint, maximize the same expression over that same feasible set. The treatment probability is already represented in the \(q\)'s; it should not be used to reweight the objective a second time.

Why the Endpoints Are Sharp

The optimization is not just a convenient way to calculate conservative limits. It represents all distributions allowed by the model. The justification has two directions.

1
Every compatible population gives a feasible point.
Its joint probabilities \(q_{d,y_0,y_1}\) are nonnegative, satisfy the observed-data equations by consistency, and satisfy any restrictions assumed in the analysis. Its ATE is exactly the objective evaluated at those probabilities.
2
Every feasible point describes a compatible population.
Draw \((D,Y(0),Y(1))\) from the distribution given by the feasible \(q\)'s, and observe \(Y=Y(D)\). The constraints ensure that this population has the required observed distribution and respects the restrictions.
3
The objective extrema are attainable.
The feasible set is a closed subset of the probability simplex. It is bounded because probabilities are nonnegative and sum to one. If it is nonempty, a linear objective attains its minimum and maximum on it. The feasible distributions at those optima therefore witness the two endpoints.

Moreover, every value between the endpoints is attainable. If \(q_L\) and \(q_U\) are feasible endpoint distributions, then \(q_\lambda=\lambda q_L+(1-\lambda)q_U\) is feasible for \(0\leq\lambda\leq1\), because the constraints are linear. Its objective is the same convex combination of the two endpoint values. Thus the identified set for the ATE is the entire interval between the program's minimum and maximum.

Worked Example: Unrestricted Bounds With Binary Outcomes

Consider hypothetical population probabilities for binary \(D\) and \(Y\). Suppose \(P(D=1,Y=1)=0.375\), \(P(D=1,Y=0)=0.125\), \(P(D=0,Y=1)=0.125\), and \(P(D=0,Y=0)=0.375\). These sum to one, so each treatment group has population mass \(0.500\). Assume only consistency and binary potential outcomes; impose no restriction linking \(Y(0)\) and \(Y(1)\).

Here \(q_{d,y_0,y_1}\) has \(2\times2\times2=8\) cells. The observed-data constraints are \(\sum_{y_0}q_{1,y_0,1}=0.375\), \(\sum_{y_0}q_{1,y_0,0}=0.125\), \(\sum_{y_1}q_{0,1,y_1}=0.125\), and \(\sum_{y_1}q_{0,0,y_1}=0.375\). All eight probabilities are nonnegative. The objective is \(\sum_{d,y_0,y_1}(y_1-y_0)q_{d,y_0,y_1}\).

For the minimum, the observed treated outcomes contribute \(0.375\) to the population mean of \(Y(1)\); the unobserved \(Y(1)\) values among controls can all be zero. Thus the smallest possible \(E[Y(1)]\) is \(0.375\). The observed control outcomes contribute \(0.125\) to \(E[Y(0)]\); the unobserved \(Y(0)\) values among treated can all be one, adding \(0.500\). The largest possible \(E[Y(0)]\) is \(0.625\). Therefore the minimum ATE is \(0.375-0.625=-0.250\).

For the maximum, set the unobserved \(Y(1)\) values among controls to one and the unobserved \(Y(0)\) values among treated to zero. Then \(E[Y(1)]=0.375+0.500=0.875\), while \(E[Y(0)]=0.125\). The maximum is \(0.875-0.125=0.750\). These assignments can be made within the unobserved cells independently, so both are feasible. The sharp identified interval is \([-0.250,0.750]\) outcome units. It is a range of compatible population effects, not a confidence interval.

Adding Restrictions Without Losing the Linear Structure

An assumption tightens bounds only if it removes some otherwise feasible distributions. In a finite-support model, many restrictions can be represented directly by deleting cells or adding linear constraints. The mathematical effect is to shrink the feasible set; the scientific question is whether the restriction is credible for the population and setting.

For example, monotone treatment response for binary outcomes allows only the potential-outcome pairs \((Y(0),Y(1))=(0,0),(0,1),(1,1)\). It rules out the pair \((1,0)\). This restriction is not learned from the observed table alone; it is an additional assumption. The next example shows how it changes the program and the endpoint calculation.

Worked Example: Imposing Monotone Treatment Response

Use the same hypothetical observed probabilities as above, but now assume \(Y(1)\geq Y(0)\) for every unit. For each treatment arm, the allowed types are \(00,01,11\), where the digits are \(Y(0),Y(1)\). Let \(a\) be the treated-arm mass of type \(01\), and \(b\) the control-arm mass of type \(01\).

Among treated units, observed \(Y(1)=0\) has mass \(0.125\), and monotonicity forces these units to be type \(00\). Observed \(Y(1)=1\) has mass \(0.375\), split between types \(01\) and \(11\). Thus the treated masses of \(00,01,11\) are \(0.125,a,0.375-a\), with \(0\leq a\leq0.375\).

Among controls, observed \(Y(0)=1\) has mass \(0.125\), necessarily type \(11\). Observed \(Y(0)=0\) has mass \(0.375\), split between types \(00\) and \(01\). Their masses are \(0.375-b,b,0.125\), with \(0\leq b\leq0.375\). Each type \(01\) has effect one and the other allowed types have effect zero. The objective is therefore to minimize or maximize \(a+b\). Its minimum is \(0\), attained at \(a=b=0\); its maximum is \(0.375+0.375=0.750\), attained at \(a=b=0.375\). The sharp interval under monotone response is \([0,0.750]\) outcome units. The nonnegative lower endpoint follows from the assumption, while the observed data limit how much population mass can have a positive effect.

The same construction accommodates external benchmarks or other linear moment information. A constraint such as \(E[Y(0)]=m_0\) becomes \(\sum_{d,y_0,y_1}y_0q_{d,y_0,y_1}=m_0\). It is important to encode the benchmark for the relevant population and variable: a conditional mean for controls is not interchangeable with a population mean of \(Y(0)\). The following example adds a hypothetical population benchmark to the unrestricted model.

Worked Example: Adding a Known Potential-Outcome Mean

Return to the binary-outcome table in the first example. Suppose an external source is assumed to establish the population mean \(E[Y(0)]=0.400\). In the linear program, add the constraint \(\sum_{d,y_0,y_1}y_0q_{d,y_0,y_1}=0.400\). The observed control group already contributes \(0.125\) to this mean, so the treated group's unobserved \(Y(0)\) values must contribute \(0.400-0.125=0.275\).

The mean \(E[Y(1)]\) is still \(0.375\) plus the contribution from controls' unobserved \(Y(1)\). That contribution can range from zero to the control population mass \(0.500\), without conflicting with the \(Y(0)\) constraint: the unobserved \(Y(1)\) values among controls can be chosen separately from the specified \(Y(0)\) values. Thus \(E[Y(1)]\in[0.375,0.875]\), and subtracting the fixed \(E[Y(0)]=0.400\) gives the sharp ATE interval \([-0.025,0.475]\).

For the lower endpoint, assign \(Y(1)=0\) to every control and allocate \(Y(0)=1\) to treated units with total mass \(0.275\). For the upper endpoint, assign \(Y(1)=1\) to every control and make the same allocation of treated \(Y(0)=1\). Both allocations preserve the observed treated \(Y(1)\) distribution and observed control \(Y(0)\) distribution. The benchmark therefore narrows the unrestricted interval, but it does not determine the ATE exactly.

Practical Checks, Alternatives, and Limits

Before interpreting endpoints, verify that the program describes the intended population and restrictions. Check that the observed cell probabilities are nonnegative and sum to one; confirm that each observed outcome is assigned to the potential outcome revealed by the treatment actually received; and check that the support includes every possible value allowed by the model. If additional constraints make the feasible set empty, at least one input, support choice, or assumption is incompatible with the others. Infeasibility is a diagnostic, not evidence that an optimizer has discovered causal information.

Numerical solvers can report an approximate optimum. Inspect constraint residuals, nonnegativity violations, and the reported feasibility and optimality tolerances. Recompute the objective from the returned \(q\)'s. On small problems, direct enumeration of feasible cells or hand algebra provides a useful check. A solver's endpoint alone does not identify a unique joint distribution: several different feasible distributions can attain the same endpoint.

For a simple problem, direct algebra may be quicker and easier to audit than software. Linear programming becomes valuable when many outcome levels, treatment groups, covariates, or benchmark restrictions create a large system that is difficult to reduce by hand. It can combine restrictions transparently, but it cannot rescue an unsupported assumption or turn an invalid benchmark into valid evidence.

The finite-support condition is substantive. A continuous outcome cannot be represented exactly by a finite list of support values unless the model itself justifies that restriction; discretizing it changes the problem and may change the bounds. Also, a linear program produces identified endpoints conditional on its supplied population probabilities and assumptions. Sampling uncertainty in estimated cell probabilities requires separate inferential treatment. The bounds do not, by themselves, quantify that uncertainty or establish that the assumptions are credible.

A common mistake is to treat an optimizer's endpoint as a point estimate of the causal effect, or to call it sharp without checking the model. The endpoint is the most extreme effect among distributions satisfying the encoded constraints. Sharpness is relative to those constraints and the stated support; if a relevant assumption was omitted, or an unjustified restriction was imposed, the resulting interval may not answer the intended causal question.

Key takeaway: Define one nonnegative probability for each treatment and potential-outcome state, encode observed data and defensible assumptions as linear constraints, and optimize the causal-effect objective in both directions. The resulting interval is sharp for that finite-support model when the feasible set is nonempty and correctly specified.

Check Your Understanding

Try each question, then compare your reasoning with the solutions.

  1. What does \(q_{1,y_0,y_1}\) represent, and which potential outcome is observed when \(D=1\)?
  2. Why does minimizing the ATE objective over the feasible set produce a sharp lower endpoint rather than merely a conservative bound?
  3. In the binary-outcome table above, under monotone treatment response, what are the possible ranges of \(a\) and \(b\), and what is the ATE objective in terms of them?
  4. What should be concluded if the linear program is infeasible after adding an external benchmark?

Solutions. (1) It is the population probability of treatment \(D=1\), control potential outcome \(Y(0)=y_0\), and treated potential outcome \(Y(1)=y_1\). The observed outcome is \(Y(1)\). (2) Every compatible population maps to a feasible point, and every feasible point constructs a compatible population. A minimizing feasible point therefore attains the smallest effect allowed by the model. (3) The observed cells imply \(0\leq a\leq0.375\) and \(0\leq b\leq0.375\); the ATE is \(a+b\). (4) The benchmark and other inputs cannot all hold in the specified model. Check units, target population, support, observed probabilities, and assumptions; do not interpret infeasibility as a causal result.

Clinical Biostats