DOE,平衡定制設計你好社區,
我正在嘗試根據 2 個因素進行平衡的 DOE 設計:A 為 3 個級別,B 為 31 個級別。 我希望我的因素 B 被複製約 1.41 次(我的因素 B 的 31 個水平在因素 A 的每個水平上進行測試,其中 13 個水平在因素 A 的每個水平上測試兩次)。
我希望 DOE 平台為我設計一個實驗,讓我的因子 A 的每個水平都有相同的運行次數(並且因子 B 也或多或少平衡)。 因此,我要求自定義運行次數為 132(因子 A 的每個級別 44 次運行)。 但不幸的是,我無法獲得平衡:對於因子 A 的每個級別,我都有 43 /44 /45 次運行。 可能不太清楚,希望代碼能有所幫助。
lstA = {"L1","L2" , "L3"};
lstB= {"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8", "V1_9",
"V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15", "V1_16", "V1_17", "V1_18",
"V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24", "V1_25", "V1_26", "V1_27",
"V1_28", "V1_29", "V1_30"};
eval(parse("DOE1 =
DOE(
Custom Design,
{ Add Factor( Categorical, "||char(lstA )||", \!"A\!", 0 ),
Add Factor( Categorical,"|| char(lstB)||", \!"B\!", 0 ),
//Set Random Seed( seed1 ),
Set Sample Size( "||char( 132)||" )}
);"));
DOE1<< Make Design;
DT_DOE= DOE1<< Make Table();
DOE1<<CLOSE window=""></CLOSE>當我的因子 A 水平更高時,這一切運行得非常順利。我猜3級有點低,但似乎仍然可以做點什麼。 可能有一個選項我忘記了。
歡迎任何幫助!
預先非常感謝
(適用於 JMP 14.1.0 64 位)
消費者和市場研究實驗設計回复:DOE,平衡定制設計你好大衛
我知道我對平衡的要求可能不是最好的統計數據,但這是我無法逃避的技術限制:\此外,我檢查了性能(最優性/功率...)看起來真的很接近。 也感謝您的閱讀推薦,我會看看。
回复:DOE,平衡定制設計我來這個帖子有點晚了,有一些有趣的解決方案。 但是,我想知道您是否只是將最優標準更改為別名最優。 該優化標准通常會盡可能地平衡事物。 這是我採用這種方法時的一個腳本,它似乎有效。
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"L1", "L2", "L3"}, "A", 0 ),
Add Factor(
Categorical,
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8",
"V1_9", "V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15", "V1_16",
"V1_17", "V1_18", "V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24",
"V1_25", "V1_26", "V1_27", "V1_28", "V1_29", "V1_30"},
"B",
0
), Set Random Seed( 1127601240 ), Number of Starts( 3796 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {1, 1}, {2, 1} ),
Set Sample Size( 132 ), Optimality Criterion( Make Alias Optimal Design ),
Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
)回复:DOE,平衡定制設計我選擇了 for 循環,以免陷入無限循環,因為可能存在 DOE 定義,我們無法找到解決方案。 然後我們就有了一個端點。
回复:DOE,平衡定制設計那是個很好的觀點 !
我可能使用“while”循環而不是經典的“if”,但我喜歡你的解決方案,謝謝!
回复:DOE,平衡定制設計你好@johanna_younous ,“並非總是”意味著 JMP 的解決方案可以滿足您的要求。 那麼為什麼不讓 JMP 嘗試直到設計達到平衡。
請參閱下面腳本中的循環。 這比手動更改因素要好。 嘗試了幾百次,我發現設計在超過一半的嘗試中是平衡的。 所以下面的循環應該總能為您提供解決方案。
Names Default To Here( 1 );
dt_sum = New Table( "DOE designs",
New Column( "Balanced", "Character", formula( If( :L1 == L2 == L3, "y", "n" ) ) ),
New Column( "L1", "Continuous" ),
New Column( "L2", "Continuous" ),
New Column( "L3", "Continuous" )
);
done = 0;
For( i = 1, (i <= 100) & !done, i++,
doe_obj = DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Categorical, {"L1", "L2", "L3"}, "X1", 0 ), Add Factor(
Categorical,
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8", "V1_9", "V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15",
"V1_16", "V1_17", "V1_18", "V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24", "V1_25", "V1_26", "V1_27", "V1_28", "V1_29", "V1_30"},
"X2",
0
), Number of Starts( 1 ), Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Alias Term( {1, 1}, {2, 1} ),
Set Sample Size( 132 ), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
);
doe_dt = doe_obj << make table();
doe_obj << close window();
Summarize( doe_dt, by_grp = by( :X1 ), by_cnt = Count() );
dt_sum << add row( 1 );
dt_sum:L1[N Rows( dt_sum )] = by_cnt[1];
dt_sum:L2[N Rows( dt_sum )] = by_cnt[2];
dt_sum:L3[N Rows( dt_sum )] = by_cnt[3];
// finish, when design is balanced, otherwise continue with new try
If( by_cnt[1] == by_cnt[2] == by_cnt[3],
done = 1,
Close( doe_dt, NoSave )
);
);
dt_sum << Distribution( Nominal Distribution( Column( :Balanced ) ) );回复:DOE,平衡定制設計“平衡”是古典設計的一個特點。雖然我們可以說平衡給了我們很好的統計特性,但主要動機可能是能夠在訪問計算機之前幾天進行分析(例如 Yates 算法)。定制設計不會強制平衡,事實上,輕微的不平衡可以提高統計性能(我認為這在 Jones & Goos 的“實驗的優化設計:案例研究方法”中進行了討論。如果您真的感興趣,我可能可以找出一些示例,在這些示例中我手動平衡了設計,並表明統計性能因此而下降。
回复:DOE,平衡定制設計你好格奧爾格,
非常感謝這個答案。
不幸的是,我剛剛測試了這個解決方案,但將開始次數固定為“1”不足以始終獲得 A 級的 44 結果。 事實上,當種子數量改變時,它也會改變。
到目前為止,我通過循環將 A 級與 B 級之一進行循環,“手動”解決了我的問題,直到獲得平衡,但這是事後完成的,它可能不是最好的解決方案,也不是最優雅的解決方案,也不是最好的統計解決方案。我希望我可以直接在 DOE 模塊中執行此操作。
回复:DOE,平衡定制設計你好@johanna_younous ,
在我看來,不平衡設計似乎是由 JMP 在根據最優性標準創建設計時所做的優化引起的。
如果將開始次數限制為 1,那麼 A 的每個級別都會獲得 44 次運行。
看:啟動次數 (jmp.com)
您可以將優化後的設計與未優化的設計進行比較。 在你的情況下,乍一看似乎沒有真正的區別(功率分析等)。
也許其他成員或 JMP 工作人員也有更好的答案。
Names Default To Here( 1 );
doe_obj = DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Add Factor( Categorical, {"L1", "L2", "L3"}, "X1", 0 ), Add Factor(
Categorical,
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8", "V1_9", "V1_10", "V1_11", "V1_12", "V1_13", "V1_14", "V1_15",
"V1_16", "V1_17", "V1_18", "V1_19", "V1_20", "V1_21", "V1_22", "V1_23", "V1_24", "V1_25", "V1_26", "V1_27", "V1_28", "V1_29", "V1_30"},
"X2",
0
), Set Random Seed( 1348397327 )
, Number of Starts( 1 /* 1000 */ )
, Add Term( {1, 0} ), Add Term( {1, 1} ), Add Term( {2, 1} ), Add Alias Term( {1, 1}, {2, 1} ), Set Sample Size( 132 ), Simulate Responses( 0 ),
Save X Matrix( 0 ), Make Design}
);
doe_dt = doe_obj << make table();
doe_obj << close window();
doe_dt << Summary( Group( :X1 ), Freq( "None" ), Weight( "None" ) );