Categorical Latin Hypercube Sampling Plan

Categorical Latin Hypercube Sampling Plan

Categorical Latin Hypercube plans allows one to mix discrete and continous data in the same plan.

Example

Say we have two continous dimensions as well as one on/off, discrete, dimension. These can be included in the same sampling plan with

julia> numPoints = 100
julia> dims = [Continous(),Continous(),Categorical(2)]
julia> initialSample = randomLHC(numPoints,dims)
julia> X = LHCoptim!(initialSample,gens;dims=dims)[1]
Note

This is no longer strictly a Latin Hypercube because of the introduction of categorical values.

The objective function is altered to include the separation within each plane of the categorical values in addition to the separation between all points. The weights for each plane can be supplied by the user.

Large emphasis can be put on keeping the separation within each plane by increasing its weight. This is similar to doing a separate LHC for each categorical dimension.

julia> weights = [1,1,1000]
julia> julia> X = LHCoptim!(initialSample,gens;dims=dims,weights=weights)[1]

Similarly we can turn of the separation within planes entirely with

julia> weights = [1,1,0]
julia> julia> X = LHCoptim!(initialSample,gens;dims=dims,weights=weights)[1]