5

我正在尝试在 R 中为联合分析实验(如 SPSS Orthoplan)创建因子设计。

在过去的 Stackoverflow 问题中搜索,我找到了这个先前的答案:

如何在 R 中创建部分因子设计?

这确实是一个有用的答案,但仅在您有数字级别的因素的情况下。

不幸的是,这不是我的情况,因为我想使用的因子是名义变量,即它们的水平不是数字类型而是因子类型:例如,我必须处理一个指示产品颜色的因子,它可以是绿色、黄色或红色的。

我已尝试修改建议的代码,以回答如何在 R 中创建部分因子设计? 以这种方式:

f.design <- gen.factorial(levels.design,factors="all")

但结果既不平衡,也不正交。此外,您必须在 optFederov 函数中定义确切的试验次数。在那个答案中,建议的试验次数是:

nTrials=sum(levels.design) 

但为了在具有标称因子的设计中获得平衡的解决方案,我希望它至少应该是:

nTrials=prod(unique(levels.design))

无论如何,有一个包可以处理这样的问题,它是FrF2Ulrike Groemping 教授的包,但它只处理二分变量,我不知道如何使用它来解决我的问题。

4

1 回答 1

7

在自己研究了一段时间后,我可以在这里分享我的发现:

是的,您可以在 R 中构建正交设计,其方式与在 SPSS Orthoplan 中发生的方式类似。

只需将变量定义nlevels为包含变量级别的向量。

然后你必须打电话:

library(DoE.base)

fract.design <- oa.design(nlevels=levels.design)

该函数将查找正交设计库(确切地说是 Kuhfeld W., 2009, Orthogonal arrays)

如果没有合适的可用正交设计,该函数将只返回完整的因子设计(因此,您在 R 中别无选择,只能调用 optFederov 函数,如上面我的问题中所述)。

例如尝试:

oa.design(nlevels=c(2,2,3))

oa.design(nlevels=c(2,2,4))

第一个没有解决方案(所以你会得到完整的阶乘),但第二个确实有一个解决方案,一个 8 卡,正交和平衡设计。

于 2013-03-04T00:00:44.693 回答