題:
使用套索進行回歸的變量選擇有哪些缺點?
xuexue
2011-03-07 05:21:25 UTC
view on stackexchange narkive permalink

據我所知,使用套索進行變量選擇可以解決相關輸入的問題。而且,由於它等效於最小角度回歸,因此在計算上並不慢。但是,許多人(例如,我認識的從事生物統計學的人)似乎仍然傾向於逐步或階段性變量選擇。使用套索有任何實際的不利之處嗎?

我不知道您在哪裡聽說過Lasso處理共線性問題,這絕對不是事實。
至少在稀疏模型情況下(模型選擇最有用),馬蹄先驗比LASSO更好。您可以在此[鏈接](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.217.2084)中找到有關這些要點的討論。本文的兩位作者在瓦倫西亞會議上也發表了類似的文章,即貝葉斯統計9“全球局部收縮:稀疏貝葉斯正則化和預測”。巴倫西亞的文章對懲罰框架進行了更詳細的介紹。
您的數據時間或空間序列是?我沒有從中得到幫助,但是請澄清一下,以便我們判斷@IrishStat的答復是否適用。
我並不特別擔心相關錯誤。
模型是線性的有多重要?由於您只在乎進行預測,因此可以使用黑匣子預測器嗎?
您說的@DLDahly並不特別擔心相關的錯誤,但是LASSO支持獨立的觀測,其中每個觀測都具有要與其中一個特徵相關的多個特徵。如果觀察結果不是獨立的(例如縱向數據),那麼LASSO的解決方案可能會令人懷疑...
如果您只對預測感興趣,那麼模型選擇將無濟於事,而且通常會很痛苦(與二次懲罰= L2範數=嶺回歸且無變量選擇相反)。 LASSO為嘗試進行變量選擇付出了預測歧視的代價。
拋硬幣做出任意決定通常會表明您確實在乎結果。任何為您提供有關選擇預測變量的決策的方法通常都會使您清楚地知道,您確實知道哪些預測變量更自然地屬於模型,而您不想忽略這些想法。 LASSO可以那樣工作。
第二,@Nick:“沒有理論可用於指導模型選擇”幾乎是不現實的。常識是理論。
在某些領域,即使在物理科學中,先前的“理論”也僅意味著有人較早地推測變量可能起作用。但這仍然很重要!
是的,這種情況被誇大以引起回應。
另請參閱[“ LASSO何時會失敗?”](http://stats.stackexchange.com/questions/214138/when-does-lasso-fail)。
我認為當前被檢查為正確答案的答案需要修訂-恕我直言,我發布的答案更細微和更好地爭論...
十 答案:
Peter Flom
2011-03-07 06:58:47 UTC
view on stackexchange narkive permalink

沒有理由進行逐步選擇。

LASSO / LAR是最好的自動方法。但是它們是自動方法。他們讓分析人員不去思考。

在許多分析中,無論任何有意義的量度,模型中都應包含一些變量。有時它們是必要的控制變量。在其他時候,發現很小的影響可能非常重要。

**“沒有理由進行逐步選擇。這是錯誤的。” **-幾乎沒有那種令人難以置信的籠統陳述,沒有上下文,沒有良好的統計實踐。如果這裡有什麼“不對”,那就是上面的粗體字。如果您的分析未強調$ p $值或參數估計值(例如預測模型),那麼逐步選擇變量可能是明智的選擇,並且:: gasp ::在某些情況下可能勝過LASSO。 (彼得,我知道我們之前有過這個話題-此評論更多是針對將來的讀者,他們可能只會看到這篇文章,而不會遇到其他文章)。
您可以指出@Macro,逐步回歸是最佳方法的情況嗎? (據我了解,您已經在某處解釋過,只需提供一個指針即可)
-1由於逐步的全面批評。它不是“完全錯誤”,而是作為確定性模型搜索的一席之地。關於自動方法,您的確確實有缺點。
-1
在這些模擬中,我使用$ n = 1000 $並保留$ 20 \%$來評估每個模型的預測。在這些設置下,就MSE而言,LASSO預測的準確性降低了約4倍(MSE在大多數運行中從約1.25增加到約5)。如果增加共線性度,係數的大小或預測變量的方差,它將變得更糟。為了使病理情況稍微減少一些,您可以在數據生成中將係數的$ 50 \%$設置為零,您會發現相同的結果(儘管差異並不明顯)。
在進行任何回歸之前,您當然應該研究共線性。我想說的是,如果您有大量共線變量,則不應使用LASSO或Stepwise;您應該解決共線性問題(刪除變量,獲取更多數據等),或使用針對此類問題設計的方法(例如,嶺回歸)
@Macro謝謝,這很有趣。我確實希望Lasso在大多數$ \ beta $為0時表現良好,但是我不明白為什麼向後逐步回歸比lasso可以更好地處理共線性。
@PeterFlom還是兩者兼有:彈力網?
我認為是因為向後會在此過程的早期刪除某些共線術語。
@PeterFlom,足夠公平,但是我認為問題在於變量選擇,而LASSO和逐步方法是競爭方法,而嶺回歸不是。我在這裡要總結的是,如果您要進行變量選擇以進行預測,那麼當存在共線性時,向後選擇比LASSO更好。貓王,我也不是很確定,但是當我有機會思考的時候,如果我有什麼想的話,我會告訴你(你也要這樣做!!)。
好的,您是對的,但我認為這並不重要。向後NOR套索(也不使用任何變量選擇方法)都不能解決所有問題。開始建模之前,您需要做一些事情-其中之一是檢查共線性。我也不會在意哪種變量選擇方法適用於其他數據集,這些數據集違反了兩種方法都應適用的回歸規則。
可以,但是您所指的假設僅與統計推斷有關,在我的示例中明確聲明的目標是預測,在這種情況下,重要的是您沒有過度擬合訓練數據-正交預測器或還要別的嗎。無論如何,這一切都是為了解釋我在貓王的要求下對您的第一句話的不同意見。我不知道這次談話是否改變了您的僵化立場,還是您的意思是誇張的說法,但我想我為未來的讀者Cheers提供了很多思考的機會。
可以提供一些引用來證實這種(強烈)主張。
LASSO / LAR絕不是最佳的自動選擇方法-還有很多其他稀疏的學習技術,例如迭代自適應脊線(近似於L0懲罰回歸,請參見l0ara包)和L0了解,在誤報率方面,LASSO的性能大大優於LASSO,並具有更好的預測性能。
Kochede
2013-11-27 21:00:54 UTC
view on stackexchange narkive permalink

如果您只關心預測誤差,而不關心可解釋性,偶然推斷,模型簡單性,係數檢驗等,那麼為什麼仍要使用線性回歸模型?

您可以使用諸如增強決策樹或支持向量回歸之類的方法,以獲得更好的預測質量,並且在上述兩種情況下仍避免過度擬合。那就是拉索可能不是獲得最佳預測質量的最佳選擇。

如果我的理解是正確的,那麼拉索的目的是在您仍然對模型本身仍然感興趣的情況下,而不僅僅是預測。也就是說-請參閱選定的變量及其係數,以某種方式進行解釋等。為此-在某些情況下,如此處其他問題所述,套索可能不是最佳選擇。

cbeleites unhappy with SX
2013-11-28 22:35:22 UTC
view on stackexchange narkive permalink

LASSO鼓勵將係數縮小為0,即從模型中刪除這些變量。相比之下,其他正則化技術(例如ridge)則傾向於保留所有變量。

因此,我建議考慮這種刪除是否對您的數據有意義。例如。考慮考慮對基因芯片數據或振動光譜數據進行臨床診斷測試。

  • 您希望某些基因帶有相關信息,但許多其他基因僅僅是噪音wrt。你的申請。刪除這些變量是一個完全明智的想法。

  • 相比之下,振動光譜數據集(通常與微陣列數據相比具有相似的維數)往往會“抹去”相關信息在頻譜的很大一部分上(相關)。在這種情況下,要求正則化刪除變量並不是特別明智的方法。更是如此,因為其他正則化技術(例如PLS)更適合此類數據。

統計學習的要素進行了很好的討論LASSO,並將其與其他正則化技術進行對比。

Scortchi - Reinstate Monica
2013-11-28 20:33:38 UTC
view on stackexchange narkive permalink

如果兩個預測變量高度相關,則LASSO可能最終會任意放棄一個。當您要為這兩個預測變量之間沒有高度相關性的人群做出預測時,這不是很好。&可能是在這種情況下更傾向於使用嶺回歸的原因。

您可能還認為標準化預測器(比如說係數是“大”還是“小”),而不是任意的&(像我一樣)對標準化分類器的明智方法感到困惑。

感謝您的回答。您是否知道與相關預測因子/分類預測因子討論問題的任何論文?
值得補充的是,還有其他懲罰性回歸方法試圖緩解這些問題(例如彈性網)。
為了使用高度共線的變量進行變量選擇,迭代自適應脊線(近似L0懲罰回歸和在l0ara包中實現的s)往往表現最佳,或者說在L0Learn包中實現的L0L2懲罰也表現良好。
對於分類預測變量-首先將它們重新編碼為二進制偽變量,然後可以像其他任何連續變量一樣對這些二進制偽變量進行標準化...
-1
@Scortchi-ReinstateMonica對於LASSO,這確實取決於一個用戶使用的編碼類型,但是對於L2-norm懲罰回歸或迭代自適應L2-norm懲罰回歸(近似於L0-norm懲罰回歸)而言是正確的,因為在那裡可以使用虛擬變量每個因子水平和任何共線性也都不是問題(因此我相信基礎不必正交)(我認為這在ncvreg R軟件包文檔中進行了討論)。
Tom Wenseleers
2019-08-22 00:45:04 UTC
view on stackexchange narkive permalink

這已經是一個很老的問題,但是我覺得與此同時,這裡的大多數答案都已經過時了(被檢查為正確答案的答案顯然是錯誤的恕我直言)。

首先,就獲得良好的預測性能而言,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進行變量選擇? :

  1. 因為係數將高度偏向,這在寬鬆的LASSO,MCP和SCAD懲罰回歸中得到了改善,並在L0懲罰回歸中得到了完全解決(它具有完整的oracle屬性,即可以同時選擇因果關係變量和調整無偏係數,同樣適用於 $ p > n $ span>情況)

  2. 因為與L0懲罰回歸相比,它傾向於產生更多的誤報(在我的測試中, l0ara 的表現最佳,即迭代自適應嶺,其次是 L0Learn

  3. 因為它不能很好地處理共線性變量(它實際上只是隨機選擇一個共線性變量)-迭代適應性脊/ l0ara L0Learn 更好地解決了這個問題。

  4. ol>

    當然,通常,您仍然必須使用交叉驗證來調整正則化參數以獲得最佳的預測性能,但這不是問題。如果您願意通過非參數自舉,甚至可以對參數進行高維推論,併計算係數的95%置信區間(即使對每個自舉數據集進行交叉驗證,也要考慮最佳正則化選擇的不確定性) ,儘管那會變得很慢)。

    從計算角度講,LASSO的適應性並不比逐步方法慢,但如果使用經過熱啟動的高度優化的代碼來優化LASSO正則化的話,肯定不會慢(您可以使用 fs 命令進行自我比較逐步和 bestsubset 包中的LASSO的 lasso )。逐步方法仍然很流行的事實可能與許多人的錯誤信念有關,即人們可能只是保留您的最終模型並報告與之相關的p值-實際上這不是正確的做法,因為這並不正確。考慮到模型選擇帶來的不確定性,導致p值過於樂觀。

    希望這有幫助嗎?

但是我不理解。LASSO在文獻中作為具有多重共線性的方法之一而被出售。用你的話說,為什麼不能很好地利用共線變量?
當您具有高度共線性的變量時,LASSO最終幾乎會隨機選擇其中一個變量(如果您通過循環坐標下降來擬合,則通常是第一個進入模型的變量)。相比之下,通過迭代自適應脊線(有時稱為破壞的自適應脊線)擬合的彈性網和L0懲罰模型將成組選擇共線變量,並將總影響除以它們(請參閱https://www.sciencedirect.com/science/文章/ pii / S0047259X17305067和其中的參考文獻)。為了改進共線變量的處理,開發了諸如彈性網之類的方法。
參見https://stats.stackexchange.com/questions/264016/why-lasso-or-elasticnet-perform-better-than-ridge-when-the-features-are-correlat/264118#264118
Sycorax
2016-07-26 19:55:43 UTC
view on stackexchange narkive permalink

套索僅在限制自己考慮要估計的參數中為線性的模型時才有用。換句話說,套索不會評估您是否選擇了自變量和因變量之間關係的正確形式。

很可能存在非線性,交互或多項式效應在任意數據集中但是,僅當用戶進行分析時,才會評估這些替代模型規格;

舉一個簡單的例子說明如何出錯,請考慮一個數據集,其中獨立變量的不相交間隔將預測因變量的上限值和下限值的交替變化變量。使用常規線性模型進行分類將很困難,因為用於顯示的清單變量中沒有線性效應(但清單變量的某些轉換可能會有所幫助)。套索保留其清單形式時,會錯誤地得出以下結論:該功能是無關的,並且由於沒有 linear 關係而將其係數歸零。另一方面,由於數據中存在軸對齊的拆分,因此像隨機森林這樣的基於樹的模型可能會做得很好。

enter image description here

rm999
2011-03-07 06:23:33 UTC
view on stackexchange narkive permalink
套索和其他正則化技術的一個實際缺點是找到最佳正則化係數lambda。使用交叉驗證來找到此值可能與逐步選擇技術一樣昂貴。
“昂貴”是什麼意思?
這個說法不是真的。如果像glmnet方法那樣採用“熱啟動”網格搜索,則可以非常快速地計算整個網格。
@probabilityislogic是的,我只有在做出上述評論後才了解熱啟動的信息。您如何看待這篇論文,這表明熱啟動比簡單的交叉驗證慢,有時效果不佳? http://users.cis.fiu.edu/~lzhen001/activities/KDD2011Program/docs/p33.pdf
貝葉斯套索不需要固定的$ \ lambda $ :)
IrishStat
2013-11-27 18:14:31 UTC
view on stackexchange narkive permalink

我不是LASSO專家,但我是時間序列專家。如果您有時間序列數據或空間數據,那麼我會避免使用基於獨立觀測值的解決方案。此外,如果存在未知的確定性影響,破壞了您的數據(電平變化/時間趨勢等),那麼LASSO甚至不會成為一個好錘子。在關閉時,如果您有時間序列數據,當面對隨時間變化的參數或誤差方差時,通常需要對數據進行細分。

將LASSO應用於基於回歸的時間序列模型(例如ar自回歸(AR),矢量自回歸(VAR)和矢量誤差校正模型(VECM))時,可以提供良好的預測性能。例如,搜索*套索向量自回歸*,您將在學術文獻中找到許多示例。以我自己的經驗,與所有子集選擇或山脊正則化相比,將LASSO用於固定VAR模型可提供出色的預測性能,而山脊正則化在集成VAR模型方面勝過LASSO(由於多重共線性,根據Scortchi的回答)。
因此,LASSO的故障不是時間序列數據所固有的。
dsimcha
2011-03-07 06:38:38 UTC
view on stackexchange narkive permalink

一個大問題是進行假設檢驗的難度。使用套索您不容易找出哪些變量在統計上是重要的。如果您對多重測試的處理保持謹慎,那麼通過逐步回歸,就可以在某種程度上進行假設檢驗。

我會說這是一個優勢,而不是劣勢。它阻止您執行可能不應該執行的操作。
@Peter:為什麼?我假設您會正確地進行多次測試等,以使獲得的P值有效。
確實沒有一種方法可以逐步正確地校正多次測試。參見例如Harrell回歸建模策略。沒有辦法知道正確的更正
確實,進行假設檢驗的困難是LASSO的潛在缺點。相對於逐步逐步回歸,這是不正確的。
嗯,有一個選擇推理框架(在selectionInference包中實現)可以對LASSO進行(選擇後)推理。或者對於任何變量選擇方法,都可以使用非參數自舉進行推理並獲得參數估計值的置信區間。..
Sympa
2020-01-17 22:52:20 UTC
view on stackexchange narkive permalink

有一個簡單的原因為什麼不使用LASSO進行變量選擇。它只是不如廣告中那樣好用。這是由於其擬合算法包括懲罰因子,該懲罰因子對模型的較高回歸係數進行了懲罰。這似乎是一個好主意,因為人們認為它總是可以減少模型的過擬合,並改善對新數據的預測。在現實中,它常常反其道而行之……增加了模型的擬合度,並削弱了預測準確性。通過在Internet上搜索圖像並專門搜索“ LASSO MSE圖”,您可以看到許多這樣的示例。每當這些圖在X軸的開始處顯示最低的MSE時,它就會顯示LASSO發生故障(增加模型擬合不足)。

上述意外後果歸因於懲罰算法。因此,LASSO無法區分具有預測信息的強因果變量和相關的高回歸係數,而沒有解釋性或預測信息值的弱變量具有低迴歸係數。與強因果變量相比,LASSO通常更喜歡弱變量。同樣,有時甚至可能導致變量的方向符號偏移(從有意義的一個方向轉移到無效的相反方向)。通過在Internet上搜索“圖像”並專門搜索“ LASSO係數路徑”,可以看到許多這樣的示例。

如果有人如我在回答的最後一句中所說的那樣消化支持我的論點的證據,他們可能會考慮刪除不贊成票。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...