R/guidance.R
guide_SOAs_from_OA.Rd
Utility function for inspecting SOAs obtainable from an OA
guide_SOAs_from_OA(s, nOA, mOA, tOA, el = tOA, ...)
required; the unique number of levels of the columns of a given OA (need not be prime or prime power)
required; the number of runs of the OA
required; the number of columns of the OA
required; the strength of the OA; strengths larger than 5 are
reduced to 5; el
must not be larger than the
(reduced) strength, except for tOA=2
with el=3
,
which is supported by the LLY algorithm
the power to which s
is to be taken, i.e. the SOA will have columns with s^el
levels;
default: tOA
.
except for tOA=2
and el=3
, el
can be chosen smaller than tOA
, but not larger.
If el
is smaller than tOA
, tOA
is internally reduced before working out the possibilities.
currently unused
The function returns a data frame, each row of which contains a possibility.
There is example code for constructing the SOA.
The code assumes that a given OA has the name OA
;
this can of course be modified by the user.
Further code details can also be adjusted by the user
(see the documentation of the respective functions).
The function provides the possible creation variants of an SOA
from a strength tOA
OA with mOA
s
-level columns
in nOA
runs,
for an SOA that has columns in s^el
levels.
Note that the SOA may have nOA
runs
or s*nOA
runs, depending on the construction.
For full detail, see SOAs-package
.
Groemping (2023a)
He and Tang (2013)
He, Cheng and Tang (2018)
Liu and Liu (2015)
Li, Liu and Yang (2021)
Shi and Tang (2020)
Zhou and Tang (2019)
## guide_SOAs_from_OA
## there is an OA(81, 3^10, 3) (L81.3.10 in package DoE.base)
## inspect what can be done with it:
guide_SOAs_from_OA(s=3, mOA=10, nOA=81, tOA=3)
#> type strength n nlevels m mmax orthogonal code
#> HT HT 3 81 27 9 9 no SOAs(OA, t=3)
#> LL LL 3 81 27 4 4 yes OSOAs_LiuLiu(OA, t=3)
#> LLY LLY 3 243 27 10 10 yes OSOAs(OA, el=3)
## the output shows that a strength 3 OSOA
## with 4 columns of 27 levels each can be obtained in 81 runs
## and provides the necessary code (replace OA with L81.3.10)
## optimize=FALSE reduces example run time
OSOAs_LiuLiu(L81.3.10, t=3, optimize=FALSE)
#> [,1] [,2] [,3] [,4]
#> 1 0 2 0 2
#> 2 0 5 10 16
#> 3 0 8 20 21
#> 4 9 1 22 9
#> 5 9 4 5 26
#> 6 9 7 12 4
#> 7 18 0 17 19
#> 8 18 3 24 6
#> 9 18 6 7 14
#> 10 3 2 7 17
#> 11 3 5 17 22
#> 12 3 8 24 0
#> 13 12 1 20 24
#> 14 12 4 0 5
#> 15 12 7 10 10
#> 16 21 0 12 7
#> 17 21 3 22 12
#> 18 21 6 5 20
#> 19 6 2 5 23
#> 20 6 5 12 1
#> 21 6 8 22 15
#> 22 15 1 24 3
#> 23 15 4 7 11
#> 24 15 7 17 25
#> 25 24 0 10 13
#> 26 24 3 20 18
#> 27 24 6 0 8
#> 28 1 11 13 13
#> 29 1 14 23 18
#> 30 1 17 3 8
#> 31 10 10 8 23
#> 32 10 13 15 1
#> 33 10 16 25 15
#> 34 19 9 18 3
#> 35 19 12 1 11
#> 36 19 15 11 25
#> 37 4 11 11 19
#> 38 4 14 18 6
#> 39 4 17 1 14
#> 40 13 10 3 2
#> 41 13 13 13 16
#> 42 13 16 23 21
#> 43 22 9 25 9
#> 44 22 12 8 26
#> 45 22 15 15 4
#> 46 7 11 15 7
#> 47 7 14 25 12
#> 48 7 17 8 20
#> 49 16 10 1 17
#> 50 16 13 11 22
#> 51 16 16 18 0
#> 52 25 9 23 24
#> 53 25 12 3 5
#> 54 25 15 13 10
#> 55 2 20 26 24
#> 56 2 23 6 5
#> 57 2 26 16 10
#> 58 11 19 9 7
#> 59 11 22 19 12
#> 60 11 25 2 20
#> 61 20 18 4 17
#> 62 20 21 14 22
#> 63 20 24 21 0
#> 64 5 20 21 3
#> 65 5 23 4 11
#> 66 5 26 14 25
#> 67 14 19 16 13
#> 68 14 22 26 18
#> 69 14 25 6 8
#> 70 23 18 2 23
#> 71 23 21 9 1
#> 72 23 24 19 15
#> 73 8 20 19 9
#> 74 8 23 2 26
#> 75 8 26 9 4
#> 76 17 19 14 19
#> 77 17 22 21 6
#> 78 17 25 4 14
#> 79 26 18 6 2
#> 80 26 21 16 16
#> 81 26 24 26 21
#> OSOA, strength 3
## or that an SOA with 9 non-orthogonal columns can be obtained
## in the same number of runs
SOAs(L81.3.10, t=3)
#> Optimization 1 of 1 started
#> Optimization round 1 of 1 started
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#> [1,] 21 19 22 7 14 26 21 11 4
#> [2,] 18 22 24 14 2 22 10 22 10
#> [3,] 24 25 20 18 26 18 8 6 25
#> [4,] 18 21 16 5 1 12 0 12 19
#> [5,] 24 24 9 9 25 11 25 26 7
#> [6,] 21 18 14 25 13 16 14 1 13
#> [7,] 24 26 1 0 24 1 15 16 16
#> [8,] 21 20 3 16 12 6 4 18 22
#> [9,] 18 23 8 23 0 5 20 5 1
#> [10,] 26 7 19 2 6 2 25 24 25
#> [11,] 23 1 21 15 21 7 14 2 4
#> [12,] 20 4 26 22 9 3 0 13 10
#> [13,] 23 0 13 6 23 24 4 19 13
#> [14,] 20 3 15 13 11 23 20 3 19
#> [15,] 26 6 11 20 8 19 15 17 7
#> [16,] 20 5 7 4 10 13 10 23 1
#> [17,] 26 8 0 11 7 9 8 7 16
#> [18,] 23 2 5 24 22 17 21 9 22
#> [19,] 19 13 25 3 19 14 20 4 10
#> [20,] 25 16 18 10 16 10 15 15 25
#> [21,] 22 10 23 26 4 15 4 20 4
#> [22,] 25 15 10 1 15 0 8 8 7
#> [23,] 22 9 12 17 3 8 21 10 13
#> [24,] 19 12 17 21 18 4 10 21 19
#> [25,] 22 11 4 8 5 25 14 0 22
#> [26,] 19 14 6 12 20 21 0 14 1
#> [27,] 25 17 2 19 17 20 25 25 16
#> [28,] 15 25 19 2 7 10 17 8 8
#> [29,] 12 19 21 15 22 15 3 10 14
#> [30,] 9 22 26 22 10 14 19 21 20
#> [31,] 12 18 13 6 21 8 23 0 23
#> [32,] 9 21 15 13 9 4 9 14 2
#> [33,] 15 24 11 20 6 0 7 25 17
#> [34,] 9 23 7 4 11 21 2 4 11
#> [35,] 15 26 0 11 8 20 24 15 26
#> [36,] 12 20 5 24 23 25 13 20 5
#> [37,] 11 4 25 3 20 22 9 12 20
#> [38,] 17 7 18 10 17 18 7 26 8
#> [39,] 14 1 23 26 5 26 23 1 14
#> [40,] 17 6 10 1 16 11 24 16 17
#> [41,] 14 0 12 17 4 16 13 18 23
#> [42,] 11 3 17 21 19 12 2 5 2
#> [43,] 14 2 4 8 3 6 3 11 5
#> [44,] 11 5 6 12 18 5 19 22 11
#> [45,] 17 8 2 19 15 1 17 6 26
#> [46,] 13 10 22 7 12 7 13 19 14
#> [47,] 10 13 24 14 0 3 2 3 20
#> [48,] 16 16 20 18 24 2 24 17 8
#> [49,] 10 12 16 5 2 23 19 23 2
#> [50,] 16 15 9 9 26 19 17 7 17
#> [51,] 13 9 14 25 14 24 3 9 23
#> [52,] 16 17 1 0 25 9 7 24 26
#> [53,] 13 11 3 16 13 17 23 2 5
#> [54,] 10 14 8 23 1 13 9 13 11
#> [55,] 0 22 25 3 18 3 1 23 0
#> [56,] 6 25 18 10 15 2 26 7 15
#> [57,] 3 19 23 26 3 7 12 9 21
#> [58,] 6 24 10 1 17 19 16 24 24
#> [59,] 3 18 12 17 5 24 5 2 3
#> [60,] 0 21 17 21 20 23 18 13 9
#> [61,] 3 20 4 8 4 17 22 19 12
#> [62,] 0 23 6 12 19 13 11 3 18
#> [63,] 6 26 2 19 16 9 6 17 6
#> [64,] 5 1 22 7 13 15 5 0 21
#> [65,] 2 4 24 14 1 14 18 14 0
#> [66,] 8 7 20 18 25 10 16 25 15
#> [67,] 2 3 16 5 0 4 11 4 9
#> [68,] 8 6 9 9 24 0 6 15 24
#> [69,] 5 0 14 25 12 8 22 20 3
#> [70,] 8 8 1 0 26 20 26 8 6
#> [71,] 5 2 3 16 14 25 12 10 12
#> [72,] 2 5 8 23 2 21 1 21 18
#> [73,] 7 16 19 2 8 18 6 16 15
#> [74,] 4 10 21 15 23 26 22 18 21
#> [75,] 1 13 26 22 11 22 11 5 0
#> [76,] 4 9 13 6 22 16 12 11 3
#> [77,] 1 12 15 13 10 12 1 22 9
#> [78,] 7 15 11 20 7 11 26 6 24
#> [79,] 1 14 7 4 9 5 18 12 18
#> [80,] 7 17 0 11 6 1 16 26 6
#> [81,] 4 11 5 24 21 6 5 1 12
#> SOA, strength 3