cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
mhakim
Level I

How do I constrain X3 to 0 if and only if X2 level is 0 in custom design?

Hi All,

 

I am trying to generate a custom design with one continuous factor, X1, and two discrete numeric factors, X2 and X3. mhakim_0-1616718030992.png

The two discrete numeric factors are interdependent such that if X2=0 then X3 doesn't apply. To be specific, X2 is concentration of a molecule and X3 is molecular weight. If I have a molecule concentration of 0 for my sample, then there is no molecular weight because there is no molecule in the sample.

 

I could just manually change the levels of X3 to 0 where appropriate in the design matrix, however, this artificially increases replicates of certain runs. For example, three different runs (with levels of [X1, X2, X3]), [37, 0, 1500], [37, 0, 500], and [37, 0, 50] will all become [37, 0, 0] if I just manually adjust the table. I would rather run new unique conditions than repeat this one.

 

I tried writing a script to do this but it could not converge (I think because X3=0 is not defined in the initial design. I don't want X3=0 for any samples except for when X2=0).

 

If( Name( "X2" ) ==0, Name( "X3" ) == 0, Name ( "X3" ) != 0 )

 

I was hoping this would assign X3 a value of 0 if X2 is 0 and if not, then X3 would not be equal to 0.

 

Any suggestions on how to properly assign factor levels of 0 without creating unnecessary replicates? Is it possible that I don't need to assign X3 = 0 but I can tell the software that X3 doesnt apply when X2=0?

 

Thanks!!!

 

 

3 REPLIES 3

Re: How do I constrain X3 to 0 if and only if X2 level is 0 in custom design?

What if you eliminate the X3 = 0 level from your study?

Georg
Level VII

Re: How do I constrain X3 to 0 if and only if X2 level is 0 in custom design?

I was able to at least define only one setting with X2_concentration == 0

see script. Hope that helps.

 

DOE(
	Custom Design,
	{Add Response( Maximize, "Y", ., ., . ), Add Factor( Continuous, 15, 37, "X1_something", 0 ), Add Factor(
		Discrete Numeric,
		{0, 0.5, 1, 2},
		"X2_concentration",
		0
	), Add Factor( Discrete Numeric, {50, 500, 1500}, "X3_molecular_weight", 0 ), Set Random Seed( 4916040 ), Add Term( {1, 0} ), Add Term( {1, 1} ),
	Add Term( {2, 1} ), Add Potential Term( {2, 2} ), Add Potential Term( {2, 3} ), Add Term( {3, 1} ), Add Potential Term( {3, 2} ),
	Add Alias Term( {1, 1}, {2, 1} ), Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {2, 1}, {3, 1} ), Set Sample Size( 12 ),
	Disallowed Combinations( X2_concentration == 0 & (X3_molecular_weight != 50) ), Simulate Responses( 0 ), Save X Matrix( 0 )}
);
Georg
SDF1
Super User

Re: How do I constrain X3 to 0 if and only if X2 level is 0 in custom design?

Hi @mhakim ,

 

  Is there an instance where you would be performing a run where X1 is some continuous number and X2 = X3 = 0? If so, then it might be best to include an X3 = 0 level. You could then use the "Use Disallowed Combinations Filter for X2 and X3 and set the lower limit to 0 for both and the upper limit to 0.1. This will generate a design with no X2 = 0 options.

 

  On the other hand, if X2 is concentration and if you have 0 concentration of that molecule, then you're not running that molecule in the experiment (hence no molecular weight, X3), so is it a meaningful run to test?

 

  Instead of applying a constraint where one might not be necessary, could you still run the experiments by taking the limit of very small concentrations. Instead of having the low level of X2 being 0, could it be 0.01 or 0.001 (or smaller)? That way you would test very low concentrations and not have to worry about constraining the system.

 

Some thoughts,

DS