介紹
歡迎回到我們的空間填充設計系列!在第一部分中,我們探討了空間填充設計的基本原理和常見類型。現在,我們將深入比較研究的核心:建立一個穩健的框架,以便在不同場景下評估和比較這些設計。
比較研究框架
為了公平地評估空間填充設計,我們需要標準化的條件和有意義的指標。我們的方法從多個效能維度評估設計。
- 回覆
空間覆蓋率指標/均勻性響應
- 偏差:用於衡量與理論均勻分佈的偏差。目標是最小化設計產生的分佈與每個因素的均勻分佈之間的差異。偏差反應可以評估設計點重新分佈的空間覆蓋率和均勻性:偏差越低,設計點的重新分佈越均勻(實驗空間的覆蓋率也越高)。
在空間填滿平台中輸入因素並選擇設計類型後,即可在設計診斷面板中找到差異值(圖 1)。
圖 1:空間填滿設計面板。快速柔性填充設計(雙因素,20 次運行)的設計診斷。設計生成後,在設計診斷面板中顯示偏差值(紅色)和 MaxPro 值(藍色)。
為了更好地理解差異值及其與設計點之間距離的關係,讓我們比較兩種空間填充設計——拉丁超立方和快速靈活填充——它們針對六個因素創建,每個因素運行 60 次(圖 2)。

圖 2:快速靈活填充和拉丁超立方設計中點之間最小距離的可視化。
比較兩種設計方案中點之間的最小距離,我們可以清楚地看到,拉丁超立方設計方案的最小距離值分佈非常窄。這一結果表明,對於這種特定的維度和點數,拉丁超立方設計方案比快速靈活填充設計方案具有更好的差異性,因為在這種設計方案下,設計點分佈均勻,從而能夠獲得更穩定的最小距離。
投影屬性響應
- MaxPro:評估投影到所有可能的因子子集上的空間填充特性。目標是最小化 MaxPro 準則,以確保點之間的距離在所有維度上都最大,從而確保設計點在低維空間中的良好投影。因此,成功最小化此準則的唯一方法是確保任何兩個點在任何維度上都不具有相似的座標值。
在空間填充平台中輸入因素並選擇設計類型後,即可在設計診斷面板中找到 MaxPro 值(圖 1)。
對於球體堆積設計,MaxPro 統計量未定義,因為點在一個維度上可能具有相同的值。
為了更好地理解 MaxPro 值及其與設計投影特性的關係,讓我們比較兩個空間填充設計——拉丁超立方和快速靈活填充——這兩個設計分別針對六個因子進行了 60 次運行。
如果我們把這兩個空間填滿設計的設計點投影到二維平面上,就可以比較投影的差異(圖 3)。
圖 3:兩種空間填充設計(六因子,60 次運行)的投影特性視覺化。請注意,在拉丁超立方設計中,Waern 連接線如何根據設計點的實際鄰近性連接所有設計點,但在快速靈活填充設計中則不然。
對於左側的拉丁超立方設計,設計點之間的距離均勻且較小。這種較小且均勻的設計點距離減少了點在所有投影上的分佈,從而提高了 MaxPro 準則值。對於右側的快速柔性填充設計,設計點之間的距離不均勻且較大,這對應於這些點在投影到較少維度時發生坍塌的風險較低。
在考慮不同樣本量時,差異值和 MaxPro 值呈現顯著負相關。差異值極低的設計可能具有較高的 MaxPro 值:由於樣本量大,設計點之間的距離較小,導致這些點在低維度空間中更容易彼此靠近。因此,差異值和 MaxPro 準則主要用於比較樣本量相同的不同設計。
設計生成複雜性
- HP Time():HP Time() 函數傳回以微秒為單位的高精確度時間值。由於函數只有在與另一個 HP Time() 值結合使用時才有用,因此它被包含在設計生成腳本中。此範例建立了一個球體堆積設計,針對三個因素進行了 60 次運行,產生時間的記錄和顯示是兩個 HP Time() 函數共同作用的結果:
t1 = HP Time();
DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Set Random Seed( 138892707 ),
Space Filling Design Type( Sphere Packing, 60 ), Simulate Responses( 0 ),
Set Run Order( Randomize ), Make Table}
);
t2 = HP Time();
Show( t2 - t1 ); The generation time (t2-t1) can be seen in the log (Figure 4).

