cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
NimaHojat
Level I

Complex DOE Constraints

Hi everyone,

 

I'm working on a DOE involving four chemicals (A, B, C, and D) and need to set constraints where the components are relative to each other. Here are the specific constraints:

  • A can’t be more than 27.4% of B
  • C can’t be higher than 3% of (D + B)
  • D should be less than 25% of B
  • The total should equal 100%

Is it possible to enter these constraints in JMP? If so, how can I set this up?

Thanks in advance for your help!

1 ACCEPTED SOLUTION

Accepted Solutions
Victor_G
Super User

Re: Complex DOE Constraints

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 :

  1. Specify your response and mixture factors A, B, C, D :
    Victor_G_0-1718953194519.png
  2. 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 :
    1. A can't be more than 27,4% of B : 
      1 * :A + -0.274 * :B <= 0
    2. C can’t be higher than 3% of (D + B) : 
      -0.03 * :B + 1 * :C + -0.03 * :d  <= 0
    3. D should be less than 25% of B :
      -0.25 * :B + 1 * :d <= 0
    4. 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".

  3. 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) :
    Victor_G_1-1718953672423.png

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 :

Victor_G_2-1718953842819.png

 

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)

View solution in original post

2 REPLIES 2
Victor_G
Super User

Re: Complex DOE Constraints

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 :

  1. Specify your response and mixture factors A, B, C, D :
    Victor_G_0-1718953194519.png
  2. 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 :
    1. A can't be more than 27,4% of B : 
      1 * :A + -0.274 * :B <= 0
    2. C can’t be higher than 3% of (D + B) : 
      -0.03 * :B + 1 * :C + -0.03 * :d  <= 0
    3. D should be less than 25% of B :
      -0.25 * :B + 1 * :d <= 0
    4. 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".

  3. 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) :
    Victor_G_1-1718953672423.png

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 :

Victor_G_2-1718953842819.png

 

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)
NimaHojat
Level I

Re: Complex DOE Constraints

Thank you Victor, that's really useful