感謝各位的參與。我的主題是「多種設計,少量時間」。我是JMP高階分析研發總監Ryan Lekivetz,目前領導JMP的DOE和可靠性團隊。我認為這個主題會很有意思,因為在最新版本的JMP中,我們對設計探索器做了一些額外的改進。如果您還沒看到,在本次演講結束時您就會看到。
但我想,在那之前,你們應該已經大致了解了。我們打算稍微繞個彎,聊聊實驗設計背後的理念。部分原因是…我回顧了之前的一些發現討論,發現自從 JMP 13 引入比較設計以來,我們就很少討論這個了。我想那已經是十年前的事了。我覺得如果沒有看到這句話,這應該就不是一次發現會議了,對吧? “所有模型都是錯誤的,但有些模型是有用的。”
誠然,當我們設計實驗時,我聽到的批評之一是這些模型太簡單,它們永遠無法真正解釋我的實驗過程。為什麼實驗設計能夠持續這麼久?歸根結底,它們能夠建立有助於理解和改進我們系統的模型。我們完全承認這些模型並非完美,但至少我們可以更了解哪些因素或哪些效應將驅動該系統。
我常喜歡用方差偏差權衡的方法來看實驗設計。我們會在不同設計的實驗結果中看到這一點。我認為這也是我在選擇設計時經常考慮的因素。這就是我擁有哪些模型效應背後的概念?我告訴 JMP 我想要的模型項,以及我可能沒有包含但可能成為有用模型一部分的模型項。如果我進行更多次運行,收集更多數據,可能會發現其中一些效應或模型項非常重要。
我們來看一個簡單的例子。你看,我設計了一個簡單的實驗,包含三個因子 X1、X2 和 X3,我已經完成了實驗並收集了一些回饋。當我考慮方差偏差權衡時,如果我們看一下估計效率之類的東西,它就能告訴我效應估計(在本例中為 X1、X2、X3)的標準誤差是多少。
如果這個 Y 值中有很多噪音,我可能就無法判斷太多。但如果我們實際看一下,這裡我剛剛產生了一些數據。我們來運行一下。如你所見,RMSE 大約在 1 左右。如果我們查看參數估計值,就會發現標準誤差與相對標準誤差 0.2 直接相關。
這實際上告訴我,如果我的效應估計值很大,如果我的主效應估計值很大,理想情況下,這個設計應該能夠檢測到這一點。這就是我們在這裡看到的,估計效率,以及分數的提升,我甚至無法做得更好。如果這是我正在使用的設計,我不可能做得更好了。
但現在真正的問題是:「如果我錯了怎麼辦?」 這個設計是我設計的。如果我們看一下實驗設計對話框,我假設有主效果。我有X1、X2和X3,我說我所有的都是主效果。那麼,如果事實證明X1和X2之間確實存在交互作用呢?也許已經太晚了,我已經仔細研究過了,也收集了數據,但會發生什麼事?同樣的設計,如果我看一下那個評估設計,如果我直接添加了那個特定的交互作用會怎麼樣? X1和X2。
我們在這裡看到,我想我用了不同的設計,但結果卻是 X2 和 X3 以及這個交互作用的數值增加了。所有這些都告訴我,實際上,由於添加了 X1 和 X2 的相互作用,我的 X2 和 X3 的變體數值略有上升,因為我的設計中並沒有考慮到這一點。我想說的是,這種情況通常也會在別名矩陣中出現,如果你曾經觀察過它,就會發現負三分之一的數值就是從那裡得到的。
這到底有什麼關係呢?如果我們考慮一下這個評估設計,這實際上是相同的設計。在這裡,我所做的就是明確地添加了 X1 和 X2 的交互作用。所有這些都表明我要取 X1 乘以 X2。讓我們在這裡思考一下。這就是我現在得到的估計值。
現在,如果我們看一下相關性的彩色圖,你會發現我們經常這樣做。這就是你得到那些較大區塊資料的地方。但現在這有什麼關係呢?假設我有X1和X2,我仍然可以模擬我的主效果。如果我對這樣的情況進行建模,這有什麼關係呢?
我們來看看參數估計值。現在你注意到了,結果不一定顯著,但這真的很重要嗎?我的意思是,一切都還好,那麼這種現像在哪裡運作呢?假設我反覆這樣做。你看到這裡,我得到了這個 Y 軸模擬。讓我們來看看背後的公式。假設這是我的真實模型。我有這些主效應,X1、X2、X3 都在起作用,以及 X1 和 X2 的交互作用。
但是,如果我在建模時遺漏了這一點怎麼辦?我們可以在 JMP 中反覆運行模擬。如果我這樣做,我們來看看會發生什麼。我只需要反覆繪製該分佈即可。我所做的只是添加一些隨機噪音。如果我們在這裡看到 X1,平均值正好在 2 處,這正是我想要的。 X2 是 3,這也是我們預期的。但你看,這裡的 X3 是 1。
這是為什麼呢?這和別名矩陣有關。事實證明,由於我漏掉了X1和X2,X3的偏差會達到參數估計值的三分之一。如果模型中沒有這個項,我們這樣做就會把事情搞砸。這是我們在設計實驗時必須始終考慮的事情,我們會盡力建立我們認為正確的模型。但很多時候,當我們進行診斷時,你會看到我們經常使用相關性的彩色圖,這是因為我們要比較模型中的項,以及那些可能屬於別名項集合的項,但如果這些項變得很重要,會發生什麼。
這就是客製化設計發揮作用的地方。如果您在 JMP 中沒有做過很多設計實驗,那麼客製化設計就是我們的首選。它可以根據您的特定實驗設定創建最優設計。在這裡,我們將進行客製化設計。我們假設我們有一個有用的模型。再次強調,並非所有模型都是錯的。我們假設我們對系統有足夠的了解,可以這樣說:“好吧,如果我觀察這些主效應或一些交互作用,我可以根據這個有用的模型進行設計嗎?”
現在,客製化設計的一個特點是,即使你看一下那個懸停,它也會討論到最優設計的概念。最優設計中的效率概念,實際上與我們實際想要從實驗中獲得的結果有關。具體來說,如果我們在這裡啟動客製化設計,我們不同的最優標準,如你所見,有各種不同的字母,D、I、A,以及建議值。這歸結起來是什麼?
嗯,第一個基本條件就是,如果我要估計模型項。假設我們有一個有用的模型,我可能想確保我能很好地估計這些項。
無論是我的主要效應,還是我的交互作用,我都不想深入探討其中的數學細節。類似D最適性,就是要最小化這些參數估計的整體信賴橢球。它表示我要一次考慮所有這些因素。而A比較像平均值,你只需要最小化這些參數估計的平均變異數。
如果我只是說“我真的想確保我得到的是正確的術語”,那麼這些就很棒了。但是,這個模型有用嗎?我能弄清楚這個有用模型中最重要的東西是什麼嗎?
那麼,這些是從哪裡來的呢?嗯,讓我們來看看,在客製化設計中,它會基於我告訴 JMP 的模型。預設情況下,它可能只包含主效應。那些別名項可能很重要,但我沒有將它們包含在模型中。而如果我告訴 JMP,我想要這些雙因子交互作用,那麼它就會基於我告訴它的模型來計算不同的效率。這就是客製化設計的概念。
現在,假設我實際上認為我已經有一個有用的模型。也許我更感興趣的是預測,更好地預測反應。這時,你就得到了另一個 I 最優性。我只是想最小化平均值。如果我考慮整個設計區域,我只是想確保我總體上做得很好。我會使用 I 最優性。
在一些不同的效率指標中,G最優只是說:「最小化最壞情況。確保我不會表現得太糟糕。」你也會看到一些其他的東西。別名最優,這更像是一種妥協。它說:“保護我免受那些別名項的偏差影響。盡量保護我免受那些模型中可能沒有但可能很重要的項的影響,同時仍然保證總體設計合理。”
您還會看到一個名為「如果可能」的項。如果我回到那個實驗設計(DOE)。 「如果可能」項是什麼?我們來看一下。現在我可以告訴 JMP:“這些交互作用,也許重要,也許不重要。我現在可以將它們設置為‘如果可能’。” 這句話其實是在告訴 JMP:“給我那些必要的項。你必須確保能夠估算它們。‘如果可能’項,如果你沒有機會估算它們,那就去做吧,但它們不像那些必要的項那麼重要。”
這些是如何發揮作用的?我可以告訴 JMP:「這就是我想要的。我有我的模型,我有我的別名項,我有不同的最優性準則。」 現在,最大的問題之一實際上是在設計評估階段。我已經創建了我的設計,並告訴 JMP,這就是我想要做的。結果發現,有些診斷與樣本量有關,有些則無關。
如果你考慮功效分析之類的事情,你會發現功效其實並不關心你的樣本量。當然,樣本量越大,你的效果估計的效能就越高,但這與樣本量無關。
同樣,估計的標準誤差只是一個計算,但信賴區間的分數增加與樣本量有關。
同樣,相關性的彩色圖只是一種計算,但我們最終得到的不同效率指標與樣本量相關。這只是我創建的12次運行設計。我只提到了主效應。正如我之前所說,其中一些,例如功效,只是簡單的計算。像設計診斷這樣的功能,你會看到它顯示「嗯,這是100%的D效率」。這是因為它是一個12次運行的設計,它達到了12次運行設計所能達到的最佳效率。
但同時,我可以對16次運行的設計做同樣的事情。但現在,如果我們看一下功效分析,不出所料,我們的樣本量更大了。現在,設計診斷在這裡。同樣,D、G和A效率都顯示為100%,因為這些效率與樣本量有關。
這告訴我,對於16次運行的設計,我不可能做得更好了。同樣,對於12次運行的情況,它說,對於12次運行,我不可能做得更好了。這是否意味著我應該使用12次運行的設計而不是16次運行的設計?嗯,這要視情況而定。如果我能負擔得起16次運行,也許我更願意考慮其他一些因素,以確保這是否是我想要做的。
這實際上有時會成為問題,因為當我開始思考哪些應該比較,哪些不比較時,我們就需要用到比較設計了。在討論這個問題之前,我想先談談確定性篩選設計。如果你參加過一些 JMP Discovery 會議,你會經常聽到有人提到確定性篩選設計。事實上,我們已將其列在確定性篩選設計菜單的首位。
再次強調,這裡不想過度涉及數學細節。確定性篩選設計之所以特殊,是因為它採用了會議矩陣的折疊概念。現在,我非常喜歡將確定性篩選設計視為這些折衷方案。如果你還記得那些不同的最優性準則,它們實際上是作為一種別名最優設計被發現的。但它們實際上是有效的設計,我們在對角線上保留了零點,並添加了一個中心點。確定性篩選設計如此受歡迎的原因之一是,當我們考慮方差偏差權衡時,會發現這些設計是正交的。
回到那個估計,主效果估計得非常好。但如果我們發現有交互作用或二次效應,這些主效應就會受到保護。我們擁有偏差保護機制,如果有用的模型存在二次效應或交互作用,透過以這種方式建構設計,我們將獲得內建的保護。也就是主效應偏差保護。
現在,想想我之前提到的另外兩個設計,我們為什麼要用這個?我想說,其中一個非常好的地方是,透過添加零點,我們可以確保是否存在非線性效應,如果設計空間中間發生了某些事情,那麼傳統的只使用正一和負一的方法就會忽略這些變化。我喜歡這樣想:如果我烤蛋糕,也許我應該使用 350 度。如果我用 325 度或 375 度,可能就不太合適了。
如果我告訴 JMP 我希望我的範圍在 325 到 375 之間,我實際上從未在 350 處看到任何東西,而也許我想確保我正在這樣做。
我在這裡想順便提一下,你可能沒有註意到,如果你上過實驗設計課,他們經常會提到經典的部分因子設計,這些設計會出現在我們的篩選設計平台中,但其中也隱藏著一些叫做近正交設計和正交混合水平設計的東西,它們實際上就像是“確定性篩選”的一個特例。它們實際上隱藏在經典設計之下。在最新版本的 JMP 中,你將會看到我們讓這些設計更容易找到。
最終篩選設計的另一個問題是,我實際上無法從客製化設計中獲得它。我之前說這是一個折衷方案,別名是最優的,但結果卻恰到好處地強制使用了那些零。如果你曾經嘗試過同時進行最終篩選設計和客製化設計,那麼這是可以做到的,但這需要大量的工作。而我需要做的,我可以在這個平台上自動完成。它幫我建造起來沒有任何麻煩。
假設我正在和一些同事討論,我們正在三種不同的設計之間進行討論。有人已經做過了。我有一個12次運行的設計,它來自五個因素的客製化設計。我有一個五因素的最終篩選設計,以及一個16次運行的設計。現在,16次運行的設計會更貴。但是我想做什麼呢?嗯,這就是比較設計發揮作用的地方。
現在,我可以在同一個平台上比較多個設計。我不用費心去啟動這些單獨的評估設計,也不必費力去弄清楚哪些設計值得比較,哪些不值得比較。我剛才提到,你可以匹配列名,或者讓 JMP 嘗試一下,這樣我們就可以考慮多個模型了。
你會發現比較設計。在「實驗設計」(DOE)的「設計診斷」下,我們可以看到比較設計。你現在可以看到我的活動資料表是第16次運行的資料表。我們可以將它與第12次運行和第13次運行的數據表進行比較。現在,在底部,我可以告訴JMP我想要如何匹配列,但我們先試試自動匹配。
JMP 會嘗試找到實現這一點的方法。我們在這裡看到,它確實找到了正確的方案。即使它們的因子名稱不同,JMP 也會嘗試幫你配對。比較設計之類的功能有什麼好處呢?現在我可以開始進行功效分析之類的工作了。現在我可以和同事一起研究,然後決定這三個設計中選哪一個?當然,16 次運行的成本會更高,但當然,我會獲得更高的功效。
我可以觀察事物。設計空間圖的這個部分與預測變異數有關。在整個範圍內,它的表現如何?現在,好消息是,因為我們在比較設計,所以我們可以使用相對效率的概念。我不必擔心它與特定的運行規模進行比較,我可以直接進行這些比較。
現在你會說:「嗯,根據這個,我可能只想用那個16或12。我為什麼要用DSD?」這就回到了這個問題。問題在於這些不同的相關性。那些模型項與別名項。如果結果顯示我有一個類似雙因子交互作用的變量,這就是比較設計的好處。我可以玩假設遊戲。實際上,我們可以看到,在這種情況下,其中一個設計甚至無法擬合那個特定的交互作用,因為它的設定方式。
現在我可能會說:「嗯,這有問題。我再試試加點別的。」你會發現,這個設計似乎沒什麼用。現在你可以想想,如果我嘗試加入交互作用,看起來那個16次運行的設計有問題。我試著把它們全部加進去。我們看到JMP實際上告訴我:“嗯,這個設計實際上很難擬合交互作用。順便說一句,我已經構建了它,因為我之前沒有把這個因素考慮進設計構建中,現在我再嘗試添加它,根本無法很好地完成。”
這又回到了那個想法,如果我擔心那些別名項,那麼這裡就有一些雙因素交互作用的別名項。如果我擔心交互作用,那麼我可能更傾向於使用類似確定性篩選設計的方法。這時比較設計就能幫我解決這個問題了。
好的,我想說比較設計是一個非常棒的工具。自從我們內建了這個工具以來,即使在JMP中,我們也經常使用它。不過,比較設計的一個問題是,如果你注意到的話,我需要建立每個單獨的資料表,而且我必須非常清楚自己想要比較哪些設計。
但早些時候,我實際上更願意在進行全面的設計比較之前考慮更多設計。這時設計探索器就派上用場了。如果你沒看過設計探索器,我這裡會再次啟動自訂設計,然後做同樣的事情。我們只需要增加五個不同的因素。然後我點選「繼續」。
假設我們要嘗試這個主效果模型。如果你注意到,就在那個設計方案的正下方。當它可用時,你會看到一個設計探索器。 「使用目前的因子和模型,探索不同的設計方案,以幫助選擇設計方案。」讓我們點擊設計探索器,看看會得到什麼。它告訴我,我有一個主效應模型,我在這裡找到了這個模型。
我們看到的是,為單一設計或指定選項的組合選擇選項。也許現在我想和某人談談,我們會說:「好吧,我們試試D最優設計和A最優設計,可能運行12到20次。」如果我讓設計瀏覽器這樣做,你會看到它實際上創建了運行12、16和20次的D最優設計,以及運行12、16和20次的A最優設計。
在先前版本的設計探索器中,我只能在自訂設計中產生一些內容。在最新版本的 JMP 中,我甚至可以引入最終篩選設計。如果我想比較一下如果進行最終篩選設計會產生什麼結果,現在就可以試試看。
現在我可以開始比較這些不同的效率,看看會發生什麼。你注意到了嗎,它會告訴我…主效應與二次效應和雙因子交互作用正交。這給了我一個提示,透過選擇這一點,我可以做一些額外的事情。現在我明白了,我可以開始比較這些不同的設計相對於我現有的其他選擇的效果了。
同樣,這是一種你可能從未見過的設計,它非常接近正交陣列,實際上只是試圖平衡。這種主效應篩選設計,它所做的就是平衡每對列。同樣,像這種正交混合水平設計,過去隱藏在篩選平台下的另一種設計類型。
現在我可以快速生成所有這些不同的設計,並開始考慮我可能想要使用哪一個。同時,我可能開始感到不知所措。我會說:「好吧,我什至不知道從哪裡開始。為什麼不把它發給同事呢?」你看,我們有這個增強的數據表。我有效率與運行次數的關係圖,以及效率散佈圖。但它的另一個好處是,我現在可以把它發給同事。我這裡有現成的腳本,他們可以運行並創建這些設計。
同樣,如果我自己做這件事,我可能會說:「好吧,這個經過17次運行的DSD看起來不錯。讓我評估一下,看看效果如何。」我仍然可以直接在這裡進行設計評估。也許等我準備好了,我就可以繼續創建選定的設計了。我的17次運行的最終篩選設計已經準備就緒。
這就是設計探索器。如果你在 Discovery,我會在,很樂意和你聊聊這個。如果你不在,你可以在下方留言。這個是在線的。
最後再說幾點。我想說,即使有了設計探索器,你仍然可能覺得設計太多了。我喜歡這句話:“偶然的發現常常值得慶祝,但精心設計的發現更可靠。”
好吧,這麼說吧,所有模型都是錯的。我喜歡的另一句名言是:「計畫實驗的最佳時機是在實驗完成後。」我想我做過的每一個實驗,總會有人這樣想:「唉,真希望我當時就做了這個。」 或者事後你會想:「嗯,如果我事先想到的話,這顯然是可行的。」但事實上,如果你正在考慮做一個設計實驗,那麼你已經領先了。
即使是那些失敗的實驗,或是我稱之為失敗的實驗,你總是能從中學到一些關於下次該做什麼的知識。你真的應該把實驗設計看成一個循序漸進的過程。實際上,它能幫助你弄清楚下一次該做什麼。
不過,我想提的另一件事是,建模方式確實很重要。一般來說,只要你只是在思考實驗設計,在JMP,我們每天都會思考如何讓使用者在運行實驗時處於最佳位置,並嘗試透過諸如確定性篩選設計之類的方法保護他們,避免偏見等等。
但歸根結底,如何建模確實很重要。如果你考慮諸如確定性篩選設計和所有這些相互作用的「如果可能」項之類的因素,當我設計實驗時,我經常嘗試不同的建模技術,以確保我沒有遺漏一些我可能沒有考慮到原始模型中的項,或者確保我認為有用的模型是我能找到的最有用的模型。
我想說,當你進行功效分析之類的分析時,這一點也非常正確。我思考的一點是,如果我有這四個因子及其交互作用,如果我對這些主效應和雙因子交互作用進行功效分析,我很少會期望這些項中的每一個都會出現在我的最終模型中。
我常在考慮功效分析之類的問題時,會進行模擬來玩「假設遊戲」。如果其中兩個顯著呢?或者如果其中三個顯著呢?因為我的最終模型很少包含所有這些因素。我認為,在設計這些實驗時,你需要牢記的一點是,我要在模型選擇和「假設遊戲」方面投入多少精力?
非常感謝大家抽空。希望本次演講對大家有幫助。歡迎大家在下方留言評論或提問。謝謝。