假设我们有以下三个因素:
因素 A:5 个可能的值
因素 B:4 个可能的值
因素 C:2 个可能的值
我怎样才能为这些构造一个正交数组?
我不明白的主要事情是进行组合。我记得我们曾经遵循“11112222”、“11221122”、“12121212”这种组合,但似乎每个人都有不同的方法来填充数组中的值。有什么标准方法吗?
假设我们有以下三个因素:
因素 A:5 个可能的值
因素 B:4 个可能的值
因素 C:2 个可能的值
我怎样才能为这些构造一个正交数组?
我不明白的主要事情是进行组合。我记得我们曾经遵循“11112222”、“11221122”、“12121212”这种组合,但似乎每个人都有不同的方法来填充数组中的值。有什么标准方法吗?
没有一种简洁的算法可以生成要排序的正交数组。取而代之的是,在许多不同的数学领域中发现了各种结构,以及一些用于修改正交数组以以某种方式改变其参数的技术。例如参见http://www.itl.nist.gov/div898/handbook/pri/section3/pri33a.htm和http://www.win.tue.nl/~aeb/preprints/oa3.pdf。许多统计数据包都有一个正交数组设计实用程序,它使用这些规则和一个已知正交数组的列表来尝试找到一个满足给定要求的正交数组。
在您的情况下,我目前找不到比http://www.york.ac.uk/depts/maths/tables/l25.htm使用 25 次运行的六个五水平因子设计更接近的了。您当然可以丢弃三列。如果您在设计中有五个级别,而在实验中只有 4 个(或 2 个)级别,我会倾向于一致地重新标记,例如 {1,2,3,4,5} -> {1,2,3,4, 4} 和 {1,2,3,4,5} => {1,2,1,2,1} 但我不清楚这对实验属性有什么影响。
正交数组的计算在计算上可能很昂贵,因此设计通常以库的形式提供。
R 包 DOE.base 有一个 oa.design() 函数,用于检索具有给定数量的因子和因子水平的设计。例如,要检索具有 3 个因子和水平 3、4 和 5 的设计,请使用这些命令。
library(DOE.base)
oa.design(nlevels=c(3,4,5))
在这种情况下,返回的设计是具有 60 次试验的全因子设计。这仍然是一个正交阵列,但比具有相同因子水平的替代方案要昂贵得多。
要获得一个正交数组 3 个因子,每个因子有 5 个水平,请使用:
oa.design(nlevels=c(5,5,5))
A B C
1 1 5 4
2 2 1 5
3 3 4 5
4 3 5 2
5 5 2 4
6 3 3 3
7 5 5 5
8 5 4 3
9 2 5 3
10 5 1 2
11 4 1 3
12 5 3 1
13 4 4 4
14 1 1 1
15 1 2 3
16 3 2 1
17 2 3 4
18 4 3 2
19 4 5 1
20 3 1 4
21 1 3 5
22 1 4 2
23 4 2 5
24 2 2 2
25 2 4 1
输入具有 4 个水平的 3 个因子会返回一个包含 16 个游程的正交数组,输入 3 个水平的 3 个因子会返回一个包含 9 个游程的正交数组。
或者,Python 包 OApackage 在 PyPi ( https://pypi.org/project/OApackage/ ) 中可用。
有关更多信息,请参阅:
纯级和混合级正交阵列的完整枚举,ED Schoen,PT Eendebak,MVM Nguyen,组合设计杂志,第 18 卷,第 2 期,第 123-140 页,2010 年。
用于估计所有主效应和双因素相互作用的两级设计,Pieter T. Eendebak,Eric D. Schoen,Technometrics Vol。59 , 伊斯。2017 年 1 月 1 日