圖 4:腳本的日誌結果,顯示產生時間。
A transformed response column Time (s) is used for the response, as the units (seconds) are much more understandable and comparable between designs and enable the design generation time to be assessed more easily. The column Time (s) is created with the following formula:
Time (s) = HP Time (µs) / 1000000
- 因素
由於我們想要涵蓋空間填充設計生成過程中最大的差異,我們需要具體說明有助於在設計生成方法、維度和點密度方面創建多樣化設計的不同因素。
- 設計類型:如本系列第一篇文章所述,空間填充設計存在多種設計生成方法,針對不同的應用場景和優勢,它們在分佈或幾何方面各有側重。在本研究中,我們將探討最常用的空間填充設計生成方法,包括均勻填充、球體堆積、拉丁超立方填充和快速柔性填充。
- 維度(因子數量):隨著維度(因子數量)的增加,空間填充設計的性能可能會下降,因為要保持每個因子的均勻分佈和良好的投影特性變得更加複雜和耗時。為了研究維度對所列不同反應的影響,我們從三個層面研究維度:
- 樣本量變化(運行次數/因子):預設情況下,JMP 提供的每因子運行次數的預設值為 10,這可以保證良好的設計效能並確保易於建模。然而,根據實驗預算的不同,空間填充設計的性能可能會有很大差異,因為對於較少的設計點,要保持每個因子的均勻分佈或良好的投影特性可能會變得非常複雜。為了解決這個問題,我們測試了多種樣本量:
- 小的每個因素有三個設計點,這種情況類似於經典的中心複合設計 (CCD),其中點的重新分配使得每個因素在其最小值、中間值和最大值處進行測試。
- 中等的每個因素 20 個設計點,接近 JMP 預設的每個因素 10 個設計點的比例。
- 大的每個因素有 100 個設計點,滿足了建立高預測模型的需要,因為設計空間中的點密度很高。
- 實驗步驟:設計選擇
我們希望採用非常簡單的設計,以便於比較不同因子水準。此外,由於設計產生種子並非固定不變,我們希望評估演算法變異性,並將這種隨機變異性與任何因子效應區分開來。同時,某些組合對於特定的設計配置可能難以實現,因此我們希望設計能夠即使在存在異常值或缺失值的情況下也能進行穩健的分析。
基於以上所有原因,我們選擇全因子設計。在 JMP 中建立全因子設計非常簡單直接:在 DOE 選單中選擇「經典」 ,然後選擇「全因子設計」 (圖 5)。

圖 5:用於建立全因子設計的 DOE 選單。
根據前面列出的回應和因素定義,我們可以建立我們的設計來評估和比較不同的空間填充配置(圖 6)。

