LASSOで機能を選択するためのデータを準備するために欠損値を処理する方法は?


10

私の状況:

  • 小さなサンプルサイズ:116
  • バイナリ結果変数
  • 説明変数の長いリスト:44
  • 説明変数は私の頭の上から来ていませんでした。彼らの選択は文献に基づいていた。
  • サンプルのほとんどの場合とほとんどの変数には欠損値があります。

選択した機能選択へのアプローチ:LASSO

Rのglmnetパッケージではglmnetルーチンを実行できません。これは、明らかにデータセットに欠損値が存在するためです。欠落しているデータを処理するにはさまざまな方法があるようですので、知りたいのですが。

  • LASSOは、使用できる補完の方法に関して何らかの制限を課していますか?
  • 補完法の最善策は何でしょうか?理想的には、SPSS(できれば)またはRで実行できるメソッドが必要です。

UPDATE1:以下の回答のいくつかから、補完法を検討する前に、より基本的な問題に対処していることが明らかになりました。それについてここに新しい質問を追加したいと思います。「該当なし」の値とグループラッソの使用法を処理するための定数値としてのコーディングと新しい変数の作成を示唆する答えについて:

  • グループLASSOを使用すると、連続予測子に提案されたアプローチをカテゴリカル予測子にも使用できると思いますか?もしそうなら、私はそれが新しいカテゴリーを作成することと同等であると思います-これはバイアスを導入するかもしれないと警戒しています。
  • RのglmnetパッケージがグループLASSOをサポートしているかどうか誰かが知っていますか?そうでない場合、誰かがロジスティック回帰と組み合わせてそれを行う別のものを提案しますか?LASSOグループについて言及しているいくつかのオプションがCRANリポジトリにあります。私の場合に最も適切な提案はありますか?たぶんSGL?

これは私の以前の質問に対するフォローアップです(ロジスティック回帰分析を実行するために、元の長いリストから変数のサブセットを選択する方法は?)。

OBS:私は統計学者ではありません。


(1)補完への最善のアプローチは、欠損値の比率とパターン、変数間の関係、および欠損値の理由についてどのような仮定を用意するかによって異なります。(2)LASSOへの入力を提供するために、任意の単一の補完方法を使用できます。代入が結果にどのように影響するかを評価することの難しさ。複数の代入をLASSOと組み合わせる方法はわかりません(疑いなく誰かがそうします)が、異なる代入実行の結果を非公式に比較すると(通常は同じ予測子が選択されますか?)、それでも有益である可能性があります。
Scortchi-モニカの回復

@Scortchi:私の欠損値のほとんどは「該当なし」のカテゴリに分類されます。例:変数「世帯の成人女性の年齢」では、成人男性が未亡人である場合。実際、私はここで一歩戻る必要があると思います:連続変数の0の値を欠損値として扱う必要がありますか?例:0年間の教育、14〜60歳の世帯構成員0人。
困惑した2014年

世帯についての既知の事実ではなく、欠席している女性についての未知の事実としてそれを扱いたい状況を想像するのは困難です。ゼロについての質問は理解するのが難しいです。例えば、何年も教育が信じられないほどの値であるのか、それとも0を使用して欠損値をコード化するのかを尋ねていますか?(そして、どうやって私はそれを知るでしょうか?)0を欠落を示すものとして扱う一般的な理由は確かにありません。
Scortchi-モニカの回復

@Scortchi:女性の年齢変数について、私はあなたが何を意味するかを理解しています。しかし、問題は次のようになります:NAでない場合、欠席している女性のケースをどのようにコーディングしますか?ゼロについて:はい、それは正確に私の質問でした。明確でない場合は申し訳ありません。プログラムはゼロ値の処理に問題がある可能性があり、それが何を意味するのかを理解できない可能性があると考えました。
困惑した2014年

