LASSOでカテゴリカル予測子を処理する方法


17

いくつかのカテゴリ変数予測子といくつかの連続予測子を持つLASSOを実行しています。カテゴリ変数について質問があります。私が理解する最初のステップは、それぞれをダミーに分割し、公正な罰則のために標準化してから退行することです。ダミー変数の処理には、いくつかのオプションがあります。

  1. 各要因のダミーのうち1つを除くすべてを含め、その1つを参照レベルとして残します。ダミー係数の解釈は、除外された「参照」カテゴリに関連しています。インターセプトは、参照カテゴリの平均応答です。

  2. 各要因の変数をグループ化して、それらがすべて除外されるか、すべてが1つだけ含まれるようにします。私はそれが@Glen_bがここで提案していることだと信じています

    通常、はい、あなたはあなたの要因をすべて一緒に保ちます。glmnetなど、これを行うことができるいくつかのRパッケージがあります。

  3. ここで @Andrew Mが示唆するように、すべてのレベルを含めます。

    デフォルトのコントラスト関数を変更することもできます。デフォルトでは、各因子の1レベルが除外されます(治療のコーディング)。しかし、投げ縄のペナルティのため、これは識別可能性のためにもはや必要ではなく、実際、選択された変数の解釈をより複雑にします。これを行うには、設定します

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

    現在、因子のどのレベルが選択されている場合でも、これらの特定のレベルが重要であり、省略されたすべてのレベルではないことを示唆していると考えることができます。機械学習では、ワンコーディングと呼ばれるこのコーディングを見てきました。

質問:

  1. これらの各アプローチでの切片係数の解釈は何ですか?
  2. それらの1つを選択する際の考慮事項は何ですか?
  3. ダミー係数のスケールを解除してから、オフからオンへの変化として解釈しますか?

回答:


6

LASSO回帰でカテゴリ変数を扱う場合、通常、特定のカテゴリ変数に対応するダミー変数を一緒に保持するグループ化されたLASSOを使用します(つまり、モデルからダミー変数の一部のみを除外することはできません)。便利な方法は、Choi、Park and Seo(2012)で説明されている修正グループLASSO(MGL です。この方法では、ペナルティはダミー変数のセットのベクトルのノルムに比例します。このメソッドにはまだ参照カテゴリが保持されているため、インターセプト用語は含まれています。これにより、識別可能性の問題なしに複数のカテゴリ変数を処理できます。β

特定の質問への回答:

(1)LASSOは係数の推定方法ですが、係数自体は回帰の初期モデル方程式によって定義されます。そのため、係数の解釈は標準の線形回帰の場合と同じです。これらは、説明変数の変化による予想される応答の変化率を表します。

(2)上記の文献は、変数をグループ化することを推奨していますが、参照カテゴリーを保持しています。これは、カテゴリー変数の存在を、それを削除するがインターセプト項がまだあるモデルと比較することを暗黙的に想定しています。

(3)上記のように、推定方法はモデルステートメントによって設定される係数の解釈に影響しません。


1
ハトシェプスト女王:この回答が役に立ったと思う場合は賛成または受け入れ、あるいはその 両方を検討してください。そうでない場合は、おそらくまだ不足しているものを示すことができますか?
S. Kolassa -復活モニカ

@StephanKolassa完了
ハトシェプスト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.