R/bias-bounds.R
extreme_robustness_value.RdThis function computes the extreme robustness value of a target parameter estimated via debiased machine learning.
The extreme robustness value describes the minimum strength of association (parameterized in terms of partial R2) that omitted variables would need to have with the Riesz Representer alone so that the confidence bounds for the target parameter includes zero (or another threshold of interest).
extreme_robustness_value(...)
# S3 method for class 'dml'
extreme_robustness_value(model, theta = 0, alpha = 0.05, rho2 = 1, ...)
# S3 method for class 'dml.bounds'
extreme_robustness_value(model, theta = 0, alpha = 0.05, rho2 = 1, ...)arguments passed to other methods.
an object of class dml or dml.bounds.
the null hypothesis of interest for the target parameter theta. Default is theta =0 (zero null hypothesis).
significance level. Default is alpha = 0.05.
degree of adversity. Default is rho2 = 1, which assumes the maximum degree of adversity of confounding.
Chernozhukov, V., Cinelli, C., Newey, W., Sharma, A., and Syrgkanis, V. (2026). "Long Story Short: Omitted Variable Bias in Causal Machine Learning." Review of Economics and Statistics. doi:10.1162/REST.a.1705
Wang, J., Sant'Anna, P. H. C., Chernozhukov, V., and Cinelli, C. (2026). "Omitted Variable Bias in Difference-in-Differences Designs." Working Paper. (Conditional ATT/ATU formulation.)
data("pension")
set.seed(3); idx <- sample(nrow(pension), 2000)
y <- pension$net_tfa[idx]
d <- pension$e401[idx]
x <- model.matrix(~ -1 + age + inc + educ + fsize + marr + twoearn + pira + hown,
data = pension[idx, ])
fit <- dml(y, d, x, model = "plm", cf.folds = 2, cf.seed = 3, verbose = FALSE)
# extreme robustness value: confounding acting on the Riesz representer alone
extreme_robustness_value(fit, theta = 0, alpha = 0.05)
#> ate
#> 0.004228202