BookmarkSubscribe
Choose Language Hide Translation Bar
benson_munyan
Community Trekker

DOE All Possible Combinations

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?

0 Kudos
4 REPLIES 4
txnelson
Super User

Re: DOE All Possible Combinations

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
0 Kudos
benson_munyan
Community Trekker

Re: DOE All Possible Combinations

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

0 Kudos

Re: DOE All Possible Combinations

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

Re: DOE All Possible Combinations

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
0 Kudos