我正在尝试在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
,但它只处理二元变量,我无法弄清楚如何用它来解决我的问题。
答案 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卡,正交和平衡设计。