| OSOAs_LiuLiu {SOAs} | R Documentation |
Function to create OSOAs of strengths 2, 3, or 4 from an OA
Description
Creates OSOAs from an OA according to the construction by Liu and Liu (2015). Strengths 2 to 4 are covered. Strengths 3 and 4 guarantee 3-orthogonality.
Usage
OSOAs_LiuLiu(
oa,
t = NULL,
m = NULL,
noptim.rounds = 1,
noptim.repeats = 1,
optimize = TRUE,
dmethod = "manhattan",
p = 50
)
Arguments
oa |
matrix or data.frame; a symmetric orthogonal array of strength at least |
t |
the requested strength of the OSOA |
m |
the requested number of columns of the OSOA (at most |
noptim.rounds |
the number of optimization rounds for each independent restart |
noptim.repeats |
the number of independent restarts of optimizations with |
optimize |
logical: should space filling be optimized by level permutations? |
dmethod |
distance method for |
p |
p for |
Details
The number of columns goes down dramatically with the requested strength. However, the strength 3 or 4 arrays may be worthwhile, because they guarantee 3-orthogonality, which implies that (quantitative) linear models with main effects and second order effects can be robustly estimated.
Optimization is less successful for this construction of OSOAs; for small arrays, the level permutations make (almost) no difference.
Function mbound_LiuLiu(moa, t) calculates the number of columns that can be
obtained from a strength t OA with moa columns (if such an array
exists, the function does not check that).
Ingoing arrays can be obtained
from oa-generating functions of R package lhs like createBoseBush, or from OAs in
R package DoE.base, or from 2-level designs created with R package FrF2 (see example section).
Value
matrix of class SOA with the attributes that are listed below. All attributes can be accessed using function attributes, or individual attributes can be accessed using function attr. These are the attributes:
- type
the type of array (
SOAorOSOA)- strength
character string that gives the strength
- phi_p
the phi_p value (smaller=better)
- optimized
logical indicating whether optimization was applied
- permpick
matrix that lists the id numbers of the permutations used
- perms2pickfrom
optional element, when optimization was conducted: the overall permutation list to which the numbers in permlist refer
- call
the call that created the object
Author(s)
Ulrike Groemping
References
For full detail, see SOAs-package.
Liu and Liu (2015)
Weng (2014)
Examples
## strength 2, very small (four 9-level columns in 9 runs)
OSOA9 <- OSOAs_LiuLiu(DoE.base::L9.3.4)
## strength 3, from a Plackett-Burman design of FrF2
## 10 8-level columns in 40 runs with OSOA strength 3
oa <- suppressWarnings(FrF2::pb(40)[,c(1:19,39)])
### columns 1 to 19 and 39 together are the largest possible strength 3 set
OSOA40 <- OSOAs_LiuLiu(oa, optimize=FALSE) ## strength 3, 8 levels
### optimize would improve phi_p, but suppressed for saving run time
## 9 8-level columns in 40 runs with OSOA strength 3
oa <- FrF2::pb(40,19)
### 9 columns would be obtained without the final column in oa
mbound_LiuLiu(19, t=3) ## example for which q=3
mbound_LiuLiu(19, t=4) ## t=3 has one more column than t=4
OSOA40_2 <- OSOAs_LiuLiu(oa, optimize=FALSE) ## strength 3, 8 levels
### optimize would improve phi_p, but suppressed for saving run time
## starting from a strength 4 OA
oa <- FrF2::FrF2(64,8)
## four 16 level columns in 64 runs with OSOA strength 4
OSOA64 <- OSOAs_LiuLiu(oa, optimize=FALSE) ## strength 4, 16 levels
### reducing the strength to 3 does not increase the number of columns
mbound_LiuLiu(8, t=3)
### reducing the strength to 2 doubles the number of columns
mbound_LiuLiu(8, t=2)
## eight 4-level columns in 64 runs with OSOA strength 2
OSOA64_2 <- OSOAs_LiuLiu(oa, t=2, optimize=FALSE)
## fulfills the 2D strength 2 property
soacheck2D(OSOA64_2, s=2, el=2, t=2)
### fulfills also the 3D strength 3 property
soacheck3D(OSOA64_2, s=2, el=2, t=3)
### fulfills also the 4D strength 4 property
DoE.base::GWLP(OSOA64/2)
### but not the 3D strength 4 property
soacheck3D(OSOA64_2, s=2, el=2, t=4)
### and not the 2D 4x2 and 2x4 stratification balance
soacheck2D(OSOA64_2, s=2, el=2, t=3)
## six 36-level columns in 72 runs with OSOA strength 2
oa <- DoE.base::L72.2.5.3.3.4.1.6.7[,10:16]
OSOA72 <- OSOAs_LiuLiu(oa, t=2, optimize=FALSE)