This method creates an object of type greedy_experimental_design and will immediately initiate
a search through $1_T$ space for forced balance designs. For debugging, you can use set the seed
parameter and num_cores = 1
to be assured of deterministic output.
initGreedyExperimentalDesignObject(
X = NULL,
nT = NULL,
max_designs = 10000,
objective = "mahal_dist",
indicies_pairs = NULL,
Kgram = NULL,
wait = FALSE,
start = TRUE,
max_iters = Inf,
semigreedy = FALSE,
diagnostics = FALSE,
num_cores = 1,
seed = NULL
)
An object of type greedy_experimental_design_search
which can be further operated upon
The design matrix with $n$ rows (one for each subject) and $p$ columns
(one for each measurement on the subject). This is the design matrix you wish
to search for a more optimal design. This parameter must be specified unless you
choose objective type "kernel"
in which case, the Kgram
parameter must
be specified.
The number of treatments to assign. Default is NULL
which is for forced balance allocation
i.e. nT = nC = n / 2 where n is the number of rows in X (or Kgram if X is unspecified).
The maximum number of designs to be returned. Default is 10,000. Make this large
so you can search however long you wish as the search can be stopped at any time by
using the stopSearch
method
The objective function to use when searching design space. This is a string
with valid values "mahal_dist
" (the default), "abs_sum_diff
" or "kernel
".
A matrix of size $n/2$ times 2 whose rows are indicies pairs. The values of the entire matrix
must enumerate all indicies $1, ..., n$. The default is NULL
meaning to use all possible pairs.
If the objective = kernel
, this argument is required to be an n x n
matrix whose
entries are the evaluation of the kernel function between subject i and subject j. Default is NULL
.
Should the R
terminal hang until all max_designs
vectors are found? The
deafult is FALSE
.
Should we start searching immediately (default is TRUE
).
Should we impose a maximum number of greedy switches? The default is Inf
which a flag
for ``no limit.''
Should we use a fully greedy approach or the quicker semi-greedy approach? The default is
FALSE
corresponding to the fully greedy approach.
Returns diagnostic information about the iterations including (a) the initial starting
vectors, (b) the switches at every iteration and (c) information about the objective function
at every iteration (default is FALSE
to decrease the algorithm's run time).
The number of CPU cores you wish to use during the search. The default is 1
.
The set to set for deterministic output. This should only be set if num_cores = 1
otherwise
the output will not be deterministic. Default is NULL
for no seed set.
Adam Kapelner
if (FALSE) {
library(MASS)
data(Boston)
#pretend the Boston data was an experiment setting
#first pull out the covariates
X = Boston[, 1 : 13]
#begin the greedy design search
ged = initGreedyExperimentalDesignObject(X,
max_designs = 1000, num_cores = 3, objective = "abs_sum_diff")
#wait
ged
}
Run the code above in your browser using DataLab