I am trying to use Custom Design to screen some material composition and process variable factors within my experimental system. My experimental setup is perhaps a little convoluted but I will explain the best I can.
My factors are as follows:
Material components:
Process variables:
Questions:
Hi @Jingwen,
Welcome in the Community !
Mixture design are typically optimization design, where you try to predict and optimize your response based on components ratio. So related to your objective and factors, the Mixture design will help you optimize your response(s) depending on the monomer type chosen. It may not help you choose the most appropriate monomer type, as you can find different optima for each monomer type. Since they are optimization designs, it is often recommended to use an I-Optimality criterion, related to the average variance of prediction (that you want to minimize). You can change the optimality criterion during design creation by clicking on the red triangle next to "Custom Design", then "Optimality Criterion", and "Make I-Optimal design".
Related to your questions :
DOE(Could you explain the role of random block in your case ? Is it a limitation of number of runs per day ? If yes, you can add the number of runs per block at the end of the DOE generation, which can increase the recommended default number of runs to 27 (4 blocks, 3 with 7 runs and the last one with 6 runs) :
Custom Design,
{Add Response( Minimize, "Cd (mm)", ., ., . ),
Add Response( Minimize, "Ec (mJ/cm²)", ., ., . ),
Add Response( None, "#Discs Printed", ., ., . ),
Add Factor( Categorical, {"HEMA", "GMA"}, "Func Monomer Type", 0 ),
Add Factor( Continuous, 60, 120, "Power Ratio (%)", 0 ),
Add Factor( Continuous, 0.005, 0.02, "PI Content", 0 ),
Add Factor( Continuous, 0.001, 0.003, "PA Content", 0 ),
Add Factor( Mixture, 0.2, 0.6, "MX Content", 0 ),
Add Factor( Mixture, 0.4, 0.8, "Monomer Mixture (3:2)", 0 ),
Add Factor( Continuous, 1, 2, "Monomer Ratio", 0 ), Set Random Seed( 685147623 ),
Number of Starts( 200 ), Add Term( {5, 1} ), Add Term( {6, 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} ), Set Sample Size( 24 ),
Optimality Criterion( "Make I-Optimal Design" ), Simulate Responses( 0 ),
Save X Matrix( 0 ), Make Design}
);
I also saved this design in a script in your original datatable, and here is the script to generate it :
DOE(
Custom Design,
{Add Response( Minimize, "Cd (mm)", ., ., . ),
Add Response( Minimize, "Ec (mJ/cm²)", ., ., . ),
Add Response( None, "#Discs Printed", ., ., . ),
Add Factor( Categorical, {"HEMA", "GMA"}, "Func Monomer Type", 0 ),
Add Factor( Continuous, 60, 120, "Power Ratio (%)", 0 ),
Add Factor( Continuous, 0.005, 0.02, "PI Content", 0 ),
Add Factor( Continuous, 0.001, 0.003, "PA Content", 0 ),
Add Factor( Mixture, 0.2, 0.6, "MX Content", 0 ),
Add Factor( Mixture, 0.4, 0.8, "Monomer Mixture (3:2)", 0 ),
Add Factor( Continuous, 1, 2, "Monomer Ratio", 0 ),
Set Random Seed( 2039145980 ), Number of Starts( 200 ), Add Term( {5, 1} ),
Add Term( {6, 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} ), Set Runs Per Random Block( 7 ),
Set Sample Size( 27 ), Optimality Criterion( "Make I-Optimal Design" ),
Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
);
For these 3 reasons, it doesn't make sense to evaluate a mixture design based on power analysis. For modeling, it makes more sense in the analysis to start from the full model with the possible terms you have assumed in the design creation, and start removing terms in the model (except main effects), based on the predictive performance of the model (RMSE for example) or Information criteria (AICc/BIC), NOT on individual p-values/logworth of each term (because of multicollinearity/correlation among mixture factors, no intercept in this type of model, p-values/logworth are not a valid metric for model selection).
For design creation, as mentioned in point 2, you can create different designs and compare them based on prediction performances : prediction variance profile, fraction of design space plot, G-Efficiency and average variance of prediction, etc...
Hope this answer will help you,
Hi @Jingwen,
Welcome in the Community !
Mixture design are typically optimization design, where you try to predict and optimize your response based on components ratio. So related to your objective and factors, the Mixture design will help you optimize your response(s) depending on the monomer type chosen. It may not help you choose the most appropriate monomer type, as you can find different optima for each monomer type. Since they are optimization designs, it is often recommended to use an I-Optimality criterion, related to the average variance of prediction (that you want to minimize). You can change the optimality criterion during design creation by clicking on the red triangle next to "Custom Design", then "Optimality Criterion", and "Make I-Optimal design".
Related to your questions :
DOE(Could you explain the role of random block in your case ? Is it a limitation of number of runs per day ? If yes, you can add the number of runs per block at the end of the DOE generation, which can increase the recommended default number of runs to 27 (4 blocks, 3 with 7 runs and the last one with 6 runs) :
Custom Design,
{Add Response( Minimize, "Cd (mm)", ., ., . ),
Add Response( Minimize, "Ec (mJ/cm²)", ., ., . ),
Add Response( None, "#Discs Printed", ., ., . ),
Add Factor( Categorical, {"HEMA", "GMA"}, "Func Monomer Type", 0 ),
Add Factor( Continuous, 60, 120, "Power Ratio (%)", 0 ),
Add Factor( Continuous, 0.005, 0.02, "PI Content", 0 ),
Add Factor( Continuous, 0.001, 0.003, "PA Content", 0 ),
Add Factor( Mixture, 0.2, 0.6, "MX Content", 0 ),
Add Factor( Mixture, 0.4, 0.8, "Monomer Mixture (3:2)", 0 ),
Add Factor( Continuous, 1, 2, "Monomer Ratio", 0 ), Set Random Seed( 685147623 ),
Number of Starts( 200 ), Add Term( {5, 1} ), Add Term( {6, 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} ), Set Sample Size( 24 ),
Optimality Criterion( "Make I-Optimal Design" ), Simulate Responses( 0 ),
Save X Matrix( 0 ), Make Design}
);
I also saved this design in a script in your original datatable, and here is the script to generate it :
DOE(
Custom Design,
{Add Response( Minimize, "Cd (mm)", ., ., . ),
Add Response( Minimize, "Ec (mJ/cm²)", ., ., . ),
Add Response( None, "#Discs Printed", ., ., . ),
Add Factor( Categorical, {"HEMA", "GMA"}, "Func Monomer Type", 0 ),
Add Factor( Continuous, 60, 120, "Power Ratio (%)", 0 ),
Add Factor( Continuous, 0.005, 0.02, "PI Content", 0 ),
Add Factor( Continuous, 0.001, 0.003, "PA Content", 0 ),
Add Factor( Mixture, 0.2, 0.6, "MX Content", 0 ),
Add Factor( Mixture, 0.4, 0.8, "Monomer Mixture (3:2)", 0 ),
Add Factor( Continuous, 1, 2, "Monomer Ratio", 0 ),
Set Random Seed( 2039145980 ), Number of Starts( 200 ), Add Term( {5, 1} ),
Add Term( {6, 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} ), Set Runs Per Random Block( 7 ),
Set Sample Size( 27 ), Optimality Criterion( "Make I-Optimal Design" ),
Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
);
For these 3 reasons, it doesn't make sense to evaluate a mixture design based on power analysis. For modeling, it makes more sense in the analysis to start from the full model with the possible terms you have assumed in the design creation, and start removing terms in the model (except main effects), based on the predictive performance of the model (RMSE for example) or Information criteria (AICc/BIC), NOT on individual p-values/logworth of each term (because of multicollinearity/correlation among mixture factors, no intercept in this type of model, p-values/logworth are not a valid metric for model selection).
For design creation, as mentioned in point 2, you can create different designs and compare them based on prediction performances : prediction variance profile, fraction of design space plot, G-Efficiency and average variance of prediction, etc...
Hope this answer will help you,
Dear Victor,
First of all, I owe you a very heartfelt thank you for your detailed and very rapid response to my problem!
In order of your responses:
Fig 1: Comparison of both designs
Fig 2: comparison of both designs and each individual design's Design Space Plot.
Finally, in order to make best use of the data from this design (if I were to choose the 27 runs with blocking), what would be your suggested model analysis workflow?
Thank you for your time :)
Hi @Jingwen,
Glad you find the answer helpful !
Regarding your follow-up questions :
The topic of modeling with mixture designs is a broad topic already well discussed in this forum. You may be interested in the following discussions :
Backward regression for Mixture DOE analysis with regular (non pro) JMP?
How to use the effect summary effectively for a mixture DOE?
Analysis of a Mixture DOE with stepwise regression
Hope this response will help you,