AI〜データコンサル会社アイアナのブログ。統計学、Rを使ったデータ分析、Pythonを使ったAIなどこの広告は、90日以上更新していないブログに表示しています。regression今回はLASSOとリッジ回帰についてです。パッケージは「glmnet」、「lars」、「lasso2」で実行できます。glmnetとlarsの作者はFriedman、Hastie、Efron、Tibshiraniと有名な先生ですが、lasso2の作者は知らないです。内容もほぼ一緒なので、LASSOをするときはglmnet一択で良いと思います。データはLARSパッケージにあるdiabetesを使います。このデータである結果変数y(中性脂肪?)をx(性別や血圧など)によって予測するモデルを作ります。単純な線形回帰をします。diabetes$x)Linear$coefficientsこれが推定結果です。この線形回帰をLASSOで推定します。ここで注意しなければいけないのが、xはすべて標準化しなくてはなりません(オプションのデフォルトでちゃんと標準化されるようになってます)。1)plot(LASSO.net)LASSOは難しそうな手法に見えますが、実はそんなことありません。古典的な回帰手法を、「ペナルティを付けて」推定しているだけです。この結果のグラフで、横軸がペナルティの強さ、縦軸が回帰係数の推定結果を示しています。それぞれの折れ線が説明変数xを示してまして、例えば2本の緑の線はBMIとLTGです。ペナルティは左が強く、右に行くに従って弱くなっています。直感的な説明ですが、最もペナルティが強い左端ではどの変数の回帰係数も0になってます。ペナルティの弱い右端では変数の回帰係数が単純な線形回帰と一致するのです。最初強くしていたペナルティを弱めていく事によって、結果変数と関連の強い変数から推定していき、最終的には線形回帰と等しくなるのです。次にLASSOがどのようにペナルティをかけているのかを数式で説明します。Descent"LASSOの数式部分を抜粋します。数式(1)の1の部分だけだと通常の線形回帰(最小二乗法)で、LASSOには2のペナルティ項が入っています。このペナルティ項はλの大きさで変わります。λが大きいとペナルティがきつく、λが小さいとペナルティは緩いです。λが0だと最小二乗法と一致します。normは、(3)の式の値です。これは推定値βの絶対値を足したものです。このペナルティがどうなっているのかを図で表現してみます。乱数でデータを発生させて、自作関数で線形回帰とLASSOを作ってみます。誤差」で、x1はyとは無相関のダミーです。x)自作関数とlm関数の結果が微妙に違いますが、許容範囲ということで。次に、これを利用してLASSOを作ります。LassoRegression)$par線形回帰にペナルティを入れてます。この関数を使って、以下のように回帰残差、ペナルティ項、目的関数と推定値のプロットを描いてみます。(1)の数式では、1が回帰残差、2がペナルティ項、1と2を足したものが目的関数です。1)λを3、2、1、0と変えて図を描いてみます。黒のRSSが回帰残差、青がペナルティ項、赤が2つを足した目的関数です。この目的関数が最小になる点が、回帰係数(β)の推定値になります。λが小さくなるとペナルティ項の傾きが緩くなっています。それによって目的関数の形が変わり、最終的には回帰残差だけが残ります。回帰残差だけということは最小二乗法と等しいということです。回帰係数の推定値がが0から2へ大きくなっていることも確認できます。LASSOではペナルティ項が折れ線になっていますが、リッジ回帰だと2次関数になるわけです。LASSOもリッジ回帰も「λを変化させて回帰係数の推定値を変化させている」のです。実用的には、cv.glmnetでクロスバリデーションをしながら最適なλを求めることになります。そこで求まった回帰モデルは、単純な線形モデルです。LASSOはover-fittingしないようにパラメータ推定をする手順であり、結果自体が複雑なわけではないのです。familyを指定することで、ロジスティック回帰や生存時間解析にもLASSOを応用できます。単純に回帰をするより、LASSOを使う方が良さそうですね。regressionTweet広告を非表示にする関連記事2011-11-12プレPRML勉強会(第一回、第二回)を行いました。『パターン認識と機械学習(略称:PRML、ぷるむる)』の勉強会...2011-09-17Rを使えるようになるための10のこと+αRは統計解析を行うことができる強力なツールです。読者になる@iisssseeiiiiをフォローデータコンサル会社のiAnalysis合同会社(アイアナ)で代表をしている倉橋一成(くらはしいっせい)です。東京大学で医療統計学の博士号を取得して、2011年に東大病院に務めながらアイアナを設立しました。含む約50社の企業にコンサルティングを行ってきました。統計学やデータサイエンス、AIなどを駆使して経営戦略や事業戦略に活かすためのデータ分析を行っています。クライアントはNTTドコモ。2014年からデータ分析部門(情報戦略室)にコンサルティングを行い、当時数十名だったグループが2019年には200人近くの組織(デジタルマーケティング推進部)となって自走しています。サル以外にはベンチャーやアート活動をしています。こちらのサイトでベンチャーやアート活動などの近況をアップしています。ツイッターはコンサル以外の趣味のつぶやきメイン。移行時約180万PVはてなブログをはじめよう!isseing333さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。