Meager 2019 - Pooling Factors and Measuring External Validity

Summary

External validity is measured by , the posterior predictive distribution of the next site’s effect , and three pooling metrics: the conventional (eq. 6), a proximity-based “brute force” (eq. 7) and the Gelman-Pardoe (eq. 8). Values of mean no pooling and full pooling; above 0.5 signals more general than local information.

Overview

How the paper turns “how generalisable are these trials?” into numbers. This note defines each metric exactly, shows a worked computation with a runnable snippet, and records the interpretive rules.

Main Content

External validity and the predictive distribution

External validity via

External validity is often characterised by how well the average impact predicts effects across contexts (Pritchett and Sandefur 2015; Allcott 2015), measured by the heterogeneity in all the models. If a policymaker in Ethiopia learns as much from Mexico as from Ethiopia itself; if is large she learns little from studies outside her setting. A larger widens the posterior predictive distribution of the impact in the next comparable study - the model-conditional best guess of the impact of expanding access in a new location. The paper therefore reports and the full posteriors of and .

A drawback: it is unclear what counts as a large or small , so interpretable pooling metrics are added.

Pooling metrics

Equation (6) - Conventional pooling factor

For each site (Gelman and Hill 2007, p. 477):

It decomposes the potential variation in the estimate for site into genuine underlying uncertainty and sampling error . means is smaller than the sampling variation: substantial pooling and a “small” ; then is a better signal of than is, and a policymaker should update beliefs about the general effect from any one RCT. Concern: it conditions on sampling variation (so sample size influences it), which may be uncomfortable for frequentists.

Equation (7) - Brute-force (proximity) pooling factor

the weight that places the posterior mean of site ‘s effect between the posterior mean of the general effect and the no-pooling estimate . In the Rubin model it equals ; in richer models that pool several parameters (e.g. model 2) it differs. It is constrained to (rare excursions arise from shrinkage on other parameters).

Equation (8) - Generalised pooling factor (Gelman and Pardoe 2006)

Let be expectation under the full posterior and . Then

The denominator is the posterior average variance of the errors; the numerator is the variance of the posterior average error across sites. A relatively large numerator means little pooling (the error variance is mostly across site-specific blocks); a small numerator means substantial pooling. Gelman and Pardoe suggest indicates more general (“population-level”) than site-specific information.

All three have support ( no pooling, full pooling), are reported as simple averages across sites, and are computed for both treatment effects and control means - the latter because similar control means could make similar treatment effects merely reflect similar study locations (Meager 2019 - Heterogeneity, Pooling Results and Predictive Distributions).

Conjugate link between and shrinkage (derived)

In model (1) with known, the posterior of is normal with mean and variance , where . Proof sketch: combine the prior and likelihood; the posterior precision is and the posterior mean is the precision-weighted average. So is exactly the shrinkage weight toward the general effect, which is why eq. 7 coincides with eq. 6 in the Rubin model. (This identity is standard; the paper states only that eq. 7 equals eq. 6 in the Rubin model.)

Examples

Pooling factors and predictive intervals in a Rubin model (hypothetical data)

Setup. Seven sites with hypothetical estimates and standard errors (these are not Meager’s data - her per-site posteriors are only in figures and online appendix tables). Flat prior on , half-Cauchy prior on . Compute the grid posterior of , then at the posterior mean of , then the predictive . Solution. Posterior mean and posterior mean . , average . Quantiles (2.5, 25, 50, 75, 97.5%): : ; : . Full pooling: . Interpretation. Imprecise sites (large ) are shrunk heavily () while the precise sites (se 2.5 and 3) keep most of their own signal; the 95% predictive interval for a new site (width 20.9) is nearly twice as wide as the interval for (width 11.0) - the same qualitative gap as Meager’s Fig 5 vs OLS.

import numpy as np
from scipy import stats
 
tau_hat = np.array([24.0, -3.0, 9.0, 4.0, 15.0, 1.0, 5.0])   # hypothetical
se      = np.array([20.0,  6.0, 12.0, 2.5, 18.0, 3.0, 8.0])
tau_grid = np.linspace(-30, 40, 701); sig_grid = np.linspace(0.01, 40, 800)
T, S = np.meshgrid(tau_grid, sig_grid, indexing="ij")
# marginal likelihood: tau_hat_k ~ N(tau, se_k^2 + sigma^2)
loglik = sum(stats.norm.logpdf(th, T, np.sqrt(s**2 + S**2)) for th, s in zip(tau_hat, se))
logpost = loglik + stats.halfcauchy.logpdf(S, scale=10)
post = np.exp(logpost - logpost.max()); post /= post.sum()
 
sig2_mean = (post * S**2).sum()
omega = se**2 / (sig2_mean + se**2)                  # eq. (6)
print("omega:", omega.round(2), "mean:", omega.mean().round(2))
 
rng = np.random.default_rng(0)
idx = rng.choice(post.size, 200_000, p=post.ravel())
tau_new = rng.normal(T.ravel()[idx], S.ravel()[idx])  # posterior predictive for tau_{K+1}
print("tau_{K+1} quantiles:", np.percentile(tau_new, [2.5, 25, 50, 75, 97.5]).round(1))

Connections

Relevance to marketing measurement

For a set of channel lift tests, report per test and the posterior predictive interval for the next flight rather than just the average lift; a “portability score” near 1 says one market’s result is informative for another, near 0 says test each market.

See Also