據我所知,使用套索進行變量選擇可以解決相關輸入的問題。而且,由於它等效於最小角度回歸,因此在計算上並不慢。但是,許多人(例如,我認識的從事生物統計學的人)似乎仍然傾向於逐步或階段性變量選擇。使用套索有任何實際的不利之處嗎?
據我所知,使用套索進行變量選擇可以解決相關輸入的問題。而且,由於它等效於最小角度回歸,因此在計算上並不慢。但是,許多人(例如,我認識的從事生物統計學的人)似乎仍然傾向於逐步或階段性變量選擇。使用套索有任何實際的不利之處嗎?
沒有理由進行逐步選擇。
LASSO / LAR是最好的自動方法。但是它們是自動方法。他們讓分析人員不去思考。
在許多分析中,無論任何有意義的量度,模型中都應包含一些變量。有時它們是必要的控制變量。在其他時候,發現很小的影響可能非常重要。
如果您只關心預測誤差,而不關心可解釋性,偶然推斷,模型簡單性,係數檢驗等,那麼為什麼仍要使用線性回歸模型?
您可以使用諸如增強決策樹或支持向量回歸之類的方法,以獲得更好的預測質量,並且在上述兩種情況下仍避免過度擬合。那就是拉索可能不是獲得最佳預測質量的最佳選擇。
如果我的理解是正確的,那麼拉索的目的是在您仍然對模型本身仍然感興趣的情況下,而不僅僅是預測。也就是說-請參閱選定的變量及其係數,以某種方式進行解釋等。為此-在某些情況下,如此處其他問題所述,套索可能不是最佳選擇。
LASSO鼓勵將係數縮小為0,即從模型中刪除這些變量。相比之下,其他正則化技術(例如ridge)則傾向於保留所有變量。
因此,我建議考慮這種刪除是否對您的數據有意義。例如。考慮考慮對基因芯片數據或振動光譜數據進行臨床診斷測試。
您希望某些基因帶有相關信息,但許多其他基因僅僅是噪音wrt。你的申請。刪除這些變量是一個完全明智的想法。
相比之下,振動光譜數據集(通常與微陣列數據相比具有相似的維數)往往會“抹去”相關信息在頻譜的很大一部分上(相關)。在這種情況下,要求正則化刪除變量並不是特別明智的方法。更是如此,因為其他正則化技術(例如PLS)更適合此類數據。
統計學習的要素進行了很好的討論LASSO,並將其與其他正則化技術進行對比。
如果兩個預測變量高度相關,則LASSO可能最終會任意放棄一個。當您要為這兩個預測變量之間沒有高度相關性的人群做出預測時,這不是很好。&可能是在這種情況下更傾向於使用嶺回歸的原因。
您可能還認為標準化預測器(比如說係數是“大”還是“小”),而不是任意的&(像我一樣)對標準化分類器的明智方法感到困惑。
這已經是一個很老的問題,但是我覺得與此同時,這裡的大多數答案都已經過時了(被檢查為正確答案的答案顯然是錯誤的恕我直言)。
首先,就獲得良好的預測性能而言,LASSO總是優於逐步方法並非普遍如此。 Hastie等人(2017年)的論文“最佳子集選擇,正向逐步選擇和套索的擴展比較”提供了正向逐步選擇,LASSO和一些LASSO變體(如寬鬆的LASSO等)的廣泛比較。以及最佳子集,並且它們表明分步有時比LASSO更好。LASSO的一種變體-寬鬆LASSO-是在最廣泛的情況下產生最高模型預測精度的模型。關於哪個最好的結論在很大程度上取決於您認為什麼最好,例如這是最高的預測精度還是選擇最少的誤報變量。
雖然整個動物園都有稀疏的學習方法,但是大多數方法都比LASSO好。例如。在 ncvreg
軟件包中實現了Meinhausen的鬆弛LASSO,自適應LASSO和 SCAD和MCP懲罰回歸。與標準LASSO相比,它們的偏差都較小,因此是可取的。此外,如果您對具有最佳預測性能的絕對最稀疏解決方案感興趣,那麼可以對L0進行懲罰回歸(也稱為最佳子集,即基於對非零係數nr的懲罰而不是LASSO中係數絕對值的和)比LASSO更好,請參見例如 l0ara
程序包,它使用迭代自適應嶺程序來近似L0懲罰的GLM,並且與LASSO不同,它在高度共線性的變量中也能很好地工作,並且 L0Learn
程序包,它可以使用坐標下降配合L2罰分回歸模型,並可能結合使用L2罰則來規範共線性。 >
那麼回到您的原始問題:為什麼不使用LASSO進行變量選擇? :
因為係數將高度偏向,這在寬鬆的LASSO,MCP和SCAD懲罰回歸中得到了改善,並在L0懲罰回歸中得到了完全解決(它具有完整的oracle屬性,即可以同時選擇因果關係變量和調整無偏係數,同樣適用於 $ p > n $ span>情況)
因為與L0懲罰回歸相比,它傾向於產生更多的誤報(在我的測試中, l0ara
的表現最佳,即迭代自適應嶺,其次是 L0Learn
)
因為它不能很好地處理共線性變量(它實際上只是隨機選擇一個共線性變量)-迭代適應性脊/ l0ara
和 L0Learn 更好地解決了這個問題。
當然,通常,您仍然必須使用交叉驗證來調整正則化參數以獲得最佳的預測性能,但這不是問題。如果您願意通過非參數自舉,甚至可以對參數進行高維推論,併計算係數的95%置信區間(即使對每個自舉數據集進行交叉驗證,也要考慮最佳正則化選擇的不確定性) ,儘管那會變得很慢)。
從計算角度講,LASSO的適應性並不比逐步方法慢,但如果使用經過熱啟動的高度優化的代碼來優化LASSO正則化的話,肯定不會慢(您可以使用 fs
命令進行自我比較逐步和 bestsubset
包中的LASSO的 lasso
)。逐步方法仍然很流行的事實可能與許多人的錯誤信念有關,即人們可能只是保留您的最終模型並報告與之相關的p值-實際上這不是正確的做法,因為這並不正確。考慮到模型選擇帶來的不確定性,導致p值過於樂觀。
希望這有幫助嗎?
套索僅在限制自己考慮要估計的參數中為線性的模型時才有用。換句話說,套索不會評估您是否選擇了自變量和因變量之間關係的正確形式。
很可能存在非線性,交互或多項式效應在任意數據集中但是,僅當用戶進行分析時,才會評估這些替代模型規格;
舉一個簡單的例子說明如何出錯,請考慮一個數據集,其中獨立變量的不相交間隔將預測因變量的上限值和下限值的交替變化變量。使用常規線性模型進行分類將很困難,因為用於顯示的清單變量中沒有線性效應(但清單變量的某些轉換可能會有所幫助)。套索保留其清單形式時,會錯誤地得出以下結論:該功能是無關的,並且由於沒有 linear 關係而將其係數歸零。另一方面,由於數據中存在軸對齊的拆分,因此像隨機森林這樣的基於樹的模型可能會做得很好。
我不是LASSO專家,但我是時間序列專家。如果您有時間序列數據或空間數據,那麼我會避免使用基於獨立觀測值的解決方案。此外,如果存在未知的確定性影響,破壞了您的數據(電平變化/時間趨勢等),那麼LASSO甚至不會成為一個好錘子。在關閉時,如果您有時間序列數據,當面對隨時間變化的參數或誤差方差時,通常需要對數據進行細分。
一個大問題是進行假設檢驗的難度。使用套索您不容易找出哪些變量在統計上是重要的。如果您對多重測試的處理保持謹慎,那麼通過逐步回歸,就可以在某種程度上進行假設檢驗。
有一個簡單的原因為什麼不使用LASSO進行變量選擇。它只是不如廣告中那樣好用。這是由於其擬合算法包括懲罰因子,該懲罰因子對模型的較高回歸係數進行了懲罰。這似乎是一個好主意,因為人們認為它總是可以減少模型的過擬合,並改善對新數據的預測。在現實中,它常常反其道而行之……增加了模型的擬合度,並削弱了預測準確性。通過在Internet上搜索圖像並專門搜索“ LASSO MSE圖”,您可以看到許多這樣的示例。每當這些圖在X軸的開始處顯示最低的MSE時,它就會顯示LASSO發生故障(增加模型擬合不足)。
上述意外後果歸因於懲罰算法。因此,LASSO無法區分具有預測信息的強因果變量和相關的高回歸係數,而沒有解釋性或預測信息值的弱變量具有低迴歸係數。與強因果變量相比,LASSO通常更喜歡弱變量。同樣,有時甚至可能導致變量的方向符號偏移(從有意義的一個方向轉移到無效的相反方向)。通過在Internet上搜索“圖像”並專門搜索“ LASSO係數路徑”,可以看到許多這樣的示例。