これを任意の定数値としてコーディングし、存在/不在の標識変数を導入できます(およびグループLASSOを使用)。LASSOまたは他の回帰プログラムが予測子のゼロ値を誤って処理する理由はありません。[これを間違った方法で行わないでください。ただし、これらは非常に基本的な質問です。これが面白ければ、簡単な問題から始めることをお勧めします。実際の問題の場合は、統計担当者に相談することをお勧めします。]
Scortchi-モニカの回復

回答:


10

連続予測子に「該当しない」値が含まれている場合、2つの変数を使用してコード化すると便利なことがよくあります。x

x1={cwhen x is not applicablexotherwise

ここで、は定数、&c

x2={1when x is not applicable0otherwise

応答の線形予測子が次のように与えられると仮定します。

η=β0+β1x1+β2x2+

解決する

η=β0+β1x1+

が測定されたとき、またはx

η=β0+β1c+β2+

xが「該当しない」場合。の選択は任意であり、切片または勾配の推定には影響しません。効果について説明のビーイング『の場合に比べて』該当しない。cβ0β1β2xx=c

これは、応答が未知の値に従って変化する場合、適切なアプローチではありません。「欠落」グループの変動性が増大し、交絡のために他の予測子の係数の推定にバイアスがかかります。欠損値を代入する方がよい。x

LASSOを使用すると、次の2つの問題が発生します。

  1. 適用される収縮の量は係数推定の大きさに依存するため、の選択は結果に影響します。c
  2. と両方が、選択したモデルの両方に含まれるか、両方に含まれないようにする必要があります。x1x2

あなたは、以下を含む基ではなく、グループLASSOを使用して、これらの両方を解決することができるおよび:ノルムペナルティに印加さ正規直交行列のノルム。(しばしばunpenalized回帰で行われるようカテゴリ予測子は、別個のレベルとして「該当なし」群LASSO-you'dだけコードのポスターの子である。)を参照マイヤー(2008)、JRSS B、70、1、「ロジスティック回帰のためのグループなげなわgrplassox1x2L1L2[x1 x2]


RのglmnetパッケージがグループLASSOをサポートしているかどうか誰かが知っていますか?そうでない場合、誰かがロジスティック回帰と組み合わせてそれを行う別のものを提案しますか?グループLASSOについて言及しているいくつかのオプションがCRANリポジトリで見つかります。たぶんSGL?
困惑した2014年

では、グループLASSOを使用すれば、連続予測子に提案したアプローチをカテゴリカル予測子にも使用できると思いますか?
困惑した2014年

5

多重代入は決して悪いアプローチではありません。また、完全な情報を最尤で表示することもできます。ここここの良いレビューと比較。

ただし、その方法を使用する場合は、LASSOがベイジアン回帰の特別なケースであるので、Stanを使用して、ML代入を回帰と同時に単一のベイジアンモデルとして近似することを検討してください。


多重補完法を誤解していましたが、私の場合にも当てはまることがわかりました。これを反映するために質問を編集しました。SPSSまたはRのどちらかが、あなたが述べた2つのオプションを実行するかどうか知っていますか?
困惑した2014年

1
miあなたに役立つかもしれないRパッケージがあります。
シャドウトーカー2014年

2
RからStanを実行できます(RStanを参照)。
Scortchi-モニカの回復

Rの複数の補完パッケージには、Ameliaおよびが含まれmiceます。
Sycoraxは

0

統計のCATREGコマンドは、欠落しているデータをLASSOで処理します。ケースをリストごとに除外するか、プロシージャに入力させることができます。その名前はカテゴリー変数用であることを示唆していますが、スケールを数値に設定して連続的なケースを処理できます。


これはSAS PROC CATREGだと思いますか?
Ben Bolker 14年

@JKP:実際、このコマンドに出くわしました。しかし、私のアウトーム変数がバイナリであることを考えると、ロジスティック回帰はカテゴリー回帰(CATREG)よりも適切であると想定しています-正しいですか?また、CATREGのオプションはかなり制限されているように見えます。ケースを除外するか、欠損値を平均値で置き換えるか、追加のカテゴリを作成するかのみを選択できます。
困惑した2014年

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