Principal Stratification and Weak Instruments

Python · PyMC · ArviZ  ·  Sommer–Zeger vitamin A trial, 23,682 children

Compliance Types as Latent Classes

The noncompliance notebook recovered the complier effect in the Sommer–Zeger vitamin A trial with Bloom's estimator, and confirmed it is numerically identical to two-stage least squares. The quantity is the complier average causal effect (CACE) — the effect among children who would take the vitamin if offered — and it is recovered by dividing one intention-to-treat contrast by another: ITTY{\rm ITT}_Y, the effect of being assigned the vitamin on mortality, over ITTD{\rm ITT}_D, the effect of being assigned it on actually taking it. That is correct, and it is a ratio — one estimate divided by another, which is a more fragile object than a difference. When the denominator is large, as it is here at ITTD=0.80{\rm ITT}_D = 0.80, nobody notices. The question is what happens when it is not, and the answer turns out to be less lurid and more useful than the standard warning suggests.

CACE=ITTYITTD=2.580.80=3.23 per 1,000\text{CACE} = \frac{{\rm ITT}_Y}{{\rm ITT}_D} = \frac{-2.58}{0.80} = -3.23 \text{ per 1,000}

The Bayesian route approaches the same problem from the other end. Compliance type is a latent class: each child is a complier or a never-taker, and which one is never observed. The trial has one-sided noncompliance — children assigned vitamin A could decline it, controls had no access — so the treated arm separates cleanly into compliers who took it and never-takers who refused, while the control arm is a mixture of the two, indistinguishable. That mixture is the entire difficulty, and principal stratification (Frangakis & Rubin 2002; Imbens & Rubin 1997) writes it down explicitly rather than dividing it away.

Writing πc\pi_c for the complier share, μc1,μc0\mu_{c1}, \mu_{c0} for complier mortality under treatment and control, and μn\mu_n for never-taker mortality, the three observed cells are pure, pure and mixed respectively. The complier effect is μc1μc0\mu_{c1}-\mu_{c0}, and the exclusion restriction is what permits never-taker mortality to be shared across arms. The trial enters as its published cell counts — 9,675 took it with 12 deaths, 2,419 refused with 34 deaths, 11,588 controls with 74 deaths — the same table the frequentist notebook expands into individual records.

