このなげなわプロット(glmnet)の結論


19

以下は、mtcarsRのデータセットをmpgDVとして、その他を予測子変数として使用して、デフォルトのalpha(1、したがってlasso)を使用したglmnetのプロットです。

glmnet(as.matrix(mtcars[-1]), mtcars[,1])

ここに画像の説明を入力してください

さまざまな変数、特にamcylおよびwt(赤、黒、水色の線)に関するこのプロットから何を結論付けることができますか?公開するレポートの出力をどのように表現しますか?

私は次のことを考えました:

  1. wtはの最も重要な予測因子ですmpg。に悪影響を及ぼしていmpgます。

  2. cylは弱い負の予測因子ですmpg

  3. amはの正の予測因子である可能性がありmpgます。

  4. 他の変数は、のロバストな予測子ではありませんmpg

これについてのあなたの考えをありがとう。

(注:cyl非常に近いまで0に到達しない黒い線です。)

編集:以下はplot(mod、xvar = 'lambda')であり、x軸を上記のプロットの逆順に表示します。

ここに画像の説明を入力してください

(PS:この質問がおもしろい/重要だと思う場合は、賛成してください。)


の前-1にカンマを忘れたようですglmnet(as.matrix(mtcars[-1]), mtcars[,1])
リチャードハーディ

コンマが指定されていない場合、Rは番号を列番号と見なしますので、機能します。
rnso

いいですね、今はそうしませんでした。
リチャードハーディ

2
@RichardHardyは注意してください。この動作は、データフレームとマトリックスで異なります。従って、データフレームがリストされ、各列はそのリストの要素であるmy_data_frame[1]のに対し、一つの列を有するデータフレームを返すmy_data_frame[[1]]my_data_frame[, 1]の両方リターンするベクトルないデータフレームに「含まれ」。行列は、しかし、実際にはそう、Rは、グリッドのようにそれらにアクセスすることを可能にする特別な属性を持つだけでフラットなベクトルでありmy_matrix[1]my_matrix[1, 1]およびmy_matrix[[1]]全ての第1戻ります要素のをmy_matrixmy_matrix[, 1]は最初の列を返します。
シャドウトーカー

2
私はちょうどことを言及plot_glmnetの中の関数plotmoのそれはラベルoverplottingや他のいくつかの細部の世話をするため、パッケージがわずかに良い係数プロットを与えます。例は、plotres vignetteの第6章にあります。
スティーブンミルボロー

回答:


39

λログλ|β|

そのために、いくつかの相関データと非相関データを作成して、以下を実証しました。

x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]

sigma <- matrix(c(  1, -.5,   0,
                  -.5,   1, -.5,
                    0, -.5,   1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]

データx_uncorrに相関のない列があります

> round(cor(x_uncorr), 2)
     [,1]  [,2]  [,3]
[1,] 1.00  0.01  0.00
[2,] 0.01  1.00 -0.01
[3,] 0.00 -0.01  1.00

一方x_corr、列間には事前に設定された相関があります

> round(cor(x_corr), 2)
      [,1]  [,2]  [,3]
[1,]  1.00 -0.49  0.00
[2,] -0.49  1.00 -0.51
[3,]  0.00 -0.51  1.00

次に、これら両方の場合の投げ縄プロットを見てみましょう。まず、無相関データ

gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)

ここに画像の説明を入力してください

いくつかの機能が目立つ

  • 予測変数は、真の線形回帰係数の大きさの順にモデルに入ります。
  • |β||β|
  • 新しい予測変数がモデルに入ると、モデルに既に存在するすべての予測変数の係数パスの勾配に決定論的に影響します。たとえば、2番目の予測子がモデルに入ると、最初の係数パスの勾配は半分になります。3番目の予測子がモデルに入ると、係数パスの勾配は元の値の3分の1になります。

これらはすべて、無相関データを使用した投げ縄回帰に適用される一般的な事実であり、すべて手作業で証明するか(良い演習です!)、文献で見つけることができます。

相関データを実行しましょう

gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)

ここに画像の説明を入力してください

無相関の場合と比較することにより、このプロットからいくつかのことを読むことができます

  • 1番目と2番目の予測子パスは、3番目の予測子が相関関係にある場合でも、モデルに入るまで、非相関の場合と同じ構造を持ちます。これは、2つの予測子のケースの特別な機能です。興味がある場合は、別の回答で説明できますが、現在の議論から少し離れた場所に行く必要があります。
  • |β|

それでは、carsデータセットからプロットを見て、興味深いことをいくつか読んでみましょう(この議論を読みやすくするために、ここでプロットを再現しました)。

