Hi @Ed_F,
It sounds like a good idea to try a simple Mixture design to check the limits and possible constraints of your experimental space before augmenting this initial design into a more sophisticated/detailed one. Here are my responses/comments to your two questions :
- I'm surprised by the number of levels (possible raw materials) for Family 3, and all possible combinations that could be involved with the other families factors and their levels. Do you have any possibility to reduce the number of levels in family 3, based on domain expertise, physico-chemical characteristics of the raw materials, etc ... ? The first design doesn't seem to be intended to "pick a winner" but more to understand what is working and what is not working, so you don't need to use all your raw materials from family 3 to understand the possible infeasible/invalid regions of your experimental space. I would recommend based on the chemical info from these raw materials to test maximum 3 different raw materials expressing the maximum chemical variability in your design.
If not possible to reduce the number of levels for Family3, you could end up with around 30 runs for this first design, in order to make the ratio vary between 0 and 1 with intermediate values :
Script for proposed design :
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"A", "B"}, "Family1", 0 ),
Add Factor( Categorical, {"C", "D"}, "Family 2", 0 ),
Add Factor( Categorical, {"E", "F", "G", "H", "I", "J"}, "Family3", 0 ),
Add Factor( Mixture, 0, 1, "XF1", 0 ), Add Factor( Mixture, 0, 1, "XF2", 0 ),
Add Factor( Mixture, 0, 1, "XF3", 0 ), Add Factor(
Mixture, 0, 1, "XF4 (Glycerine)", 0
), Set Random Seed( 1288978935 ), Number of Starts( 1406 ), 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( {1, 1}, {4, 1} ),
Add Term( {2, 1}, {5, 1} ), Add Term( {3, 1}, {6, 1} ),
Add Term( {4, 1}, {5, 1} ), Add Term( {4, 1}, {6, 1} ),
Add Term( {4, 1}, {7, 1} ), Add Term( {5, 1}, {6, 1} ),
Add Term( {5, 1}, {7, 1} ), Add Term( {6, 1}, {7, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ),
Add Alias Term( {1, 1}, {7, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
Add Alias Term( {2, 1}, {7, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {7, 1} ),
Set Sample Size( 30 ), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design,
Set Run Order( Randomize ), Make Table}
);
If you are able to reduce the number of levels for Family3 to 3 different raw materials, you could end up with a similar design only with 20 runs :
Script for proposed design :
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"A", "B"}, "Family1", 0 ),
Add Factor( Categorical, {"C", "D"}, "Family 2", 0 ),
Add Factor( Categorical, {"E", "F", "G", "H", "I", "J"}, "Family3", 0 ),
Add Factor( Mixture, 0, 1, "XF1", 0 ), Add Factor( Mixture, 0, 1, "XF2", 0 ),
Add Factor( Mixture, 0, 1, "XF3", 0 ), Add Factor(
Mixture, 0, 1, "XF4 (Glycerine)", 0
), Set Random Seed( 1500506171 ), Number of Starts( 1406 ), 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 Potential Term( {1, 1}, {4, 1} ),
Add Potential Term( {2, 1}, {5, 1} ), Add Potential Term( {3, 1}, {6, 1} ),
Add Term( {4, 1}, {5, 1} ), Add Term( {4, 1}, {6, 1} ),
Add Term( {4, 1}, {7, 1} ), Add Term( {5, 1}, {6, 1} ),
Add Term( {5, 1}, {7, 1} ), Add Term( {6, 1}, {7, 1} ),
Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ),
Add Alias Term( {1, 1}, {5, 1} ), Add Alias Term( {1, 1}, {6, 1} ),
Add Alias Term( {1, 1}, {7, 1} ), Add Alias Term( {2, 1}, {3, 1} ),
Add Alias Term( {2, 1}, {4, 1} ), Add Alias Term( {2, 1}, {6, 1} ),
Add Alias Term( {2, 1}, {7, 1} ), Add Alias Term( {3, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {5, 1} ), Add Alias Term( {3, 1}, {7, 1} ),
Set Sample Size( 20 ), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design,
Set Run Order( Randomize ), Make Table}
);
2. There are many ways to create constraints for designs in JMP. I would recommend reading the great article by @Jed_Campbell Demystifying Factor Constraints.
You can use the Custom Design to Define Factor Constraints, or if you have very complex constraints situation, use a Candidate Set approach to build your dataset of possible candidate points, and then use the Custom Design to select the most informative and relevant points of this dataset based on your model and design specifications. Some talks and presentations about this Candidate Set approach :
What is a covariate in design of experiments?
Developer Tutorial - Handling Covariates Effectively when Designing Experiments
Candidate Set Designs: Tailoring DOE Constraints to the Problem (2021-EU-30MP-784)
Hope this first answer and discussion starter may help you,
Victor GUILLER
"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)