observed cellwho is in itmortality
assigned, took itcompliers onlyμc1
assigned, refusednever-takers onlyμn
controla mixture, indistinguishableπcμc0 + (1−πcn

On the real trial the two agree, which is the check rather than the finding: the posterior gives −3.15 with 95% interval [−5.44, −0.86] against Bloom's −3.23, and Pr(CACE<0)=0.997\Pr(\text{CACE} < 0) = 0.997. A strong instrument makes the ratio well behaved, and any correct model has to reproduce it.

What the model adds is structural. Never-taker mortality comes out near 14 per 1,000 against complier-under-control mortality of 4.5 — never-takers were dying at 3.2 times the rate compliers would have died at untreated. That is precisely the selection which makes as-treated and per-protocol comparisons biased, and here it is a parameter with a posterior rather than something read off the difference between two published rates.

What Actually Degrades When the Instrument Weakens

The real trial has an unusually cooperative instrument. Most encouragement designs do not: a mailing, a reminder or a small incentive might move take-up by ten or twenty points rather than eighty. So the notebook simulates trials with a known complier effect at compliance rates from 0.80 down to 0.05 and grades both approaches on the two things that matter — does the interval cover the truth, and how wide is it. Both are 95% intervals computed on the same simulated trials, so the comparison is like for like.

Bloom's estimator does not break. Its coverage is at nominal across the whole range, and its median estimate never leaves the truth. Nothing about it becomes invalid. What fails is informativeness: the interval widens from 7.98 to 165.50 around an effect of size 3, and at the weakest compliance rate nearly two-thirds of trials return an estimate exceeding 20 per 1,000 in magnitude.

ITTDmedian estimatemedian widthcoverage|est| > 20CV of ITTD
0.80−2.937.9895.9%0.0%0.6%
0.50−3.2614.4294.9%0.0%1.3%
0.30−2.8325.7195.2%0.2%2.0%
0.20−3.2939.6695.5%5.7%2.6%
0.10−3.3481.6495.9%33.9%3.9%
0.05−3.44165.5095.2%64.6%5.6%

True effect −3.0 per 1,000; 2,000 simulated trials per row, 6,000 children per arm.

The last column explains why the textbook pathology never arrives. That story — a ratio whose sampling distribution turns heavy-tailed because the denominator might be near zero — requires the denominator to be uncertain relative to its own size. At 6,000 children per arm the coefficient of variation of ITT^D\widehat{\rm ITT}_D tops out at 5.6%, so it never approaches zero. The damage is pure 1/ITTD1/{\rm ITT}_D amplification of noise that was already in the numerator, which is enough to wreck the estimator without any distributional drama.

The Bayesian version does not rescue it, and how it fails is the interesting part. It over-covers — 100% where 95% was asked for, at four of six compliance rates — while returning intervals roughly a third the width of Bloom's. Over-coverage is a calibration failure too, in the safe direction: the intervals are conservative rather than sharper. All 600 fits converged, none exceeding an r-hat of 1.01 — the standard check that independent sampler chains have settled on the same distribution, where anything above about 1.01 says they have not.

ITTDprincipal stratificationBloom ratio
widthcoveragewidthcoverage
0.807.9894.0%7.9895.9%
0.5013.5495.0%14.4294.9%
0.3020.27100.0%25.7195.2%
0.2026.70100.0%39.6695.5%
0.1040.77100.0%81.6495.9%
0.0560.71100.0%165.5095.2%

Bayesian column from 100 simulated trials per row (Monte Carlo error on coverage at most ±2.4 points), Bloom from 2,000.

Where the Narrowness Comes From

Narrower and covering more means information arrived from somewhere other than the data, and the obvious suspect is the prior: Beta(1,50){\rm Beta}(1,50) on each mortality rate rules out values the ratio estimator happily entertains. That is testable rather than assertable, so the weakest instrument is refitted under three priors of increasing vagueness.

prior on each rateprior mean mortalitymedian widthcoverage
Beta(1, 50)20 per 1,00057.76100.0%
Beta(1, 20)48 per 1,00081.5698.3%
Beta(1, 5)167 per 1,00097.9396.7%
Bloom ratio165.5095.2%

All at ITTD = 0.05, the weakest instrument in the sweep; true effect −3.0 per 1,000.

The prior is confirmed as part of the answer: widening it widens the interval monotonically and walks coverage back down toward nominal, so the over-coverage above is substantially a prior artefact.

It is not the whole answer, though. Even Beta(1,5){\rm Beta}(1,5) — prior mean mortality of 167 per 1,000, vaguer than anyone would defend for children — leaves the interval at 97.9 against the ratio's 165.5. Widening the prior as far as is remotely reasonable closes only about a third of the gap. The remainder is the model structure: writing the control arm as an explicit mixture and imposing the exclusion restriction extracts something division does not, and that part survives however vague the prior is made.

The general lesson is that an estimator can be entirely valid and entirely useless at the same time, and coverage alone will not distinguish the two. Bloom's interval passes every calibration check while being far too wide to support a decision; the Bayesian interval is narrower, and part of that narrowness is borrowed from the prior rather than earned from the data. Which failure is preferable is a question about how much you are willing to assume, which is the question this group is arranged around.

Where this sits

The frequentist treatment establishes CACE and its identity with 2SLS, assumed rather than re-derived here. The latent-class structure is the machinery of the latent-class arc doing causal work, applied to compliance rather than to survey responses. And the weak-instrument problem returns in earnest whenever an instrument is found rather than assigned — it appears here in its mildest possible form, on a randomized encouragement with thousands of children per arm.

Notebook

Data

No download accompanies this page. The vitamin A trial enters as its six published cell counts — 9,675 took it with 12 deaths, 2,419 refused with 34 deaths, 11,588 controls with 74 deaths — which are written out in the notebook's first cell. Everything in the weak-instrument sections is simulated from seeded generators, so the whole page reproduces from the notebook alone.

References