BookmarkSubscribeRSS Feed
benson_munyan

Community Trekker

Joined:

Dec 17, 2014

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?

4 REPLIES
txnelson

Super User

Joined:

Jun 22, 2012

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
benson_munyan

Community Trekker

Joined:

Dec 17, 2014

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

Peter_Bartell

Joined:

Jun 5, 2014

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

Joined:

Jun 22, 2012

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