Title: | Space-Filling Design Library |
---|---|
Description: | A collection of pre-optimized space-filling designs, for up to ten parameters, is contained here. Functions are provided to access designs described by Husslage et al (2011) <doi:10.1007/s11081-010-9129-8> and Wang and Fang (2005) <doi:10.1142/9789812701190_0040>. The design types included are Audze-Eglais, MaxiMin, and uniform. |
Authors: | Max Kuhn [aut, cre] |
Maintainer: | Max Kuhn <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.1.0.9000 |
Built: | 2024-11-03 03:50:32 UTC |
Source: | https://github.com/topepo/sfd |
Obtain a space-filling design (if possible) based on how many characteristics (i.e. parameters) and size (i.e., number of grid points).
get_design(num_param, num_points, type = "any")
get_design(num_param, num_points, type = "any")
num_param |
An integer between two and ten for the number of characteristics/factors/parameters in the design. |
num_points |
An integer for the number of grid points requested. If
there is no corresponding design, an error is given (when using
|
type |
A character string with possible values> |
The "audze_eglais"
, "max_min_l1"
, and "max_min_l2"
designs are from
https://www.spacefillingdesigns.nl/.
The uniform designs were pre-computed using mixtox::unidTab()
using the
method of Wang and Fang (2005) using the C2 criterion.
A tibble (data frame) with columns named X1
to X{num_param}
.
Each column is an integer for the ordered value of the real parameter values.
https://www.spacefillingdesigns.nl/, Husslage, B. G., Rennen, G., Van Dam, E. R., & Den Hertog, D. (2011). Space-filling Latin hypercube designs for computer experiments. Optimization and Engineering, 12, 611-630. Wang, Y., & Fang, K. (2005). Uniform design of experiments with mixtures. In Selected Papers Of Wang Yuan, 468-479.
if (rlang::is_installed("ggplot2")) { library(ggplot2) two_param_l2 <- get_design(2, 100, type = "audze_eglais") ggplot(two_param_l2, aes(X1, X2)) + geom_point() + coord_equal() } no_design <- try(get_design(2, 1000), silent = TRUE) cat(as.character(no_design))
if (rlang::is_installed("ggplot2")) { library(ggplot2) two_param_l2 <- get_design(2, 100, type = "audze_eglais") ggplot(two_param_l2, aes(X1, X2)) + geom_point() + coord_equal() } no_design <- try(get_design(2, 1000), silent = TRUE) cat(as.character(no_design))
Determine if a design from https://www.spacefillingdesigns.nl/ is available in this package based on how many characteristics (i.e. parameters), size (i.e., number of grid points), and type.
sfd_available(num_param, num_points, type = "any")
sfd_available(num_param, num_points, type = "any")
num_param |
An integer between two and ten for the number of characteristics/factors/parameters in the design. |
num_points |
An integer for the number of grid points requested. If
there is no corresponding design, an error is given (when using
|
type |
A character string with possible values> |
A logical
sfd_available(2, 10) sfd_available(2, 10^5)
sfd_available(2, 10) sfd_available(2, 10^5)
This data object is a list of designs originating from https://www.spacefillingdesigns.nl/. While the original website offers no guarantee or license, they do state that "All these designs have been compared and the best designs are collected on this website. They can be downloaded for free and used in your specific simulation environment".
The available designs in this package are for experiments where the number of parameters ranges from two to ten of types "audze_eglais", "max_min_l1", or "max_min_l2". See Husslage et al (2011).
The format is a list with nine elements for dimensions of two to ten experimental factors/parameters. The designs are concatenated with columns of design type and number of points. The values are integers between one and the number of design points.
sfd_lib |
a list of tibble |
https://www.spacefillingdesigns.nl/ Husslage, B. G., Rennen, G., Van Dam, E. R., & Den Hertog, D. (2011). Space-filling Latin hypercube designs for computer experiments. Optimization and Engineering, 12, 611-630.
data(sfd_lib) if (rlang::is_installed("ggplot2")) { library(ggplot2) two_params <- sfd_lib[[1]] two_params <- two_params[two_params$num_points == 25,] ggplot(two_params, aes(X1, X2, col = type)) + geom_point() + facet_wrap(~ type, nrow = 1) + coord_equal() }
data(sfd_lib) if (rlang::is_installed("ggplot2")) { library(ggplot2) two_params <- sfd_lib[[1]] two_params <- two_params[two_params$num_points == 25,] ggplot(two_params, aes(X1, X2, col = type)) + geom_point() + facet_wrap(~ type, nrow = 1) + coord_equal() }
For a set of values, this function inserts the actual values of the design
produced by get_design()
.
update_values(design, values)
update_values(design, values)
design |
A tibble produced by |
values |
A list of vectors containing the possible values for each
parameter. There should be as many values (of any type) as there are rows in
|
An updated tibble.
des <- get_design(3, 6) des vals <- list(1:6, letters[1:6], seq(20, 21, length.out = 6)) des_2 <- update_values(des, vals) des_2
des <- get_design(3, 6) des vals <- list(1:6, letters[1:6], seq(20, 21, length.out = 6)) des_2 <- update_values(des, vals) des_2