Package: GreedyExperimentalDesign 1.6.1

GreedyExperimentalDesign: Greedy Experimental Design Construction

Computes experimental designs for two-arm experiments with covariates using multiple methods, including: (0) complete randomization and randomization with forced-balance; (1) greedy optimization of a balance objective function via pairwise switching; (2) numerical optimization via 'gurobi'; (3) rerandomization; (4) Karp's method for one covariate; (5) exhaustive enumeration for small sample sizes; (6) binary pair matching using 'nbpMatching'; (7) binary pair matching plus method (1) to further optimize balance; (8) binary pair matching plus method (3) to further optimize balance; (9) Hadamard designs; and (10) simultaneous multiple kernels. For the greedy, rerandomization, and related methods, three objective functions are supported: Mahalanobis distance, standardized sums of absolute differences, and kernel distances via the 'kernlab' library. This package is the result of a stream of research that can be found in Krieger, A. M., Azriel, D. A., and Kapelner, A. (2019). "Nearly Random Designs with Greatly Improved Balance." Biometrika 106(3), 695-701 <doi:10.1093/biomet/asz026>. Krieger, A. M., Azriel, D. A., and Kapelner, A. (2023). "Better experimental design by hybridizing binary matching with imbalance optimization." Canadian Journal of Statistics, 51(1), 275-292 <doi:10.1002/cjs.11685>.

Authors:Adam Kapelner [aut, cre], David Azriel [aut], Abba Krieger [aut]

GreedyExperimentalDesign_1.6.1.tar.gz
GreedyExperimentalDesign_1.6.1.zip(r-4.7)GreedyExperimentalDesign_1.6.1.zip(r-4.6)GreedyExperimentalDesign_1.6.1.zip(r-4.5)
GreedyExperimentalDesign_1.6.1.tgz(r-4.6-x86_64)GreedyExperimentalDesign_1.6.1.tgz(r-4.6-arm64)GreedyExperimentalDesign_1.6.1.tgz(r-4.5-x86_64)GreedyExperimentalDesign_1.6.1.tgz(r-4.5-arm64)
GreedyExperimentalDesign_1.6.1.tar.gz(r-4.7-arm64)GreedyExperimentalDesign_1.6.1.tar.gz(r-4.7-x86_64)GreedyExperimentalDesign_1.6.1.tar.gz(r-4.6-arm64)GreedyExperimentalDesign_1.6.1.tar.gz(r-4.6-x86_64)
GreedyExperimentalDesign_1.6.1.tgz(r-4.6-emscripten)
manual.pdf |manual.html
card.svg |card.png
GreedyExperimentalDesign/json (API)

