Arrays 如何创建正交数组?

Arrays 如何创建正交数组?,arrays,algorithm,statistics,combinatorics,black-box-testing,Arrays,Algorithm,Statistics,Combinatorics,Black Box Testing,假设我们有以下三个因素: 因子A:5个可能值 因子B:4个可能值 系数C:2个可能值 我如何为这些构建一个新的模型 我不明白的主要事情是做组合。我记得我们曾经遵循'11112222','11221122','12121212'这种组合,但似乎每个人都有不同的方法来填充数组中的值。 有没有标准的方法?没有一种简单的算法可以按顺序生成正交数组。取而代之的是,在许多不同的数学领域中发现了各种各样的结构,以及一些修改正交数组以某种方式改变其参数的技术。例如,请参见和。许多统计软件包都有一个正交数组设计实

假设我们有以下三个因素:

因子A:5个可能值
因子B:4个可能值
系数C:2个可能值

我如何为这些构建一个新的模型

我不明白的主要事情是做组合。我记得我们曾经遵循'11112222','11221122','12121212'这种组合,但似乎每个人都有不同的方法来填充数组中的值。
有没有标准的方法?

没有一种简单的算法可以按顺序生成正交数组。取而代之的是,在许多不同的数学领域中发现了各种各样的结构,以及一些修改正交数组以某种方式改变其参数的技术。例如,请参见和。许多统计软件包都有一个正交数组设计实用程序,它使用这些规则和已知正交数组的列表来尝试找到一个满足给定要求的正交数组


在你的情况下,我现在找不到比使用25次跑步时的六个五级因子设计更接近的了。您当然可以放弃三列。如果你在设计中有五个级别,而在实验中只有4个(或2个)级别,我倾向于一致地重新标记,例如{1,2,3,4,5}->{1,2,3,4,4}和{1,2,3,4,5}=>{1,2,1,2,1}但是我不清楚这对实验性质有什么影响。

没有一个简单的算法可以按顺序生成正交数组。取而代之的是,在许多不同的数学领域中发现了各种各样的结构,以及一些修改正交数组以某种方式改变其参数的技术。例如,请参见和。许多统计软件包都有一个正交数组设计实用程序,它使用这些规则和已知正交数组的列表来尝试找到一个满足给定要求的正交数组


在你的情况下,我现在找不到比使用25次跑步时的六个五级因子设计更接近的了。您当然可以放弃三列。如果你在设计中有五个级别,而在实验中只有四个(或两个)级别,我倾向于一致地重新标记,例如{1,2,3,4,5}->{1,2,3,4,4}和{1,2,3,4,5}=>{1,2,1,2,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
输入3个因子和4个级别,每个因子返回16个运行的正交数组,输入3个因子和3个级别,返回9个运行的正交数组

或者,Python包OApackage在PyPi()中可用

有关详细信息,请参阅:

  • ,E.D.Schoen,p.T.Eendebak,M.V.M.Nguyen,《组合设计杂志》,第18卷,第2期,第123-140页,2010年

  • ,皮特·T·伊恩德贝克,埃里克·D·肖恩,技术计量学第59卷,国际空间站。2017年1月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
      
      输入3个因子和4个级别,每个因子返回16个运行的正交数组,输入3个因子和3个级别,返回9个运行的正交数组

      或者,Python包OApackage在PyPi()中可用

      有关详细信息,请参阅:

      • ,E.D.Schoen,p.T.Eendebak,M.V.M.Nguyen,《组合设计杂志》,第18卷,第2期,第123-140页,2010年

      • ,皮特·T·伊恩德贝克,埃里克·D·肖恩,技术计量学第59卷,国际空间站。2017年1月1日


      感谢您的回复!!我已经有了你共享的前两个链接,但我想知道是否有任何标准的算法来设计正交数组。我想我得自己想一个。谢谢你的回复!!我已经有了你共享的前两个链接,但我想知道是否有任何标准的算法来设计正交数组。我想我必须自己找出一个答案。请在你的答案中提供所有相关信息(以便它是独立的)。链接可能会更改或将来无法访问,从而使您的答案无效。请在您的答案中提供所有相关信息(以使其独立)。链接可能会改变或在将来无法访问,从而使您的答案无效。