SSブログ

lasso回帰 / リッジ回帰による多重共線性の回避 [データサイエンス、統計モデル]

重回帰で回帰係数の符号が逆転している場合の意味
http://skellington.blog.so-net.ne.jp/2017-05-17

マルチコは悪か?
http://skellington.blog.so-net.ne.jp/2017-09-25

パラメータに非負制約を与えた重回帰分析
http://skellington.blog.so-net.ne.jp/2017-09-26


こちらのパラメータに非負制約を与える回帰分析は、Rのoptimを使う必要があるなど、ちょっとややこしいです。
一方、Rのパッケージを使ってお手軽にする別の方法を紹介しておきます。

多重共線性が起こっているということは、回帰分析で逆行列の計算が難しいという問題あります。
逆行列で0に近い数が分母に来るという問題です。

これを回避するのが、lasso回帰であったり、リッジ回帰であったりするわけですが、
lasso回帰の場合は、変数選択という意味が強く、不要と思われるである変数は落とされます。

リッジ回帰は、同じく「正則化」を行うわけですが、変数選択ということは行われません。

今回のデータ(前回のデータ)は、
 Y <- 1.0 - 0.1 * X1 + 0.5 * X2 + 1.0 * X3 + rand
という形式で発生させた疑似データを使っています。

まずは、lasso回帰を行った結果。
 Y = 1.026 + 0.300 * X2 + 0.922 * X3
という結果になりました。

X1の係数が小さいのlasso回帰を使うと、その係数は落とされてしまいます。



次に、リッジ回帰を行った結果。
 Y = 1.027 + 0.001 * X1 + 0.300 * X2 + 0.882 * X3
という家㏍が得られました。

X1の偏回帰係数は、小さい値ですが、リッジ回帰の場合はちゃんと残っていますね。

どっちの回帰を使うかは、それぞれ何を得たいかによって違ってきますが、
lasso回帰、リッジ回帰とも想定通りの結果が得られました。



nice!(4)  コメント(0) 
共通テーマ:学問