Categorical-Data

如何處理 LASSO 中的分類預測變量

  • April 24, 2016

我正在運行一個 LASSO,它有一些分類變量預測變量和一些連續變量。我有一個關於分類變量的問題。我理解的第一步是將它們中的每一個都分解成假人,將它們標準化以進行公平懲罰,然後回歸。處理虛擬變量有幾種選擇:

  1. 包括每個因素的除一個假人之外的所有假人,留下一個作為參考水平。虛擬係數的解釋與排除的“參考”類別有關。截距現在是參考類別的平均響應。
  2. 對每個因素中的變量進行分組,以便全部排除或全部包含在內。我相信這就是@Glen_b在這裡的建議:

通常,是的,您將所有因素放在一起。有幾個 R 包可以做到這一點,包括 glmnet

  1. 包括所有級別,正如@Andrew M在這裡所建議的那樣:

您可能還想更改默認對比函數,默認情況下會忽略每個因素的一個級別(治療編碼)。但是由於 lasso 懲罰,這不再是可識別性所必需的,實際上使所選變量的解釋更加複雜。為此,請設置

contr.Dummy <- function(contrasts, ...){
   conT <- contr.treatment(contrasts=FALSE, ...)
   conT
}
options(contrasts=c(ordered='contr.Dummy', unordered='contr.Dummy'))

現在,無論選擇什麼水平的因子,您都可以認為它表明這些特定水平很重要,而不是所有省略的水平。在機器學習中,我看到這種編碼稱為 one-hot 編碼。

問題:

  1. 在每種方法下,截距係數的解釋是什麼?
  2. 選擇其中之一時需要考慮哪些因素?
  3. 我們是否對虛擬係數進行縮放,然後將它們解釋為從關閉到開啟的變化?

在 LASSO 回歸中處理分類變量時,通常使用分組 LASSO 將對應於特定分類變量的虛擬變量保持在一起(即,您不能僅從模型中排除一些虛擬變量)。一種有用的方法是在Choi、Park 和 Seo (2012) 中描述的 Modified Group LASSO (MGL)。在這種方法中,懲罰與標準的範數成正比一組虛擬變量的向量。您仍然在此方法中保留參考類別,因此仍包含截距項。這使您可以處理多個分類變量而不會出現可識別性問題。

在回答您的具體問題時:

(1) LASSO 是一種係數估計方法,但係數本身由回歸的初始模型方程定義。因此,係數的解釋與標準線性回歸中的相同;它們表示由於解釋變量的變化而導致的預期響應的變化率。

(2) 上述文獻建議對變量進行分組,但保留一個參考類別。這隱含地假設您正在將分類變量的存在與刪除它但仍具有截距項的模型進行比較。

(3) 如上所述,估計方法不影響對模型語句設定的係數的解釋。

引用自:https://stats.stackexchange.com/questions/209009

comments powered by Disqus