我正在使用空间填充设计平台来运行快速灵活的填充设计。 我想添加一个不允许的组合脚本,其中如果一个变量的级别等于某个值,则单独的列仅限于特定值。 我有以下脚本,但该脚本不起作用。 我试过: F1 == 1 & F11 > 0 | F2 == 1 & F12 > 0,但这会删除 F1 或 F2 = 1 的所有情况,因为 F11 或 F12 实际上永远不会等于 0,即使对于计算机模拟来说,这些变量(F11 和 F12)可以为 0。 我可以通过将 F11 和 F12 范围从 -1 到 5 来“捏造”它,然后添加 F1 & F2 = 2 或 3 的不允许组合以获得负 F11 或 F12。这将限制负值仅在 F1 或 F2 = 1 时出现在 F11 和 F12 中,这样我们就可以将软件编程为 0 而不是负数,但这种解决方案似乎不太优雅。 有没有办法指定不允许的组合,例如如果 F1|F2 == 1 则 F11F12 = 0?
crt = DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"1", "2", "3"}, "F1"),
Add Factor( Categorical, {"1", "2", "3"}, "F2"),
Add Factor( Continuous, 0, 75, "F3", 0 ),
Add Factor( Continuous, 0, 75, "F4", 0 ),
Add Factor( Continuous, 0, 0.25, "F5", 0 ),
Add Factor( Continuous, 0, 0.25, "F6", 0 ),
Add Factor( Continuous, 3, 5, "F7", 0 ),
Add Factor( Continuous, 6, 10, "F8", 0 ),
Add Factor( Continuous, 0, 1.8, "F9", 0 ),
Add Factor( Continuous, 0, 1.8, "F10", 0 ),
Add Factor( Continuous, 0, 5, "F11", 0 ),
Add Factor( Continuous, 0, 5, "F12", 0 ),
Add Factor( Continuous, 800, 1200, "F13", 0 ),
Set Random Seed( 2062716779 ),
Disallowed Combinations(
If(F1==1,F11= 0) | if(F2==1,F12=0)
), FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 130 ),
Set Run Order( Randomize )}
);
dtcur = crt << Make table;
dtcur << delete columns("x1","x2");嗨 jshaw04,
您最好的选择可能是简单地创建没有不允许的组合的设计,并在需要时手动将值更改为 0。 您仍然可以获得所有空间填充属性以及其他因素。
关于你用负值来捏造它的想法,如果你想玩弄 F1 == 1 的比例,你可以使用它。 也就是说,如果您考虑 F11 的较低值的负值,如果您在不允许的组合中使用类似的内容(与 F2/F12 类似),F1 的分布将会改变:
(F1 == 2 | F1 == 3) & F11 < 0 | F1 == 1 & F11 > 0
希望有帮助,
瑞安
你好杰肖04 。 我认为您无法使用不允许的组合来完成您想要做的事情。 我的推理是,假设无论是否不允许组合,所有因素都会有所不同,但可能会以某种方式减少。 通过规定某些因素不会改变,您可以建立以下场景:
* 如果 F1=1,F11 不是一个因子(不变)。
* 如果F2=1,则F12 不是一个因素。
* 如果 F2=1 且 F2=1,则使用因子 F1 至 F10 和 F13
* 如果 F1 !=1 且 F2!=1,则使用因子 F1 至 F13。
假设我是正确的,一种可能的方法是创建四种设计并将它们组合起来。 另一种方法是对设计设置进行后处理,并根据 F1 或 F2 将 F11 或 F12 设置为零。 我可能会采用最后一种方法,并在设计评估中检查一切是否正常。
当然,如果我错了,我想我会和你一起学习一些东西。 