我正在尝试创建一个包含大约 10 个分类变量的设计,每个变量都有两个级别 (0,1)。我希望我的设计能够对主要影响和所有二元交互进行建模。当我使用 JMP 默认值时,我得到了 D 最优设计,使得“1”级别的分类变量的平均数量约为 5。有没有一种方法可以限制设计,使我最多只允许其中的 3 个变量处于“1”水平?(我知道这可能需要更多的运行,但我对此没有意见。)
谢谢。
当你说不相等时,你对算法的限制太多,只有 100 次运行。 您可能无法估计所有模型项。
例如,当您限制只有 3 个因子处于高设置时,就有 120 种可能的组合。 即使您选择所有 120 种组合,您也无法估计主效应模型。 为什么? 因为你有一个内在的奇点。 具体来说,截距(设计矩阵中的一列 1)等于所有因素的线性组合:1/3*(x1+x2+x3+x4+x5+x6+x7+x8+x9+x10 ). 因此,无法完成分析,也找不到此类模型的设计。
回到说“不超过”3 或 4 或您希望的任何级别,您可能会过得更好。
丹,再次感谢您提供非常有帮助的回复。我很高兴地寻找一个好的设计,但发现自己再次陷入困境......
我正在尝试制作一个图表,将设计诊断(特别感兴趣的是预测的平均方差)绘制为高级分类因素数量的函数。在所有情况下,我都有 10 个二级因子,并且我只允许进行一定数量的试验,即 100。当我在高层允许“太多”或“太少”时,我有点期待设计会降级。
因此,我一遍又一遍地运行 DOE 脚本,并对高层允许的因素数量进行了一系列不同的限制,即:
不允许的组合(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 2个
不允许的组合(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 3个
不允许的组合(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 4个
不允许的组合(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 5
不允许的组合(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 6个
不允许的组合(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 7
不允许的组合(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 != 8
(将其循环播放会很好,但我只是复制并粘贴脚本)。
我发现只有那些在高层有 2 个或 8 个因素的因素会收敛并交付设计!. 对于其他人,我收到一条错误消息“最佳设计器无法收敛”。有没有办法解决?
您不需要使用脚本来创建设计。 该脚本只是设置所有工作的便捷方式。
您确实需要像我发布的约束那样的脚本。 鉴于您希望尝试不同的场景,我建议使用 GUI,但将线性约束指定为“不允许的组合脚本”并粘贴到我提供的脚本中。 这将允许您尝试一些事情,如果您不喜欢它,只需单击后退按钮,进行更改并重试。
至于运行次数,最小运行次数是您要估计的模型项总数。 对于 10 个 2 水平因子,您将得到截距 (1) + 主效应 (10) + 双向交互作用 (45)。 这给出了总共 56 个项,因此这是最小运行次数。
Default number of runs 有一些内置标准,这些标准将为错误提供一定程度的自由度(通常为 4)并力求正交性(到一个点)。 这不是一个直接的公式。 对于同样的情况,默认运行次数为 60(这就是 Ryan 生成该设计的原因——并注意到 4 个错误自由度)。 默认运行次数不考虑任何限制(据我所知!)。 因此,如果您创建具有或不具有约束的相同设计,默认值仍为 60。 默认值不保证满足您需求的设计! 正如您所指出的,当您添加约束时,找到一个好的设计可能更具挑战性,并且通常需要更多的运行。 由于 60 给出了可怕的结果,因此选择更高的数字。 据我所知,没有简单的计算可以告诉您达到预测平均方差的特定水平所需的运行次数(但不要忘记预测方差的方差! 换句话说,不要忘记设计空间的分数图)。
希望这有助于寻找一个好的设计!
Ryan 的方法正是我要建议的。 但是,如果您真的想将您的因素保留为分类因素(并假设它们被命名为 x1 - x10),您可以指定一个 Disallowed Combinations 脚本,如下所示:
(x1 == 2) + (x2 == 2) + (x3 == 2) + (x4 == 2) + (x5 == 2) + (x6 == 2) + (x7 == 2)
+(x8 == 2) + (x9 == 2) + (x10 == 2) > 3
请注意,这些因素是绝对的,因此每个 X# == 2 实际上是在说明该因素是否处于第二级。
当我遇到这种情况时,我通常将分类转换为 0/1 离散数字因子,然后使用不允许的组合来确保总和不超过所需的 1 数。 对于 10 个输入(主要效果模型,但只是为了给你一个想法),是这样的:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Discrete Numeric, {0, 1}, "X1", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X2", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X3", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X4", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X5", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X6", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X7", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X8", 0 ), Add Factor( Discrete Numeric, {0, 1}, "X9", 0 ),
Add Factor( Discrete Numeric, {0, 1}, "X10", 0 ), Set Random Seed( 1550400750 ), Number of Starts( 3017 ),
Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {5, 1} ), Add Term( {6, 1} ), Add Term( {7, 1} ), Add Term( {8, 1} ), Add Term( {9, 1} ),
Add Term( {10, 1} ), Set Sample Size( 16 ), Disallowed Combinations(
X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 > 3
), Make Design}
);