R中的Orthoplan(分数因子设计)

时间:2013-02-07 10:40:34

标签: r statistics

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

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

How to create a fractional factorial design in R?

这确实是一个有用的答案,但只有在你有数字水平的因素的情况下。

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

我尝试修改建议的代码作为问题How to create a fractional factorial design in R?的答案  以某种方式:

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

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

nTrials=sum(levels.design) 

但是为了在具有名义因素的设计中获得平衡的解决方案,我预计它至少应该是:

nTrials=prod(unique(levels.design))

无论如何都有一个可以解决这个问题的软件包,它是Ulrike Groemping教授的软件包FrF2,但它只处理二元变量,我无法弄清楚如何用它来解决我的问题。

1 个答案:

答案 0 :(得分:5)

经过一段时间研究自己的答案之后,我可以在这里分享一下我找到的答案:

是的,您可以在R中构建正交设计,其方式与SPSS orthoplan中的相似。

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

然后你必须打电话:

library(DoE.base)

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

该功能将查找正交设计库(完全是Kuhfeld W.,2009,正交数组)

如果没有合适的可用正交设计,该函数将只返回完整的阶乘设计(因此你在R中没有其他选择但是要调用optFederov函数,如我在上面的问题中所解释的那样)。

作为示例尝试:

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

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

第一个没有解决方案(因此你将获得全部因子),但第二个确实有解决方案,8卡,正交和平衡设计。