Hi @NimaHojat,
Welcome in the Community !
To better understand how to set up factors constraints like the one you want, I would highly recommend reading the great article @Jed_Campbell wrote about constraints : Demystifying Factor Constraints
Concerning your specific use case and based on the limited information available, it seems you're doing a mixture design (since you are more interested about ratios/relative quantities, your total sum of the components being equal to 100% / 1).
You can use Custom Designs to create your specific mixture design with the constraints :
- Specify your response and mixture factors A, B, C, D :
- After clicking on "Continue", you can set up your constraints in the panel "Define Factor Constraints" and the option "Specify Linear Constraints". Your constraints can be expressed after a short transformation as :
- A can't be more than 27,4% of B :
1 * :A + -0.274 * :B <= 0
- C can’t be higher than 3% of (D + B) :
-0.03 * :B + 1 * :C + -0.03 * :d <= 0
- D should be less than 25% of B :
-0.25 * :B + 1 * :d <= 0
- Last constraint is already taken into account when setting this DoE as a Mixture design : A+B+C+D = 1 (100%)
Note: Sorry, for some reasons the JSL code is not working in the JMP Community when writing ":D" for the column corresponding to factor D, so I used ":d" instead. But it is the mixture factor D, not someting else, so it should be noted ":D" if you note this factor as "D".
- You can set up these constraints directly in the panel, specify the assumed model (I just choose a main effect mixture model for illustration here) and choose an according number of runs for your objective (I just stayed with the default recommended number of runs here) :
You can then create your design, and if needed you can check your constraints have been respected by creating formula in your data table corresponding to the ratios/comparison you have between your mixture factors :
Here is the script to reproduce the design shown here :
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Mixture, 0, 1, "A", 0 ),
Add Factor( Mixture, 0, 1, "B", 0 ), Add Factor( Mixture, 0, 1, "C", 0 ),
Add Factor( Mixture, 0, 1, "D", 0 ), Set Random Seed( 1982181060 ),
Number of Starts( 49914 ), Add Constraint(
[1 -0.274 0 0 0, 0 -0.03 1 -0.03 0, 0 -0.25 0 1 0]
), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ),
Add Term( {4, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
Add Alias Term( {2, 1}, {3, 1} ), Add Alias Term( {2, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {4, 1} ), Set Sample Size( 10 ), Simulate Responses( 0 ),
Save X Matrix( 0 ), Make Design, Set Run Order( Randomize ), Make Table}
)
And I attach the datatable with the design used for illustration here if you're more familiar with this than JSL script.
I hope this answer will help you,
Victor GUILLER
L'Oréal Data & Analytics
"It is not unusual for a well-designed experiment to analyze itself" (Box, Hunter and Hunter)