Learn R Programming

GreedyExperimentalDesign (version 1.5.6.1)

initGreedyMultipleKernelExperimentalDesignObject: Begin A Greedy Pair Multiple Kernel Switching Search

Description

This method creates an object of type greedy_multiple_kernel_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.

Usage

initGreedyMultipleKernelExperimentalDesignObject(
  X = NULL,
  max_designs = 10000,
  objective = "added_pct_reduction",
  kernel_pre_num_designs = 2000,
  kernel_names = NULL,
  Kgrams = NULL,
  maximum_gain_scaling = 1.1,
  kernel_weights = NULL,
  wait = FALSE,
  start = TRUE,
  max_iters = Inf,
  semigreedy = FALSE,
  diagnostics = FALSE,
  num_cores = 1,
  seed = NULL
)

Value

An object of type greedy_experimental_design_search which can be further operated upon

Arguments

X

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. We will standardize this matrix by column internally.

max_designs

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

objective

The method used to aggregate the kernel objective functions together. Default is "added_pct_reduction".

kernel_pre_num_designs

How many designs per kernel to run to explore the space of kernel objective values. Default is 2000.

kernel_names

An array with the kernels to compute with default parameters. Must have elements in the following set: "mahalanobis", "poly_s" where the "s" is a natural number 1 or greater, "exponential", "laplacian", "inv_mult_quad", "gaussian". Default is NULL to indicate the kernels are specified manually using the Kgrams parameter.

Kgrams

A list of M >= 1 elements where each is a n x n matrix whose entries are the evaluation of the kernel function between subject i and subject j. Default is NULL to indicate this was specified using the convenience parameter kernel_names.

maximum_gain_scaling

This controls how much the percentage of possible improvement on a kernel objective function should be scaled by. The minimum is 1 which allows for designs that could potentially have >=100 improvement over original. We recommend 1.1 which means that a design that was found to be the best of the kernel_pre_num_designs still has 1/1.1 = 9% room to grow making it highly unlikely that any design could be >= 100%.

kernel_weights

A vector with positive weights (need not be normalized) where each element represents the weight of each kernel. The default is NULL for uniform weighting.

wait

Should the R terminal hang until all max_designs vectors are found? The deafult is FALSE.

start

Should we start searching immediately (default is TRUE).

max_iters

Should we impose a maximum number of greedy switches? The default is Inf which a flag for ``no limit.''

semigreedy

Should we use a fully greedy approach or the quicker semi-greedy approach? The default is FALSE corresponding to the fully greedy approach.

diagnostics

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).

num_cores

The number of CPU cores you wish to use during the search. The default is 1.

seed

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.

Author

Adam Kapelner

Examples

Run this code
 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 = initGreedyMultipleKernelExperimentalDesignObject(X, 
		max_designs = 1000, num_cores = 3, kernel_names = c("mahalanobis", "gaussian"))
	#wait
	ged
	}

Run the code above in your browser using DataLab