圖 6:建立全因子設計以評估和比較不同的空間填充方案。
由於全因子設計可以執行所有可能的因子水準組合,因此需要 36 次運行 (4x3x3)。產生完整析因設計的腳本如下:
DOE(
Full Factorial Design,
{Add Response( Minimize, "Discrepancy", ., ., . ),
Add Response( Minimize, "MaxPro", ., ., . ),
Add Response( Minimize, "Time", ., ., ., ., ., "s" ),
Add Factor(
Categorical,
{"Fast Flexible", "Uniform", "Sphere Packing", "Latin Hypercube"},
"Type",
0
), Add Factor( Continuous, {3, 6, 9}, "Factors", 0 ),
Add Factor( Continuous, {3, 20, 100}, "Ratio exp/factors", 0 ),
Set Random Seed( 31068506 ), Make Design, Simulate Responses( 0 ),
Set Run Order( Randomize ), Make Table}
);
使用此腳本獲得的資料表如圖 7 所示。
圖 7:全因子設計表
回應評估
對於設計中的每一行,都會建立一個空間填滿設計,並指定對應的參數值:連續因子數、每個因子的點數和設計類型。所有設計配置的偏差值和 MaxPro 指標值都會被記錄下來。
分析框架
為了分析這項關於空間填充設計的綜合研究結果,我們考慮了兩種方法:
<CODE class=" language-jsl"><CODE class=" language-jsl">
<UL>
<LI><STRONG><SPAN>建模方法</SPAN></STRONG><SPAN><SPAN>建模方法是在設計生成後,使用資料表中附加的模型腳本來實現的。由於研究設計是全因子設計,因此在此腳本中指定的預設先驗模型包含所有主效應(設計類型、因子數量和每個因子的實驗比例)以及所有雙因子交互作用(圖 8)。<BR /><BR /></SPAN></SPAN><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="FitModel1.svg" style="width: 888px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="FitModel1.svg" style="width: 888px;"><span class="lia-inline-image-display-wrapper" image-alt="FitModel1.svg" style="width: 888px;"><img src="https://us.v-cdn.net/6038925/uploads/images/86065i17D7A66B8EE3BEA4/FitModel1.svg" width="888" height="499" role="button" title="FitModel1.svg" alt="FitModel1.svg" /></span></SPAN></SPAN><BR /><EM style="font-size: 1em;">圖 8:預設擬合模型啟動。</EM><EM style="font-size: 1em;">選取<STRONG>「分別擬合」</STRONG>選項,以便為每個反應變數擬合單獨的模型。</EM><BR /><EM style="font-size: 1em;"><EM style="font-size: 1em;"><BR /></EM></EM> <P><SPAN>由於連續因子使用了三個水平,因此修改了建模腳本以考慮連續因子的二次效應引起的曲率效應(圖 9)。<BR /></SPAN></P> <SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="FitModel2.svg" style="width: 889px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="FitModel2.svg" style="width: 889px;"><span class="lia-inline-image-display-wrapper" image-alt="FitModel2.svg" style="width: 889px;"><img src="https://us.v-cdn.net/6038925/uploads/images/86066i67BC3913B034FFA6/FitModel2.svg" width="889" height="500" role="button" title="FitModel2.svg" alt="FitModel2.svg" /></span></SPAN></SPAN><EM style="font-size: 1em;"><EM style="font-size: 1em;">圖 9:啟動修改後的擬合模型。模型腳本透過為連續因子添加二次效應進行修改。選擇兩個連續因子,然後按一下<STRONG>「巨集」</STRONG> > <STRONG>「多項式階數」</STRONG>以新增兩個二次效應。<BR /><BR /></EM></EM> <P><SPAN>用於分析空間填充設計性能反應的模型包括連續因素的主效果、雙因素交互作用和二次效應。</SPAN></P> </LI>
</UL> <BR /> <H2 style="font-weight: 400;" id="toc-hId-227218614" id="toc-hId-227305847" id="toc-hId-227305847"><STRONG>接下來</STRONG></H2> <P><SPAN>在最後一篇文章中,我們將揭曉這項全面對比的結果!我們將展示哪些空間填充設計在不同場景下表現優異,並根據實驗目標和限制條件,提供設計選擇的實用指南。</SPAN></P> <P><EM><SPAN>這是關於空間填充實驗設計的三篇系列文章的第二部分:</SPAN></EM></P>
<OL>
<LI><SPAN><A href="https://community.jmp.com/t5/JMP-Blog/Part1-Introduction-to-common-types-of-space-filling-designs/ba-p/906541" target="_blank">空間填充設計常見類型簡介</A>. </SPAN></LI>
<LI><STRONG><SPAN>比較框架和評估指標</SPAN></STRONG><SPAN>(這篇文章)。</SPAN></LI>
<LI><A href="https://community.jmp.com/t5/JMP-Blog/Exploring-space-filling-designs-part-3-Results-analysis-and/ba-p/915402" target="_self"><EM><SPAN>結果、分析和設計選擇指南</SPAN></EM></A><SPAN>.</SPAN></LI>
</OL>
Victor,您好!非常感謝您這篇富有洞見的貼文! JMP 是否可以計算非 JMP 產生的空間填充設計的空間填充設計診斷指標,例如差異和 MaxPro 標準? 「評估設計」功能似乎沒有提供這些統計數據,所以我想知道是否有其他更簡單的方法來進行這項評估。
嗨@ktbrickey22 ,
非常感謝您的正面回饋!
目前還無法計算在 JMP 之外產生的空間填充設計的任何診斷指標(差異和 MaxPro 值)。這也是我在為這篇部落格做實驗時遇到的問題: 如何獲得任何空間填充設計的 MaxPro 值?由於目前似乎無法輕鬆計算這些值,我為此創建了一個願望清單: 空間填充設計的比較平台
目前,如果我需要比較兩個空間填充設計之間的差異,我會使用SciPy 中的差異函數。雖然它給出的值與 JMP 中的值不同,但它允許我比較任何設計。 SciPy 還提供了其他一些不錯的指標和視覺化工具,例如最小生成樹,可以用來視覺化點之間的最小距離。
對於 MaxPro 來說,這是一個更複雜的問題,我還沒有找到令人滿意的解決方案(目前為止)。
希望這個答案對您有幫助 
感謝@Victor_G 的快速回覆和建議!我很喜歡你列出的願望清單,我會在此期間研究一下 SciPy 函數。謝謝!
@Victor_G ,我有個問題。關於您上面提到的 MaxPro 方法,您提到「目標是最大化 MaxPro 準則,以確保設計點在低維空間中得到良好的投影」。但是,在說明文件中卻說目標是最小化 MaxPro 準則。您能解釋一下嗎?
嗨@charlie_whitman ,
非常感謝您仔細閱讀並提出意見,並指出了這個潛在的錯誤。我深感抱歉,我在閱讀有關 MaxPro 準則的內容時可能產生了誤解。該準則旨在評估設計的投影特性,因此投影特性越高越好,因為它有助於最大化資訊量,即使在存在不活躍/低重要性因素的情況下,也能實現高效的佈局設計。它透過最大化潛在設計點之間距離的乘積來影響佈局間距。然而,在 JMP 幫助文件中 MaxPro 準則的公式中,設計點之間的距離位於分母,因此該準則似乎應該最小化。 JMP 幫助文件中的「設計診斷」部分也重複了這一點:「值越小越好」 。
即使 JMP 說明文件中有相關說明,我仍然感到困惑,尤其是在查看貝葉斯最佳化平台中的「最大化 MaxPro 準則」選項時。最大化 MaxPro 準則有什麼好處(在查看實驗空間的較小子空間時,可能會出現運行結果聚集或「堆疊」的情況)?這部分的說明文件提到:「此選項是對因子空間進行無模型探索,避免在訓練資料和目前批次中重複任何因子設定。當一個或多個模型擬合不佳時,無論批次大小如何,都可以使用此選項。 」 如果目標是由於模型擬合不佳而進行進一步探索,那麼為了確保新添加的運行結果得到良好的覆蓋,此選項是否應該是最大的距離來
如果 JMP DoE 團隊的某位成員能夠幫忙解答這個疑惑,我將不勝感激!
我將盡快對本部落格文章系列的第二部分和第三部分進行相應更正。
@Victor_G - 感謝您的快速回覆。發現不一致之處的不是我,而是一位客戶。再次感謝!
@charlie_whitman再次為這個錯誤道歉。第二部分和第三部分已經進行了更正。如果您或您的客戶發現其他錯誤,請告知我(希望不會)。