2

我想知道是否有任何软件包可以使用 R 生成 D 效率平衡设计

我尝试了AlgDesign包,但我没有设法获得平衡的设计。

不确定这是因为我正在考虑的属性和级别的小全因子 (32) 还是因为平衡设计超出了 AlgDesign 的范围。

我有3个属性:2个属性有4个等级,1个有2个等级

  • att 1:4级
  • att 2:4级
  • att 3:2级

我使用以下 R 代码:

library(AlgDesign)
#-----------------------------
# define attributes and levels
#-----------------------------
desVarNames <- c("esource", "certified", "cost")
desLevels <- c(4,2, 4)
n <- 6       #number of choice sets
desOpt <- 4  #num option per choice set

set.seed(123456)
#generate full factorial
dat<-gen.factorial(desLevels,length(desLevels),varNames=desVarNames, center=TRUE)

destT <- optFederov(~., dat, nTrials = (n*(desOpt)), criterion="D")
destT
4

1 回答 1

2

首先,当您说“平衡”设计时,我怀疑您的意思是每个因素水平应该在最终设计中出现相同的次数。(实际上,您上面的变量“dat”也是一个平衡设计,因为每个可能的组合只出现一次)。

optFederov 的工作方式是使用 Federov 的交换算法随机选择和替换试验。因此,每次试验与另一个候选试验交换时,最初平衡的设计将变得不平衡,因为如果试验“平衡”了一个设计,用任何其他试验替换它会使设计失衡。如果算法被迫在每一步都保持平衡设计,那么就不可能进行替换,并且会卡住。

不仅平衡的设计与 Feverov 的交换算法的工作方式不兼容,而且从 D 效率的角度来看,它实际上也是不可取的。

例如,如果您有 4 个因子分别具有 2、3、5 和 7 个水平,实现平衡设计的唯一方法是包含所有 2*3*5*7 = 210 次试验,而 AlgDesign 只建议 19 次。

data = gen.factorial(c(2,3,5,7), factors = "all")
trials = optFederov(data = data, center = FALSE, criterion = "D")

简而言之,“平衡 d 效率”设计的概念在很大程度上是对立的。

于 2017-02-01T07:39:57.257 回答