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回帰、リッジ回帰とも想定通りの結果が得られました。
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回帰、リッジ回帰とも想定通りの結果が得られました。