警告の言葉:私は、曲線が標準化された係数を示しているという前提に基づいて、次の分析を書きました。この例ではそうではありません。標準化されていない係数は無次元ではなく、比較できないため、予測の重要性の観点からそれらから結論を引き出すことはできません。以下の分析を有効にするには、プロットが標準化された係数のふりをして、標準化された係数パスで独自の分析を実行してください。

ここに画像の説明を入力してください

  • あなたが言うwtように、予測子は非常に重要なようです。最初にモデルに入り、最終値までゆっくりと安定して下降します。それは、わずかにでこぼこした乗り物になるいくつかの相関関係があります。am特に、入ったときに劇的な効果があるようです。
  • amまた重要です。それは後で入り、に相関します。wtこれは、の勾配にwt激しく影響するためです。また、carbおよびとも相関しqsecます。これは、傾斜が入ると予測可能な傾斜の軟化が見られないためです。しかし、これらの4つの変数が入力された後、素敵な無相関パターン見られるため、最後のすべての予測子とは無相関のようです。
  • 何かが周りの2.25 x軸上に入るが、そのパス自体は知覚できない、あなただけのそのに影響を与えることにより、それを検出することができますcylし、wtパラメータを設定します。
  • cylとても魅力的です。2番目に入るので、小さなモデルにとって重要です。他の変数、特にam入力した後、それはもはや重要ではなく、その傾向は逆転し、最終的にはほとんど削除されます。の効果cylは、プロセスの最後に入力する変数によって完全にキャプチャできるようです。を使用することがより適切cylであるか、変数の補完的なグループであるかは、バイアスと分散のトレードオフに依存します。最終モデルにグループを含めると、分散が大幅に増加しますが、バイアスが低い方がそれを補う場合があります。

これは、これらのプロットから情報を読み取る方法を学んだ小さな紹介です。彼らはたくさんの楽しみだと思います!

すばらしい分析をありがとう。簡単に言えば、wt、am、およびcylはmpgの3つの最も重要な予測因子であると言えますか。また、予測用のモデルを作成する場合は、この図に基づいてどのモデルを含めますか:wt、am、およびcyl?または他の組み合わせ。また、分析に最適なラムダは必要ないようです。リッジ回帰のように重要ではありませんか?

私はそのケースがはっきりしているwtと言っていいでしょうam、彼らは重要です。 cylはるかに微妙で、小さなモデルでは重要ですが、大きなモデルではまったく関係ありません。

数字だけに基づいて何を含めるかを決定することはできません。実際にあなたがしていることの文脈に答えなければなりません。あなたは、その後、次の3つの予測モデルをしたい場合はと言うことができwtamそしてcyl、彼らは物事の壮大な計画に関連している、と小さなモデルで、合理的な効果の大きさを持つ終わる必要がありますように、良い選択です。これは、小さな3つの予測子モデルを希望する何らかの外部的な理由があるという前提に基づいています。

確かに、このタイプの分析ではラムダのスペクトル全体を調べ、さまざまなモデルの複雑さにわたって関係を選別することができます。とはいえ、最終モデルでは、最適なラムダを調整することが非常に重要だと思います。他の制約がない場合は、クロス検証を使用して、このスペクトルに沿って最も予測的なラムダがどこにあるかを見つけ、そのラムダを最終モデルと最終分析に使用します。

λ

他の方向では、モデルの複雑さに関する外部の制約がある場合があり(実装コスト、レガシーシステム、説明的ミニマリズム、ビジネスの解釈可能性、美的遺産)、この種の検査はデータの形状を理解するのに本当に役立ちます。最適なモデルよりも小さいモデルを選択することによるトレードオフ。


すばらしい分析をありがとう。簡単に言えば、wt、am、およびcylがmpgの3つの最も重要な予測因子であると言えますか。また、予測用のモデルを作成する場合は、この図に基づいてどのモデルを含めますか:wt、am、およびcyl?または他の組み合わせ。また、分析に最適なラムダは必要ないようです。リッジ回帰のように重要ではありませんか?
-rnso

@rnso回答に回答を追加しました。
マシュードゥルーリー

おそらく「家父長制」は「 '約」であると思われますか?
ハトシェプスト

@Matthew Drury、私はそれについて確信がないことはほとんどありません、あなたの説明に感謝します、「あなたは「例えば、2番目の予測因子が入ったとき」と書きました。##この予測子が重要であるかどうかはいつ言いますか。###最後に、このフィッティングに最適なモデルを選択するにはどうすればよいですか。さらに、凡例/ラベルが自動的に含まれます。(この例をRで実装しました)
-jeza

5
+6、それが出てきたとき、私は明らかにこれを見逃した。本当にいい仕事。
GUNG -復活モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.