Subscribe Bookmark RSS Feed

DOE All Possible Combinations

benson_munyan

Community Trekker

Joined:

Dec 17, 2014

Hello all,

I have a relatively problem that I can't seem to crack within the DOE platform. I've done it before, but now I can't recall how precisely.

I am collecting two measurements (Valence and Intensity) across 4 samples. I want to control for the order the samples are presented.  I want to create a table with all possible order of samples (preferably 2 sets, so each combination appears twice).

I have set Sample as a catagorical, 4 level factor.
I have tried time as both catagorical and continuous, without luck.

What am I missing?

4 REPLIES
txnelson

Super User

Joined:

Jun 22, 2012

If I am interpreting what you are asking for, you need a Full Factorial Design with 2 Responses, and 4 Factors, each with 4 levels, and 1 Replicate.

11360_pastedImage_0.png

It produces a table with a randomized order of all possible combinations times 2.

11361_pastedImage_1.png

Jim
benson_munyan

Community Trekker

Joined:

Dec 17, 2014

Hi Jim!

Thank you for your response. That is pretty close! One thing I failed to specify was that I only need each factor to appear once in each pattern.

For Example

1234

1243

1342

1324

Peter_Bartell

Joined:

Jun 5, 2014

Thinking out loud here...can you accomplish this in the Custom Design platform through using the disallowed combinations filter? Essentially you're constraining your design space so any time I see that I'm led to the JMP Custom Design platform.

txnelson

Super User

Joined:

Jun 22, 2012

If all you are looking for is a test order generator, and not a complete DOE solution, the little "brute force" script I put together will give you random test orders for all of the combinations you are looking for:

 

dt = New Table( "Order", New Column( "Group" ), New Column( "Order", character ), New Column( "Random" ) );

For( a = 1, a <= 4, a++,

       For( b = 1, b <= 4, b++, 

              For( c = 1, c <= 4, c++, 

                     For( d = 1, d <= 4, d++, 

                           Pattern = Char( a ) || Char( b ) || Char( c ) || Char( d ); 

                           If( 

                                  Sum( 

                                         Contains( pattern, "1" ) > 0, 

                                         Contains( pattern, "2" ) > 0,

                                         Contains( pattern, "3" ) > 0, 

                                         Contains( pattern, "4" ) > 0 

                                  ) == 4, 

                                  dt << add rows( 2 ); 

                                  dt:Group[N Rows( dt ) - 1] = 1;

                                  dt:Group[N Rows( dt )] = 2; 

                                  dt:Order[N Rows( dt ) - 1] = pattern;

                                   dt:Order[N Rows( dt )] = pattern;

                                  dt:Random[N Rows( dt ) - 1] = Random Uniform();

                                  dt:Random[N Rows( dt )] = Random Uniform();

                           );

                     )

              )

       )

);

dt << Sort( 

       By( :Group, :Random ),

       Order( Ascending, Ascending ),

       Replace table( 1 )

);

 

dt << delete Columns("Random");

 

Jim