
Worst-case identification bounds for a binary outcome under two sentences
Source:R/sentence_bounds.R
morie_sentence_effect_bounds.RdEach person receives one sentence and reveals only the outcome under it.
With no assumption on how sentences were assigned, the probability of
the outcome under sentence t is identified only up to
\([P(y=1, z=t),\; P(y=1, z=t) + P(z \ne t)]\), both ends attainable
(Research.P11.Pop.outcome_bounds); the contrast between the two
sentences lies in an interval of width exactly one that always contains
zero (ate_width_one, ate_contains_zero). The interval is
the honest report of an observational sentencing comparison before any
selection assumption is added; assumptions narrow it, data alone cannot.
Arguments
- y
Binary outcome per person (0/1, e.g. reconviction within two years).
- z
Sentence per person, a vector with exactly two distinct values.
- weights
Optional non-negative weights.
- contrast
Which of the two sentence values is the treatment (default the second in sorted order); the other is the comparison.
Value
A list with levels, joint and pz per sentence,
outcome_bounds (a 2 x 2 matrix, one row per sentence), ate_bounds,
ate_width (always 1), naive_difference (the difference of
observed rates, which the interval always contains) and theorems.
Examples
set.seed(1)
z <- sample(c("community", "custody"), 500, replace = TRUE, prob = c(0.6, 0.4))
y <- rbinom(500, 1, ifelse(z == "custody", 0.55, 0.35))
morie_sentence_effect_bounds(y, z)
#> $levels
#> comparison treatment
#> "community" "custody"
#>
#> $joint
#> community custody
#> 0.208 0.192
#>
#> $pz
#> community custody
#> 0.624 0.376
#>
#> $outcome_bounds
#> lower upper
#> community 0.208 0.584
#> custody 0.192 0.816
#>
#> $ate_bounds
#> lower upper
#> -0.392 0.608
#>
#> $ate_width
#> [1] 1
#>
#> $naive_difference
#> [1] 0.177305
#>
#> $theorems
#> [1] "Research.P11.Pop.outcome_bounds" "Research.P11.Pop.lower_attained"
#> [3] "Research.P11.Pop.upper_attained" "Research.P11.Pop.ate_width_one"
#> [5] "Research.P11.Pop.ate_contains_zero"
#>