# Install 'GreedyExperimentalDesign' in R:
install.packages('GreedyExperimentalDesign', repos = c('https://kapelner.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/kapelner/greedyexperimentaldesign/issues

Uses libs:
  • c++– GNU Standard C++ Library v3
  • openjdk– OpenJDK Java runtime, using Hotspot JIT

On CRAN:

Conda:

cppopenjdk

4.77 score 1 packages 22 scripts 593 downloads 53 exports 62 dependencies

Last updated from:19c6c5ff35. Checks:13 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-arm64OK197
linux-devel-x86_64OK203
source / vignettesOK226
linux-release-arm64OK201
linux-release-x86_64OK192
macos-release-arm64OK144
macos-release-x86_64OK369
macos-oldrel-arm64OK175
macos-oldrel-x86_64OK445
windows-develOK235
windows-releaseOK174
windows-oldrelOK183
wasm-releaseOK158

Exports:all_elements_same_cpp_wrapcomplete_randomizationcomplete_randomization_with_forced_balancedcompute_distance_matrix_cpp_wrapcompute_distance_matrix_gpucompute_gram_matrixcompute_kernel_matrix_gpucompute_multiple_kernel_objective_vals_gpucompute_objective_valcompute_objective_vals_gpucompute_randomization_metricscompute_randomization_metrics_gpucomputeBinaryMatchStructurecreate_all_ys_cpp_wrapfull_greedy_search_gpuged_gpu_availableged_gpu_devicesgen_pm_designs_cpp_wrapgen_var_cov_matrix_block_designsgenerate_block_design_cpp_wrapgenerate_stdzied_design_matrixgreedy_orthogonalization_curationgreedy_orthogonalization_curation2hadamardExperimentalDesignimbalanced_block_designsimbalanced_complete_randomizationinitBinaryMatchExperimentalDesignSearchObjectinitBinaryMatchFollowedByGreedyExperimentalDesignSearchObjectinitBinaryMatchFollowedByRerandomizationDesignSearchObjectinitGreedyExperimentalDesignObjectinitGreedyMultipleKernelExperimentalDesignObjectinitGurobiNumericalOptimizationExperimentalDesignObjectinitKarpExperimentalDesignObjectinitOptimalExperimentalDesignObjectinitRerandomizationExperimentalDesignObjectoptimize_asymmetric_treatment_assignmentplot_obj_val_by_iterplot_obj_val_order_statisticresultsBinaryMatchSearchresultsBinaryMatchThenGreedySearchresultsBinaryMatchThenRerandomizationSearchresultsGreedySearchresultsGurobiNumericalOptimizeSearchresultsKarpSearchresultsMultipleKernelGreedySearchresultsOptimalSearchresultsRerandomizationSearchsafe_cov_inversesearchTimeElapsedshuffle_cpp_wrapstandardize_data_matrixstartSearchstopSearch

Dependencies:backportsbase64encbslibcachemcheckmatecliclustercolorspacecpp11data.tabledigestevaluatefarverfastmapfontawesomeforeignFormulafsggplot2gluegridExtragtablehighrHmischtmlTablehtmltoolshtmlwidgetsisobandjquerylibjsonlitekernlabknitrlabelinglifecyclemagrittrMASSmemoisemimenbpMatchingnnetR6rappdirsRColorBrewerRcpprJavarlangrlistrmarkdownrpartrstudioapiS7sassscalesstringistringrtinytexvctrsviridisLitewithrxfunXMLyaml

Readme and manuals

Help Manual

Help pageTopics
Tests if a vector has all elements the sameall_elements_same_cpp_wrap
Implements complete randomization (without forced balance)complete_randomization
Implements forced balanced randomizationcomplete_randomization_with_forced_balanced
Computes a Euclidean-squared distance matrix rapidlycompute_distance_matrix_cpp_wrap
Compute a squared Euclidean distance matrix through the optional native backendcompute_distance_matrix_gpu
Gram Matrix Computationcompute_gram_matrix
Compute a kernel matrix through the optional native backendcompute_kernel_matrix_gpu
Compute multiple kernel objective values using GPUcompute_multiple_kernel_objective_vals_gpu
Computes Objective Value From Allocation Vectorcompute_objective_val
Compute kernel objective values through the optional native backendcompute_objective_vals_gpu
Computes Randomization Metrics (explained in paper) about a design algorithmcompute_randomization_metrics
Compute randomization metrics through the optional native backendcompute_randomization_metrics_gpu
Compute Binary Matching StrcuturecomputeBinaryMatchStructure
Create all binary Y's convenience function using a randomized designcreate_all_ys_cpp_wrap
Run a full greedy search on GPU (Upload Once, In-Place)full_greedy_search_gpu
Check for optional GPU supportged_gpu_available
List optional GPU devicesged_gpu_devices
Create PM designsgen_pm_designs_cpp_wrap
Computes varcov matrix for block designsgen_var_cov_matrix_block_designs
Generates homogeneous block design allocations rapidlygenerate_block_design_cpp_wrap
Generates a design matrix with standardized predictors.generate_stdzied_design_matrix
Curate More Orthogonal Vectors Greedilygreedy_orthogonalization_curation
Curate More Orthogonal Vectors Greedilygreedy_orthogonalization_curation2
Greedy Experimental Design SearchGreedyExperimentalDesign
Create a Hadamard DesignhadamardExperimentalDesign
Implements unequally allocated block designsimbalanced_block_designs
Implements unequally allocated complete randomizationimbalanced_complete_randomization
Begin a Binary Match SearchinitBinaryMatchExperimentalDesignSearchObject
Begin a Search for Binary Matching Followed by Greedy Switch DesignsinitBinaryMatchFollowedByGreedyExperimentalDesignSearchObject
Begin a Search for Binary Matching Followed by RerandomizationinitBinaryMatchFollowedByRerandomizationDesignSearchObject
Begin A Greedy Pair Switching SearchinitGreedyExperimentalDesignObject
Begin A Greedy Multiple Kernel Design SearchinitGreedyMultipleKernelExperimentalDesignObject
Begin Gurobi Optimized SearchinitGurobiNumericalOptimizationExperimentalDesignObject
Begin Karp SearchinitKarpExperimentalDesignObject
Begin a Search for the Optimal SolutioninitOptimalExperimentalDesignObject
Begin a Rerandomization SearchinitRerandomizationExperimentalDesignObject
Compute Optimal Number of Treatments/Controlsoptimize_asymmetric_treatment_assignment
Plots the objective value by iterationplot_obj_val_by_iter
Plots an order statistic of the object value as a function of number of searchesplot_obj_val_order_statistic
Plots a summary of a greedy search object objectplot.greedy_experimental_design_search
Plots a summary of a 'greedy_multiple_kernel_experimental_design' objectplot.greedy_multiple_kernel_experimental_design
Prints a summary of a 'binary_match_structure' objectprint.binary_match_structure
Prints a summary of a 'binary_then_greedy_experimental_design' objectprint.binary_then_greedy_experimental_design
Prints a summary of a 'binary_then_rerandomization_experimental_design' objectprint.binary_then_rerandomization_experimental_design
Prints a summary of a 'greedy_experimental_design_search' objectprint.greedy_experimental_design_search
Prints a summary of a 'greedy_multiple_kernel_experimental_design' objectprint.greedy_multiple_kernel_experimental_design
Prints a summary of a 'karp_experimental_design_search' objectprint.karp_experimental_design_search
Prints a summary of a 'optimal_experimental_design_search' objectprint.optimal_experimental_design_search
Prints a summary of a 'pairwise_matching_experimental_design_search' objectprint.pairwise_matching_experimental_design_search
Prints a summary of a 'rerandomization_experimental_design_search' objectprint.rerandomization_experimental_design_search
Binary Pair Match SearchresultsBinaryMatchSearch
Returns unique allocation vectors that are binary matchedresultsBinaryMatchThenGreedySearch
Returns unique allocation vectors that are binary matchedresultsBinaryMatchThenRerandomizationSearch
Returns the results (thus far) of the greedy design searchresultsGreedySearch
Query the Gurobi ResultsresultsGurobiNumericalOptimizeSearch
Returns the results (thus far) of the karp design searchresultsKarpSearch
Returns the results of a greedy multiple kernel searchresultsMultipleKernelGreedySearch
Returns the results (thus far) of the optimal design searchresultsOptimalSearch
Returns the results (thus far) of the rerandomization design searchresultsRerandomizationSearch
Computes a numerically stable inverse of a covariance matrixsafe_cov_inverse
Returns the amount of time elapsedsearchTimeElapsed
Shuffles a vector rapidlyshuffle_cpp_wrap
Standardizes the columns of a data matrix.standardize_data_matrix
Starts the parallelized greedy design search.startSearch
Stops the parallelized greedy design search.stopSearch
Prints a summary of a 'binary_match_structure' objectsummary.binary_match_structure
Prints a summary of a 'binary_then_greedy_experimental_design' objectsummary.binary_then_greedy_experimental_design
Prints a summary of a 'binary_then_rerandomization_experimental_design' objectsummary.binary_then_rerandomization_experimental_design
Prints a summary of a 'greedy_experimental_design_search' objectsummary.greedy_experimental_design_search
Prints a summary of a 'greedy_multiple_kernel_experimental_design' objectsummary.greedy_multiple_kernel_experimental_design
Prints a summary of a 'karp_experimental_design_search' objectsummary.karp_experimental_design_search
Prints a summary of a 'optimal_experimental_design_search' objectsummary.optimal_experimental_design_search
Prints a summary of a 'pairwise_matching_experimental_design_search' objectsummary.pairwise_matching_experimental_design_search
Prints a summary of a 'rerandomization_experimental_design_search' objectsummary.rerandomization_experimental_design_search