Skip to contents

With P(obs) the share of outcomes seen and [K0, K1] the outcome's logical support, E[Y] lies in [E[Y|obs] P(obs) + K0 (1-P(obs)), E[Y|obs] P(obs) + K1 (1-P(obs))]. The width is EXACTLY (K1 - K0)(1 - P(obs)). Nothing about the missing data is assumed – that is the point, and the reason the bounds are wide: they are what the data alone say before any missing-at-random or selection assumption is spent.

Usage

morie_bnd_manski(y, observed, support, treatment = NULL)

Arguments

y

outcome; unobserved entries are ignored.

observed

logical, whether the outcome was seen.

support

the logical range c(K0, K1) – the one assumption.

treatment

optional binary treatment; switches to ATE bounds.

Value

list: lower, upper, width, p_observed, identified, or the ate_* keys plus contains_zero, n, method.

Details

With treatment supplied the same construction bounds each potential-outcome mean and differences them. The no-assumption ATE interval always has width exactly K1 - K0 and therefore ALWAYS contains zero: worst-case bounds never sign an effect on their own, and bounds that do have smuggled in an assumption.

References

Manski (1989), J. Human Resources 24:343-360; Manski (1990), AER P&P 80:319-323; Manski and Tamer (2002), Econometrica 70:519-546.

Examples

set.seed(1)
y <- stats::runif(100)
morie_bnd_manski(y, y > 0.2, c(0, 1))$width
#> [1] 0.13