cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP 19 is here! See the new features at jmp.com/new.
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
Choose Language Hide Translation Bar
frankderuyck
Level VI

Multiple > 3 component Mixture DOE allowing only ternary mixtures

I need to create a mixture DOE with 7 components where only ternary mixtures are allowed. There is no specific model required; goal is screening potential interesting ternary mixtures. With 7 components 35 ternary combinations are possible: is launching a 7-factor Space Filling Design and only keeping the ternary combinations an option? Or, before launching the DOE, using the disallowed 2, 4, 5, 6 and 7 factor combinations? Or starting from the 35 three-component combinations and nesting the mixture factors? Any other suggestion?

Many thanks for input!

 

1 ACCEPTED SOLUTION

Accepted Solutions
Victor_G
Super User

Re: Multiple > 3 component Mixture DOE allowing only ternary mixtures

Hi @frankderuyck,

 

I don't think Space-Filling designs are a good option for high-dimensional mixture scenarii. Because of the constraint of mixture design (and dimensionality), you'll create experiments that are in the "middle" of your experimental space, and not in the corners/borders, so most (if not all) of your design points will involve all your mixture factors.
See my experiment on Space-Filling mixture designs in this post : https://www.linkedin.com/posts/victorguiller_doe-doe-datascience-activity-7350781215546699777-Ofo9

 

1752249170708.jpg

 

