turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- JMP User Community
- :
- Discussions
- :
- Custom design DOE with disallowed combinations - J...

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Nov 25, 2014 9:13 AM
(1447 views)

Hello

I am attempting to use the Custom Design DOE (Jmp 11) to setup an experiment. There are three (3) factors: mux, words, and bpw and two responses (not shown).

In my custom design, I designated mux as a 3-level* discrete factor* with values of 8, 16, and 32. Words as a* continuous* variable between 1024 and 32768. And bpw as a *continuous* variable between 4 and 144, as per the requirements in the attached table.

Additionally, I enabled a script for the following *disallowed combinations*:

mux==8 & words>8192 | mux == 8 & mod(words, 32) !=0;

mux == 16 &words < 2048 | mux == 16 & Mod( words, 64 ) != 0 | mux == 16 & bpw > 72 | mux == 16 & words > 16384;

mux==32 & words<4096 | mux == 32 & mod(words, 128) !=0 | mux ==32 & bpw >36;

However the above *disallowed combination *is not being respected when the design is made, even when I enable 3^{rd} level interactions in the model, including mux*words, mux*bpw, bpw*words, and mux*bpw*words.

Any ideas on what I could be doing wrong here??

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Solution

You're almost there - first thing I noticed, is that you'll want to connect your conditions with OR ( "|"s). With the semicolons, the disallowed combinations is only looking at the final statement to evaluate.

The other issue you'll run into is with the Mod function. Because words is continuous, outside the min and the max, the custom designer is going to have issues landing right on an integer.

If you put a bound on the mod function, it will find a design, such as in the code below. You could then change the value to the nearest increment for each level of mux.

The other option is to have words be a discrete numeric variable with a small subset of increments that work. For example, you could take the lower, upper bounds and midpoint for each level of mux. The Mod function should behave better in that case (ie, you don’t need to set the bounds on it like in the code below).

Hope that helps!

Cheers,

Ryan

DOE**(**

**{**Add Response**(** Maximize, "Y", **.**, **.**, **.** **)**,

Add Factor**(** Categorical, **{**"8", "16", "32"**}**, "mux", **0** **)**,

Add Factor**(** Continuous, **1024**, **32768**, "words", **0** **)**,

Add Factor**(** Continuous, **4**, **144**, "bpw", **0** **)**, Set Random Seed**(** **1253068796** **)**,

Number of Starts**(** **40** **)**, Add Term**(** **{****1**, **0}** **)**, Add Term**(** **{****1**, **1}** **)**,

Add Term**(** **{****2**, **1}** **)**, Add Term**(** **{****3**, **1}** **)**, Set Sample Size**(** **20** **)**,

Disallowed Combinations**(**

mux == **1** & words > **8192** | mux == **1** & **(**Mod**(** words, **32** **)** >= **1)** | mux == **2** &

words > **16384** | mux == **2** & words < **2048** | mux == **2** & **(**Mod**(** words, **64** **)** >= **1)**

| mux == **2** & bpw > **72** | mux == **3** & words < **4096** | mux == **3** &

**(**Mod**(** words, **128** **)** >= **1)** | mux == **3** & bpw > **36**

**)}**

**)**;

5 REPLIES

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

You're almost there - first thing I noticed, is that you'll want to connect your conditions with OR ( "|"s). With the semicolons, the disallowed combinations is only looking at the final statement to evaluate.

The other issue you'll run into is with the Mod function. Because words is continuous, outside the min and the max, the custom designer is going to have issues landing right on an integer.

If you put a bound on the mod function, it will find a design, such as in the code below. You could then change the value to the nearest increment for each level of mux.

The other option is to have words be a discrete numeric variable with a small subset of increments that work. For example, you could take the lower, upper bounds and midpoint for each level of mux. The Mod function should behave better in that case (ie, you don’t need to set the bounds on it like in the code below).

Hope that helps!

Cheers,

Ryan

DOE**(**

**{**Add Response**(** Maximize, "Y", **.**, **.**, **.** **)**,

Add Factor**(** Categorical, **{**"8", "16", "32"**}**, "mux", **0** **)**,

Add Factor**(** Continuous, **1024**, **32768**, "words", **0** **)**,

Add Factor**(** Continuous, **4**, **144**, "bpw", **0** **)**, Set Random Seed**(** **1253068796** **)**,

Number of Starts**(** **40** **)**, Add Term**(** **{****1**, **0}** **)**, Add Term**(** **{****1**, **1}** **)**,

Add Term**(** **{****2**, **1}** **)**, Add Term**(** **{****3**, **1}** **)**, Set Sample Size**(** **20** **)**,

Disallowed Combinations**(**

mux == **1** & words > **8192** | mux == **1** & **(**Mod**(** words, **32** **)** >= **1)** | mux == **2** &

words > **16384** | mux == **2** & words < **2048** | mux == **2** & **(**Mod**(** words, **64** **)** >= **1)**

| mux == **2** & bpw > **72** | mux == **3** & words < **4096** | mux == **3** &

**(**Mod**(** words, **128** **)** >= **1)** | mux == **3** & bpw > **36**

**)}**

**)**;

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Nov 26, 2014 9:07 AM
(748 views)

Rlek2, you are right on point! You responded the same time that a JMP Tech Support Specialist got back to me on this question. She made similar suggestions as you!

May I ask why you chose to designate mux as a categorical factor rather than discrete? The design works in either case, but I was just wondering.

Thanks again for your help!

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Nov 26, 2014 9:53 AM
(748 views)

Oops - I had been chatting with Tech Support about it, which is why you saw mux as categorical instead of discrete in my example.

You certainly could designate mux as discrete numeric - you just have to be more careful when defining the model, as the middle level (16) may not show up unless you include the quadratic term for the discrete numeric. You may also find cases where the middle level(s) don't show up as often. This is because the custom designer is treating the discrete numeric variable as continuous, and is trying to find the best assignment based on the model.

If you want to ensure balance among the levels of mux (or that they all get used if you have many levels), I would go with categorical.

Cheers,

Ryan

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Nov 26, 2014 10:21 AM
(748 views)

You're absolutely right! I didn't pay attention to how often the middle levels were appearing. The appearance of the levels are much better when designated as categorical factors per your suggestions.

Thanks Ryan, you saved the day. Happy TG!

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Nov 26, 2014 10:36 AM
(748 views)