Lhs
Provides a number of methods for creating and augmenting Latin Hypercube Samples and Orthogonal Array Latin Hypercube Samples
`lhs` provides a number of methods for creating and augmenting Latin Hypercube Samples and Orthogonal Array Latin Hypercube Samples. The project is written primarily in C++, distributed under the GNU General Public License v3.0 license, first published in 2018. Key topics include: latin-hypercube, latin-hypercube-sample, latin-hypercube-sampling, lhs, orthogonal-arrays.
| <sub>Actions</sub> | <sub>Code Coverage</sub> | <sub>Website</sub> | <sub>Doxygen</sub> | <sub>CRAN Downloads</sub> | <sub>CRAN</sub> |
|---|---|---|---|---|---|
| <sub>R-Universe</sub> | <sub>CRAN Packages</sub> | <sub>DOI</sub> |
|---|---|---|
lhs
lhs provides a number of methods for creating and augmenting Latin
Hypercube Samples and Orthogonal Array Latin Hypercube Samples.
- Reverse Dependency Checks
- Docker Images for Testing
- lhs-debug
- lhs-revdep
built from here
Installation
You can install the released version of lhs from
CRAN with:
rinstall.packages("lhs")
You can also install the development version of lhs from github with:
rif (!require(devtools)) install.packages("devtools") devtools::install_github("bertcarnell/lhs")
Quick Start
Create a random LHS with 10 samples and 3 variables:
rrequire(lhs)
## Loading required package: lhs
rset.seed(1776) X <- randomLHS(n = 10, k = 3)
Create a design that is more optimal than the random case:
rX_gen <- geneticLHS(10, 3, pop = 100, gen = 5, pMut = 0.1) X_max1 <- maximinLHS(10, 3, method = "build", dup = 5) X_max2 <- maximinLHS(10, 3, method = "iterative", optimize.on = "result", eps = 0.01, maxIter = 300) X_imp <- improvedLHS(10, 3, dup = 5) X_opt <- optimumLHS(10, 3, maxSweeps = 10, eps = 0.01)
| Method | Mean Distance | Minimum Distance | |
|---|---|---|---|
| 6 | optimum | 0.7289 | 0.4598 |
| 2 | genetic | 0.7190 | 0.4059 |
| 4 | maximin | 0.7246 | 0.3975 |
| 5 | improved | 0.7028 | 0.3872 |
| 3 | maximin | 0.7296 | 0.3611 |
| 1 | random | 0.7067 | 0.2709 |
Augment an existing design:
rY <- randomLHS(10, 5) Z <- augmentLHS(Y, 2) dim(Z)
## [1] 12 5
Build an orthogonal array LHS:
r# a 9 row design is returned because a 10 row design is not possible with these algorithms W9 <- create_oalhs(10, 3, bChooseLargerDesign = FALSE, bverbose = FALSE) dim(W9)
## [1] 9 3
r# a 16 row design is returned because a 10 row design is not possible with these algorithms W16 <- create_oalhs(10, 3, bChooseLargerDesign = TRUE, bverbose = FALSE) dim(W16)
## [1] 16 3
Create a sliced design where each slice is a Latin hypercube and the
union is a Latin hypercube:
rS <- slicedLHS(m = 4, t = 3, k = 2) dim(S)
## [1] 12 2
rattr(S, "slices")
## [1] 1 1 1 1 2 2 2 2 3 3 3 3
Create a nested design where the small design is a subset of the large
design:
rN <- nestedLHS(small = 4, large = 12, k = 2) dim(N$large)
## [1] 12 2
rall(N$small == N$large[1:4, ])
## [1] TRUE
Help
R-Help Examples of using the LHS package
- Latin hyper cube sampling from
expand.grid() - Latin Hypercube Sampling with a
condition - Latin Hypercube with condition sum =
1 - Latin hypercube
sampling - Latin Hypercube Sample and transformation to uniformly distributed
integers or
classes - Latin hypercube sampling from a non-uniform
distribution - Latin Hypercube Sampling when parameters are defined according to
specific probability
distributions
StackExchange Examples:
- Latin Hypercube around set
points - Latin hypercube sampling with categorical
variables - Are Latin hypercube samples
uncorrelated - Stopping rule for Latin hypercube sampling
(LHS) - Is a group of random hypercube samples equivalent to a single latin
hypercube with more
samples? - Taking samples of data using Latin Hypercube
Sampling - Number of parameter sets generated by latin hyercube
sampling - Is there a way to check if sample obeys the Latin Hypercube Sampling
rule? - Effectiveness of Latin Hypercube
Sampling - Dividing CDF rather than PDF equally in Latin Hypercube
Sampling - Stratified sampling / QMC simulation for compound Poisson
rv - Using Latin Hypercube Sampling with a condition that the sum of two
variables should be less than
one - How to generate a design for a response surface with a discrete input
random
variable? - Is it necessary to shuffle X coordinates in Latin hypercube
Sampling?
Other
lhs package announcement: R-pkgs New R-Packages: Triangle and
LHS
Contributors
Showing top 2 contributors by commit count.