I would rather see two options to get a design for your situation :

  1. Create a Mixture design for the three first factors (12 runs by default in JMP for assumed Scheffé cubic model), and then "copy-paste" this design so that each factor has seen all the other factors in ternary mixture designs. That means you'll have to create C(12,3) = 12! / (3! (12-3)!) = 220 designs, each with 12 runs, to get the global design matching your situation. That may not be practical or feasible.
  2. A more simple option is to use the Custom design, entering the 7 mixture factors, and specifying a model with order of the terms up to 3 only (like Scheffé Cubic). Then, the generation of points will only involve mixture up to three components, and enable a more global understanding of the best ratio.
    Here is how to generate the design (Scheffé cubic model for 7 factors, 112 runs):
    DOE(
    	Custom Design,
    	{Add Response( Maximize, "Y", ., ., . ), Add Factor( Mixture, 0, 1, "X1", 0 ),
    	Add Factor( Mixture, 0, 1, "X2", 0 ), Add Factor( Mixture, 0, 1, "X3", 0 ),
    	Add Factor( Mixture, 0, 1, "X4", 0 ), Add Factor( Mixture, 0, 1, "X5", 0 ),
    	Add Factor( Mixture, 0, 1, "X6", 0 ), Add Factor( Mixture, 0, 1, "X7", 0 ),
    	Set Random Seed( 1795703354 ), Number of Starts( 35 ), 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}, {2, 1} ),
    	Add Term( {1, 1}, {3, 1} ), Add Term( {1, 1}, {4, 1} ),
    	Add Term( {1, 1}, {5, 1} ), Add Term( {1, 1}, {6, 1} ),
    	Add Term( {1, 1}, {7, 1} ), Add Term( {2, 1}, {3, 1} ),
    	Add Term( {2, 1}, {4, 1} ), Add Term( {2, 1}, {5, 1} ),
    	Add Term( {2, 1}, {6, 1} ), Add Term( {2, 1}, {7, 1} ),
    	Add Term( {3, 1}, {4, 1} ), Add Term( {3, 1}, {5, 1} ),
    	Add Term( {3, 1}, {6, 1} ), Add Term( {3, 1}, {7, 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 Term( {1, 1}, {2, 1}, {3, 1} ), Add Term( {1, 1}, {2, 1}, {4, 1} ),
    	Add Term( {1, 1}, {2, 1}, {5, 1} ), Add Term( {1, 1}, {2, 1}, {6, 1} ),
    	Add Term( {1, 1}, {2, 1}, {7, 1} ), Add Term( {1, 1}, {3, 1}, {4, 1} ),
    	Add Term( {1, 1}, {3, 1}, {5, 1} ), Add Term( {1, 1}, {3, 1}, {6, 1} ),
    	Add Term( {1, 1}, {3, 1}, {7, 1} ), Add Term( {1, 1}, {4, 1}, {5, 1} ),
    	Add Term( {1, 1}, {4, 1}, {6, 1} ), Add Term( {1, 1}, {4, 1}, {7, 1} ),
    	Add Term( {1, 1}, {5, 1}, {6, 1} ), Add Term( {1, 1}, {5, 1}, {7, 1} ),
    	Add Term( {1, 1}, {6, 1}, {7, 1} ), Add Term( {2, 1}, {3, 1}, {4, 1} ),
    	Add Term( {2, 1}, {3, 1}, {5, 1} ), Add Term( {2, 1}, {3, 1}, {6, 1} ),
    	Add Term( {2, 1}, {3, 1}, {7, 1} ), Add Term( {2, 1}, {4, 1}, {5, 1} ),
    	Add Term( {2, 1}, {4, 1}, {6, 1} ), Add Term( {2, 1}, {4, 1}, {7, 1} ),
    	Add Term( {2, 1}, {5, 1}, {6, 1} ), Add Term( {2, 1}, {5, 1}, {7, 1} ),
    	Add Term( {2, 1}, {6, 1}, {7, 1} ), Add Term( {3, 1}, {4, 1}, {5, 1} ),
    	Add Term( {3, 1}, {4, 1}, {6, 1} ), Add Term( {3, 1}, {4, 1}, {7, 1} ),
    	Add Term( {3, 1}, {5, 1}, {6, 1} ), Add Term( {3, 1}, {5, 1}, {7, 1} ),
    	Add Term( {3, 1}, {6, 1}, {7, 1} ), Add Term( {4, 1}, {5, 1}, {6, 1} ),
    	Add Term( {4, 1}, {5, 1}, {7, 1} ), Add Term( {4, 1}, {6, 1}, {7, 1} ),
    	Add Term( {5, 1}, {6, 1}, {7, 1} ), Add Term( {1, 1}, {2, 1} ),
    	Add Term( {1, 1}, {3, 1} ), Add Term( {2, 1}, {3, 1} ),
    	Add Term( {1, 1}, {4, 1} ), Add Term( {2, 1}, {4, 1} ),
    	Add Term( {3, 1}, {4, 1} ), Add Term( {1, 1}, {5, 1} ),
    	Add Term( {2, 1}, {5, 1} ), Add Term( {3, 1}, {5, 1} ),
    	Add Term( {4, 1}, {5, 1} ), Add Term( {1, 1}, {6, 1} ),
    	Add Term( {2, 1}, {6, 1} ), Add Term( {3, 1}, {6, 1} ),
    	Add Term( {4, 1}, {6, 1} ), Add Term( {5, 1}, {6, 1} ),
    	Add Term( {1, 1}, {7, 1} ), Add Term( {2, 1}, {7, 1} ),
    	Add Term( {3, 1}, {7, 1} ), Add Term( {4, 1}, {7, 1} ),
    	Add Term( {5, 1}, {7, 1} ), Add Term( {6, 1}, {7, 1} ), Set Sample Size( 112 ),
    	Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
    );

If the number of runs is too high, I would recommend starting with a more simple model : with only main effects and 2-factors interactions effects, you can create a 7-factors mixture design with 50 runs. You could then augment this design if you want to investigate higher order effects.

 

Of course, if you have other requirements, like avoiding the corners (pure component), some disallowed combinations or the need to cover more homogeneously the mixture experimental space, you may have to use a candidate set approach by creating a dataset respecting your constraints, and then use Custom design to use your candidate set and factors as covariates.

 

Hope this answer will help you,

Victor GUILLER

"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)

View solution in original post

6 REPLIES 6
frankderuyck
Level VI

Re: Multiple > 3 component Mixture DOE allowing only ternary mixtures

An idea also is using a special Sheffé cubic model and apllying this for all 35 ternary combinations; the corner points don't need to be tested as they are the pure components. So there will be 4 x 35 = 140 runs. We would like to start with only 50 runs, what is the best selection?

Victor_G
Super User

Re: Multiple > 3 component Mixture DOE allowing only ternary mixtures

Hi @frankderuyck,

 

I don't think Space-Filling designs are a good option for high-dimensional mixture scenarii. Because of the constraint of mixture design (and dimensionality), you'll create experiments that are in the "middle" of your experimental space, and not in the corners/borders, so most (if not all) of your design points will involve all your mixture factors.
See my experiment on Space-Filling mixture designs in this post : https://www.linkedin.com/posts/victorguiller_doe-doe-datascience-activity-7350781215546699777-Ofo9

 

1752249170708.jpg

 

I would rather see two options to get a design for your situation :

  1. Create a Mixture design for the three first factors (12 runs by default in JMP for assumed Scheffé cubic model), and then "copy-paste" this design so that each factor has seen all the other factors in ternary mixture designs. That means you'll have to create C(12,3) = 12! / (3! (12-3)!) = 220 designs, each with 12 runs, to get the global design matching your situation. That may not be practical or feasible.
  2. A more simple option is to use the Custom design, entering the 7 mixture factors, and specifying a model with order of the terms up to 3 only (like Scheffé Cubic). Then, the generation of points will only involve mixture up to three components, and enable a more global understanding of the best ratio.
    Here is how to generate the design (Scheffé cubic model for 7 factors, 112 runs):
    DOE(
    	Custom Design,
    	{Add Response( Maximize, "Y", ., ., . ), Add Factor( Mixture, 0, 1, "X1", 0 ),
    	Add Factor( Mixture, 0, 1, "X2", 0 ), Add Factor( Mixture, 0, 1, "X3", 0 ),
    	Add Factor( Mixture, 0, 1, "X4", 0 ), Add Factor( Mixture, 0, 1, "X5", 0 ),
    	Add Factor( Mixture, 0, 1, "X6", 0 ), Add Factor( Mixture, 0, 1, "X7", 0 ),
    	Set Random Seed( 1795703354 ), Number of Starts( 35 ), 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}, {2, 1} ),
    	Add Term( {1, 1}, {3, 1} ), Add Term( {1, 1}, {4, 1} ),
    	Add Term( {1, 1}, {5, 1} ), Add Term( {1, 1}, {6, 1} ),
    	Add Term( {1, 1}, {7, 1} ), Add Term( {2, 1}, {3, 1} ),
    	Add Term( {2, 1}, {4, 1} ), Add Term( {2, 1}, {5, 1} ),
    	Add Term( {2, 1}, {6, 1} ), Add Term( {2, 1}, {7, 1} ),
    	Add Term( {3, 1}, {4, 1} ), Add Term( {3, 1}, {5, 1} ),
    	Add Term( {3, 1}, {6, 1} ), Add Term( {3, 1}, {7, 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 Term( {1, 1}, {2, 1}, {3, 1} ), Add Term( {1, 1}, {2, 1}, {4, 1} ),
    	Add Term( {1, 1}, {2, 1}, {5, 1} ), Add Term( {1, 1}, {2, 1}, {6, 1} ),
    	Add Term( {1, 1}, {2, 1}, {7, 1} ), Add Term( {1, 1}, {3, 1}, {4, 1} ),
    	Add Term( {1, 1}, {3, 1}, {5, 1} ), Add Term( {1, 1}, {3, 1}, {6, 1} ),
    	Add Term( {1, 1}, {3, 1}, {7, 1} ), Add Term( {1, 1}, {4, 1}, {5, 1} ),
    	Add Term( {1, 1}, {4, 1}, {6, 1} ), Add Term( {1, 1}, {4, 1}, {7, 1} ),
    	Add Term( {1, 1}, {5, 1}, {6, 1} ), Add Term( {1, 1}, {5, 1}, {7, 1} ),
    	Add Term( {1, 1}, {6, 1}, {7, 1} ), Add Term( {2, 1}, {3, 1}, {4, 1} ),
    	Add Term( {2, 1}, {3, 1}, {5, 1} ), Add Term( {2, 1}, {3, 1}, {6, 1} ),
    	Add Term( {2, 1}, {3, 1}, {7, 1} ), Add Term( {2, 1}, {4, 1}, {5, 1} ),
    	Add Term( {2, 1}, {4, 1}, {6, 1} ), Add Term( {2, 1}, {4, 1}, {7, 1} ),
    	Add Term( {2, 1}, {5, 1}, {6, 1} ), Add Term( {2, 1}, {5, 1}, {7, 1} ),
    	Add Term( {2, 1}, {6, 1}, {7, 1} ), Add Term( {3, 1}, {4, 1}, {5, 1} ),
    	Add Term( {3, 1}, {4, 1}, {6, 1} ), Add Term( {3, 1}, {4, 1}, {7, 1} ),
    	Add Term( {3, 1}, {5, 1}, {6, 1} ), Add Term( {3, 1}, {5, 1}, {7, 1} ),
    	Add Term( {3, 1}, {6, 1}, {7, 1} ), Add Term( {4, 1}, {5, 1}, {6, 1} ),
    	Add Term( {4, 1}, {5, 1}, {7, 1} ), Add Term( {4, 1}, {6, 1}, {7, 1} ),
    	Add Term( {5, 1}, {6, 1}, {7, 1} ), Add Term( {1, 1}, {2, 1} ),
    	Add Term( {1, 1}, {3, 1} ), Add Term( {2, 1}, {3, 1} ),
    	Add Term( {1, 1}, {4, 1} ), Add Term( {2, 1}, {4, 1} ),
    	Add Term( {3, 1}, {4, 1} ), Add Term( {1, 1}, {5, 1} ),
    	Add Term( {2, 1}, {5, 1} ), Add Term( {3, 1}, {5, 1} ),
    	Add Term( {4, 1}, {5, 1} ), Add Term( {1, 1}, {6, 1} ),
    	Add Term( {2, 1}, {6, 1} ), Add Term( {3, 1}, {6, 1} ),
    	Add Term( {4, 1}, {6, 1} ), Add Term( {5, 1}, {6, 1} ),
    	Add Term( {1, 1}, {7, 1} ), Add Term( {2, 1}, {7, 1} ),
    	Add Term( {3, 1}, {7, 1} ), Add Term( {4, 1}, {7, 1} ),
    	Add Term( {5, 1}, {7, 1} ), Add Term( {6, 1}, {7, 1} ), Set Sample Size( 112 ),
    	Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
    );

If the number of runs is too high, I would recommend starting with a more simple model : with only main effects and 2-factors interactions effects, you can create a 7-factors mixture design with 50 runs. You could then augment this design if you want to investigate higher order effects.

 

Of course, if you have other requirements, like avoiding the corners (pure component), some disallowed combinations or the need to cover more homogeneously the mixture experimental space, you may have to use a candidate set approach by creating a dataset respecting your constraints, and then use Custom design to use your candidate set and factors as covariates.

 

Hope this answer will help you,

Victor GUILLER

"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)
frankderuyck
Level VI

Re: Multiple > 3 component Mixture DOE allowing only ternary mixtures

Very smart solution Victor! Guess once the best set of mixtures is found one can model output with a ML (SVM) model or use bayesian optimization for findig the optimal mixture, what approach would you prefer? 

Victor_G
Super User

Re: Multiple > 3 component Mixture DOE allowing only ternary mixtures

The simpler, the better : I think a regression model applied to this model-based mixture design should already give you some indication about which factors (and combinations) help improve the response(s). After : 

  • If you want to optimize further the response(s), then you may need new datapoints to enable the estimation of higher order terms and/or better coverage of the (reduced) experimental space. Depending of your objective (optimization only, or knowledge/coverage of the experimental space), you can then continue with Bayesian Optimization, or augment the design and add new runs through a model-based (optimal designs) and/or a model-agnostic (space-filling) approach. 
  • If your goal is to build a predictive model with ML, you may need to add Space-Filling design points to help the ML algorithm do a relevant interpolation in the mixture space. ML models can only be useful if they have the required data to learn from. The design points from your first stage (mixture design with model order 2 or 3) may not cover sufficiently the experimental space to provide ML models any advantage compared to the assumed regression model.

 

Hope this complementary answer will help you,

Victor GUILLER

"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)
frankderuyck
Level VI

Re: Multiple > 3 component Mixture DOE allowing only ternary mixtures

Suppose cfr. attached file we select 11 candidate mixtures for further investigation; there are binary 50%/50% and ternary 33%/33%/33% candidates. How to augment so a predictive ML model Y= F(xA, xB,...,xG) is possible? In our hight throughput equipment there is room for max. 50 mixtures

frankderuyck
Level VI

Re: Multiple > 3 component Mixture DOE allowing only ternary mixtures

Possibility is to narrow the ranges of each component according to their ranges in candidate set and then start a new special Sheffé model DOE. Any other suggestion?

Recommended Articles