GreedyExperimentalDesign: Greedy Experimental Design Construction

Computes experimental designs for a two-arm experiment with covariates via a number of methods. (0) complete randomization and randomization with forced-balance. (1) Greedily optimizing a balance objective function via pairwise switching. This optimization provides lower variance for the treatment effect estimator (and higher power) while preserving a design that is close to complete randomization. We return all iterations of the designs for use in a permutation test. (2) The second is via numerical optimization (via 'gurobi' which must be installed, see <>) a la Bertsimas and Kallus. (3) rerandomization, (4) Karp's method for one covariate, (5) exhaustive enumeration to find the optimal solution (only for small sample sizes) (6) Binary pair matching using the 'nbpMatching' library (7) Binary pair matching plus (1) to further optimize balance (8) Binary pair matching plus (3) to further optimize balance (9) Hadamard designs We also allow for three objective functions: Mahalanobis distance, Sum of absolute differences standardized and Kernel distances via the 'kernlab' library.

Version: 1.4
Depends: R (≥ 3.2.0), rJava (≥ 0.9-6), GreedyExperimentalDesignJARs (≥ 1.0)
Imports: Rcpp, checkmate, nbpMatching, survey, kernlab, graphics, grDevices, stats
LinkingTo: Rcpp
Published: 2020-12-07
Author: Adam Kapelner, David Azriel and Abba M. Krieger
Maintainer: Adam Kapelner <kapelner at>
License: GPL-3
NeedsCompilation: yes
SystemRequirements: Java (>= 7.0)
Citation: GreedyExperimentalDesign citation info
Materials: ChangeLog
CRAN checks: GreedyExperimentalDesign results


Reference manual: GreedyExperimentalDesign.pdf
Package source: GreedyExperimentalDesign_1.4.tar.gz
Windows binaries: r-devel:, r-release:, r-oldrel:
macOS binaries: r-release: GreedyExperimentalDesign_1.4.tgz, r-oldrel: GreedyExperimentalDesign_1.4.tgz
Old sources: GreedyExperimentalDesign archive


Please use the canonical form to link to this page.