Formula: adjusted estimate vs (R2_y~u.x, R2_d~u.x)
Details
The bias an omitted confounder U can produce is bounded by |bias| = se sqrt(df) sqrt(R2_yu R2_du / (1 - R2_du)), so a claim survives U exactly when the adjusted estimate keeps its sign. The robustness value RV_q is the common partial R2 at which the adjusted estimate is driven to zero: feeding RV back in as both R2 values returns an adjusted estimate of exactly zero, the identity used to check this implementation.
Examples
set.seed(1)
Chzlt(model = rnorm(50), treat = rbinom(50, 1, 0.5),
cov = matrix(rnorm(100), 50, 2), R2_yu = 0.1, R2_du = 0.1)
#> $estimate
#> [1] 0.1842935
#>
#> $tau
#> [1] 0.3472155
#>
#> $se
#> [1] 0.2278883
#>
#> $t
#> [1] 1.523621
#>
#> $df
#> [1] 46
#>
#> $bias
#> [1] 0.162922
#>
#> $adjusted_se
#> [1] 0.2304065
#>
#> $rv_q
#> [1] 0.2008255
#>
#> $r2_yd_x
#> [1] 0.04804124
#>
#> $robust
#> [1] 1
#>
#> $n
#> [1] 50
#>
#> $method
#> [1] "Cinelli-Hazlett omitted-variable-bias sensitivity"
#>
#> attr(,"class")
#> [1] "morie_rich_result" "list"
