我正在使用空间填充设计平台来运行快速灵活的填充设计。 我想添加一个不允许的组合脚本,如果一个变量的级别等于某个值,那么单独的列被限制为一个特定的值。 我有以下脚本,但该脚本不起作用。 我试过: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
希望有帮助,
瑞安
你好jshaw04 . 我认为你不能使用不允许的组合来做你想做的事情。 我的理由是,无论是否禁止组合,所有因素都会有所不同,但可能会以某种方式减少。 通过规定某些因素不会发生变化,您可以建立以下场景:
* 如果 F1=1,F11 不是一个因素(不变)。
* 如果 F2=1,则 F12 不是一个因素。
* 如果 F2=1 和 F2=1,使用因子 F1 到 F10 和 F13
* 如果 F1 !=1 和 F2!=1 使用因子 F1 到 F13。
假设我是正确的,一种可能的方法是创建四个设计并将它们组合起来。 另一种方法是对设计设置进行后处理,并根据 F1 或 F2 将 F11 或 F12 设置为零。 我可能会采用最后一种方法,只是检查设计评估中的一切是否正常。
当然,如果我错了,我想我会和你一起学习一些东西。 