Implements a heuristic algorithm to build blocks of a given size
aiming to maximize similarity within strata across multiple covariates.
The blocking structure can be used for causal inference and for sensitivity
analysis to unmeasured confounding. A stratified structure gives more flexibility
for using multiple instrumental variables and direct treatment vs. control
analysis as evidence factors.
Karmakar, B., Small, D. S., and Rosenbaum, P. R. (2018).
Rosenbaum, P. R. (2010)