Franks 2019 - Logistic Selection with Exponential Family Mixtures

Summary

If the log-odds of treatment are linear in a sufficient statistic of the potential outcome and the observed outcome is an exponential family (or a mixture of them), then the missing-outcome distribution is available in closed form: the natural parameter shifts by and mixture weights are re-weighted. Condition 1 holds automatically and the normalising constant is tractable, so the observed-data model is fit once and the sensitivity analysis is a post-processing step.

Overview

Logistic selection (Eq. 7)

are the sensitivity parameters (how treatment depends marginally on each potential outcome); is identified by the data once is set. Parameters are assumed independent of covariates (extension: ).

Properties: for any giving a proper missing distribution, a unique satisfies Condition 1 (Robins et al. 2000); the missing distribution is free of (Rotnitzky et al. 2001; Scharfstein et al. 2003):

and are variation independent. The difficulty is computing ; Scharfstein et al. used the empirical CDF or MCMC on the joint space; the logistic-mEF class avoids it.

Sign convention

As printed, Eqs. 8, 10, 12 and 22 use in the tilt for both arms. Derivation from (7): the odds of the other arm is , which equals for but for . So with selection defined as for both arms, the missing control mean shifts by and the missing treated mean by in the normal case. The interpretation in Sec. 5.1 (Examples 5-7: means treated observed mean exceeds the unobserved) and the results in Fig. 2 are consistent with this strict version, so the printed ”+” for is best read as a notational shortcut where is defined through selection into the arm. Check your implementation with a simulation (the code below does this).

Main Content

Proposition 1 (single exponential family)

Let with natural parameter . Under logistic selection (7), if lies in the natural parameter space, the missing outcomes are in the same family,

Proposition 2 (mixtures of exponential families)

Let with common sufficient statistic . Under logistic selection with inside each component’s natural parameter space, the missing distribution is a -component mixture of the same families,

and . Includes Dirichlet-process mixtures and BART observed models.

Worked cases

Example 2: binary outcome

and selection . Then the unobserved arm is : an additive log-odds shift.

Example 3: normal outcome, quadratic selection

, sufficient statistics , selection . Then

With the standard deviations of observed and missing distributions coincide (mean shift ). Propriety requires (footnote 3).

Example 4: normal mixture

, : with

(This is the expansion of for a Gaussian component, i.e. the moment generating function of component at . The paper prints a different-looking exponent, , which does not match this derivation dimensionally, so the form above is this note’s own derivation.) Both the mixture weights and the component means move with : for components with larger mean or variance are up-weighted.

The same machinery handles semi-continuous data (zero-inflated income, see Franks 2019 - NHANES and Job Training Applications) and any Dirichlet-process mixture of exponential families.

Examples

import numpy as np
# Verify the Gaussian tilt: sample from the observed arm, importance-weight with exp(+-gamma*y), compare to closed form
rng = np.random.default_rng(1)
mu, sig, gamma = 3.0, 2.0, 0.15
y = rng.normal(mu, sig, 1_000_000)
for sign, name in [(+1, "control arm  (missing = treated)"), (-1, "treated arm  (missing = control)")]:
    w = np.exp(sign*gamma*y); w /= w.sum()
    print(name, "weighted mean", (w*y).sum(), " closed form", mu + sign*gamma*sig**2)

PyMC-style sketch (untested): fit the observed arm once, then for each posterior draw compute the shifted complete-data mean:

# mu_post: posterior draws of mu_t(x_i) per unit, sigma_post: draws of sigma_t, p_t: share of units observed in arm t
# ate_draw(gamma0, gamma1) = [p1*mu1_obs + (1-p1)*(mu1_miss)] - [p0*mu0_obs + (1-p0)*mu0_miss]
# mu1_miss = mu1 - gamma1*sigma1**2   (strict sign)    mu0_miss = mu0 + gamma0*sigma0**2

Connections

See Also

Franks 2019 - Flexible Sensitivity Analysis Without Observable Implications - Overview, Franks 2019 - Calibrating Sensitivity Parameters