PLS平台未經驗證改裝+如何使用bootstrap?你好,
1) 我正在做 PLS,我有 42 個觀察值。 可能的預測變數的數量範圍從 24 到 79 到 240,取決於我預選變數的數量。 我的 Y 是絕對值,要嘛是 2,要嘛是 3。 運行平台啟動後,我進入 NIPALS/SIMPLS 部分,無論我使用哪種類型的驗證(Kfold、保留、e 保留)或選擇多少個因素 - 我總是收到錯誤 - “最佳模型有0因素,改裝未經驗證」。有什麼建議我可以做些什麼來解決這個問題嗎? 我真的很想使用 PLS,但是沒有任何驗證的建模只是過度擬合...
2)一旦得到結果,我就有了預測公式。 引導它的程式是什麼? 我對引導結果的程序有很多不確定性;我希望 JMP 已經將引導引入驗證過程。 我假設我需要對引導係數進行平均,但會引導該表重新運行,整個模型包括。 k 倍驗證(如果有效的話)? 如果是這樣,我應該使用中心和縮放資料還是原始係數? 我必須手動輸入結果作為公式,所以我假設我應該引導原始係數,但是會使用中心縮放資料運行模型並提供原始係數,或者使用原始係數運行模型? 從過程的角度來看,整個過程對我來說相當不清楚,即一步一步發生什麼才能達到我想要的結果;任何幫助/見解將不勝感激!
謝謝,
烏列爾。
預測建模和機器學習回覆:PLS平台未經驗證改裝+如何使用bootstrap?你好@utkcito ,
現在我明白了「bootstrap」最初的意思——運行 bootstrap 平台是一個很好的方法,但您還需要使用神經網路、GenReg、boosted trees 來運行預測模型,甚至獲得 XGBoost 外掛程式 -在驗證測試集上比較不同的預測公式。 執行此操作時,您需要確保並調整您的設置,以便獲得最佳的配合 - 預設配合並不總是那麼好。
但是,樹方法的一個好處是它是一種聚合方法,使用許多不同的決策樹來建立模型。 如果這些因素的貢獻不是很重要,它們將自動被推低,並且不會顯示對整個模型有很高的貢獻。 儘管如此,由於隨機啟動和決策過程,引導森林和提升樹方法並不是特別穩定——當您運行相同的設定數百次時,您會發現實際上得到的答案和公式略有不同。 這就是為什麼最好在輸出報告中引導「SS」或「部分」(例如在引導森林中),以便更好地估計該因素在模型中的實際強度。
話雖這麼說,您需要確保使用交叉驗證方法來確保不會過度擬合。 而且,對於相對較短的資料表(沒有那麼多測量),如果不使用留一法,就很難做到這一點,除非您使用我在先前的回覆中提到的自動驗證方法。 K 折交叉驗證對您來說可能也是一個好方法。
我不確定您的輸入數據是什麼樣的,但聽起來幾乎是 JMP 所說的“功能數據”,例如光譜或其他規則間隔的數據,其中每個波長(或 x 值)與其鄰居相關。 您可能想要研究使用函數資料瀏覽器來產生更好的預測變數子集。 或者,PCA 也是降低預測變數維數並使用較小的正交向量集對資料進行建模的好方法。
至於你的觀點:
1) 是否存在理論(生物、化學、物理)原因來包含 *2 階乘方法中如此多不同的交叉項? 如果您沒有理論上的理由將它們包含在內,那麼它就沒有多大意義,而且您可能會引入錯誤的預測變數。
2) 在 PLS 平台中,查看報告中「解釋的變化百分比」下的累積 Y 回應也很重要。 如果你的預測變數的線性組合不能解釋Y 中的大部分反應,那麼你解釋的變異百分比將會非常低,這表明你的預測變數在解釋Y 中的變異的線性組合方面並沒有做得特別好,並且不同的平台可能會運作得更好。 由於反應測量如此之少,嘗試擬合如此大量的預測變數可能會導致過度擬合,因為您沒有足夠的自由度。 除了 PLS 之外,您可能還需要考慮查看多元分析下的因素分析平台。 我認為你的細胞激素變數可能太多了,你失去了自由度。 想像一下,有兩個點並擬合一條直線,或者有三個點並擬合一條拋物線- 您會得到完美的擬合,因為這正是擬合這些多項式所需的最小點數,但是,您會失去任何自由度,且無法再估計誤差或適合的品質。 我認為這就是 PLS 平台中正在發生的事情。
3)社群頁面是最好的。 我總是檢查它們,特別是當我在 JMP 中編碼時檢查 JSL 腳本。 幾乎總是有一段別人已經解決的程式碼片段正是我工作所需要的。 我也喜歡回答問題並看看我能提供什麼幫助,尤其是當我開始學習新事物時。
祝你好運!,
DS
回覆:PLS平台未經驗證改裝+如何使用bootstrap?嗨,DS,
1)我有24到237個變數的原因正是因為它取決於我做了多少變數選擇。 24是在bootstrap forrest之後,然後我可以做*2階乘。 237是整套細胞激素。
2)“預測變數也需要與反應共變,否則你會得到這個錯誤 - 這意味著你的預測變數沒有線性組合來解釋你的反應的變化「你能解釋更多嗎? 我認為協方差是相互之間的,即它們是多重共線性的,並且 PLS 通過創建構成該協方差的因素來使用變數之間的協方差。 當你說他們必須與回覆。 我很難想像,在24、79 或237 個細胞因子變數中(它們實際上是縱向測量的平均值、中位數和IQR),它們的線性組合無法解釋反應的任何變化(ICU 中的危重疾病);事實上,他們已經在其他設定中這樣做了,所以我不明白為什麼 JMP 會這樣做。
3)感謝您對如何操作引導的解釋,它更有意義,我嘗試了它並且它有效。 我總是感到驚訝的是,JMP 的正式文件幾乎沒有什麼幫助,關於它如何運作以及如何使其工作的細節很少,而論壇、教程等實際上有多大幫助。
多謝!
烏列爾。
回覆:PLS平台未經驗證改裝+如何使用bootstrap?你好@utkcito ,
首先,PLS 可能不是用於資料的最佳平台。 最好將其作為 GenReg 或 Stepwise 運行,以查看哪些預測變數在模型中實際上很重要。 我確實覺得很奇怪,你的預測變數數量從 24 到 240 不等。 由於相對於可能的預測變數數量而言,觀察結果如此之少,因此您確實應該進行一些預測變數篩選,以確保不會在模型中添加太多不必要的因素。 PLS 可以處理這個問題,但預測變數也需要與反應共變,否則你會得到這個錯誤——這意味著你的預測變數沒有線性組合來解釋你的反應的變化。 但是,如果您必須使用 PLS 並且沒有其他選擇,那麼您可能需要考慮將您的回應從分類(2 或 3)變更為序數(2 或 3)。 也許能夠找到更好的數值解。 我還強烈建議研究並使用自動驗證檢查大量預測變數的方法。
其次,當 JMP 執行任何擬合時,我相信在後台它總是使用中心化和縮放的數據來獲得更好的估計值,然後返回計算實際估計值。 因此,最終引導程式是什麼並不重要,但是它可能更有意義或更容易解釋實際估計引導程式而不是中心化和縮放的資料。 是的,引導估計將使用您正在進行的驗證重新運行擬合。
最後,為了引導估計值,您需要右鍵單擊 JMP 報告中的列估計值,然後選擇引導。 如果速度快,則可能輸入 5000,但如果速度慢,則將其保留在 2500。 請務必勾選“分數權重”方塊。 它將多次重新執行擬合,然後為您提供預測變數的每個係數的值分佈(只需執行輸出資料表中的「分佈」腳本。 然後,隨著顯示的分佈和統計,您可以右鍵單擊總計統計並選擇“製作組合資料表”。 請務必自訂匯總統計資料以顯示非零比例。
組合資料表將包含您的估計值的平均值和非零比例。 在那裡,您可以看到平均值(典型值)以及估計值非零的頻率(百分比)——如果該數字很小,則估計值通常為零。 如果它很大,那麼大多數時候它不為零。 這是確定模型中需要或不需要哪些項和混合項的好方法。
希望這可以幫助,
DS