在預測建模中有太多變量而不堪重負?在回歸問題中,我們經常面臨從可能是一組非常大的候選預測變量中選擇一組預測變量。在構建模型時,我們希望找到一組有意義的預測變量,從而產生準確的預測。前向選擇和全子集回歸等經典方法並不總能滿足這一目標。
最小角度回歸(LARS)和懲罰性回歸方法,如最小絕對收縮和選擇算子(LASSO)和彈性網是變量選擇的更新,更有前景的方法。R包“lars”和“elasticnet”提供了適合這些新技術的工具。包中包含的文檔是學習更多方法本身的良好起點。使用新的R集成功能 JMP 9 要調用這些包,我們可以在結果中顯示結果並構建圖形 JMP 。看看懲罰回歸加載項 (訪問和下載需要免費的SAS登錄),就是這樣。
安裝Penalized Regression加載項時,您將獲得三種不同的工具來安裝這些模型。它們出現在“R加載項”標題下。“具有交叉驗證的LASSO”使用交叉驗證來選擇LASSO調整參數,並允許您在調整調整參數時查看參數估計如何變化。“懲罰回歸方法比較”工具讓我們可以比較LASSO,LARS和Forward Stagewise解決方案。這三種方法的結果有時幾乎相同。最後但並非最不重要的是,“具有交叉驗證的彈性網絡”繪製了彈性網絡解決方案,並使用交叉驗證來選擇調整參數的最佳組合。彈性網很棘手,因為它有兩個調整參數,但我發現觀察解決方案的能力隨著調整參數的變化而變化非常有用。
現在,讓我們看一下使用LASSO進行交叉驗證的示例。使用“lars”包中包含的糖尿病數據集,我們在下面的屏幕截圖中獲得結果。根據這些數據,我們嘗試使用年齡,性別,體重指數,血壓和幾項血清測量來模擬糖尿病的進展。

該圖看起來有點奇怪,但它包含大量信息。它向我們展示了參數估計如何隨著調整參數而變化。當我們移動滑塊以增加調整參數時,右側的參數估計報告會更新,以便我們可以看到每個變量何時進入模型。
體重指數是進入模型的第一個變量。我們還發現年齡是最後進入的變量,這表明年齡可能不會在糖尿病的進展中發揮重要作用。加載項允許我們查看交叉驗證結果,這可以幫助我們選擇調整參數。一旦我們對調整參數感到滿意,我們就可以將預測值保存到數據表中。
Clay Barker寫道:本傑明和安德斯:對不起你...克萊巴克中寫道:
本傑明和安德斯:很抱歉你遇到了麻煩。不幸的是,這個問題很難確定。因為加載項調用R,問題可能出在R安裝,被調用的R包或加載項上。以下是一些可能對您有所幫助的建議:
1。確保數據集中沒有缺失值。由於加載項並不是一個功能齊全的平台,因此我無法支持缺失值。因此,在調用加載項之前,請先刪除任何缺少的值。
2。出於與#1相同的原因,加載項忽略行狀態(如排除行)。
3。加載項僅用於執行最小二乘。如果您有興趣採用類似的邏輯回歸方法,可以構建一個類似R的接口來調用glmnet包來擬合懲罰的廣義線性模型。
有沒有其他JMP用戶有建議?
安德斯寫道:我和本傑明有同樣的問題。幾乎...安德斯中寫道:
我和本傑明有同樣的問題。差點把我的電腦扔出窗外。這個加載項對我不起作用。更糟糕的是,沒有關於如何使這個加載項工作的血腥文檔!非常沮喪,因為我必須進行邏輯回歸併且有大量變量並且想要避免逐步。
Gabriel Andraos寫道:親愛的克萊。謝謝你這個明確的...加布里埃爾安德羅斯中寫道:
親愛的克萊。感謝這個清晰的介紹。為了選擇最具預測性的變量,這些技術如何比使用JMP 9.0中的分區平台更好?
最好,
Clay Barker寫道:嗨加布里埃爾,這是一個非常好的問題......克萊巴克中寫道:
嗨加布里埃爾,這是一個非常好的問題。通常,我們無法確切地說哪種技術對特定數據集的性能更好。因此,嘗試這兩種技術並比較結果可能是值得的。使用諸如LARS或LASSO之類的東西構建預測模型的一個潛在優勢是生成的線性模型通常更容易解釋。
本傑明寫道:克萊,謝謝你創造了這個。我已經......本傑明中寫道:
粘土,
謝謝你創造了這個。我已經安裝了R和所需的軟件包(lars和elasticnet),並驗證了R識別了lars命令。我還在JMP 9.0.0中看到了您的加載項,並出現了相應的對話框。但是,在選擇數據並運行後,沒有任何反應 - 對話框剛剛關閉,我確認CPU沒有任何結果。我已經嘗試過使用和不使用R已經打開並且在重新啟動JMP之後。任何建議?
謝謝!
本傑明