我有大量成分,想限制任何一种配方中的成分数量。
所以我有一个自定义设计约束(“不允许的组合脚本”)的形式......
((Ing1>0) + (Ing2>0) + (Ing3>0) +……+ (IngX>0)) > N
其中 IngX 是成分 X 的水平。不将其视为混合物。
我收到附加错误。
有趣的是,将符号颠倒过来,即将成分的数量减少到 N 似乎不是问题。
欢迎任何帮助...
非常感谢这个马克。
您指定...“假设所有范围为 0 到 1”。这有关系吗?我曾期望我的约束将非零公式的数量限制为 N(或更少)
N 或更少是目标,我也想改变集中度(不仅仅是包含),但我认为我可以在您的第二封邮件中提出建议。非常感谢。
我对你的情况做了一些假设,并想出了一个方法来完成这个设计。
假设我有 5 种候选成分,但我一次只想包含其中的 3 种。 我添加了 3 个具有 5 个级别的分类因素。

然后我为不允许的组合创建了以下表达式。
Ingredient 1 == Ingredient 2 | Ingredient 1 == Ingredient 3 | Ingredient 2 == Ingredient 3
然后我假设了一个主效应模型和 20 次运行。

这是此示例的完整脚本供您使用。
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"L1", "L2", "L3", "L4", "L5"}, "Ingredient 1", 0 ),
Add Factor( Categorical, {"L1", "L2", "L3", "L4", "L5"}, "Ingredient 2", 0 ),
Add Factor( Categorical, {"L1", "L2", "L3", "L4", "L5"}, "Ingredient 3", 0 ),
Set Random Seed( 102498840 ), Number of Starts( 10 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {3, 1} ), Set Sample Size( 20 ),
Disallowed Combinations(
Ingredient 1 == Ingredient 2 | Ingredient 1 == Ingredient 3 | Ingredient 2
== Ingredient 3
), Simulate Responses( 0 ), Save X Matrix( 0 )}
);
假设所有因子范围都是 0 到 1,您使用的表达式似乎是正确的形式。 您可能没有向设计中添加混合因子(成分),但您定义的不允许的组合强制线性依赖于在 JMP 用于优化设计的模型矩阵中产生奇异性的因子。
你真的想要每种混合物中的成分少于 N 种,还是你想确保每种混合物中的成分恰好有 N 种?