glmnetを使用して投げ縄の結果を表示する方法


40

30個の独立変数のセットから連続従属変数の予測子を見つけたいです。R のglmnetパッケージに実装されているLasso回帰を使用してます。ダミーコードを次に示します。

# generate a dummy dataset with 30 predictors (10 useful & 20 useless) 
y=rnorm(100)
x1=matrix(rnorm(100*20),100,20)
x2=matrix(y+rnorm(100*10),100,10)
x=cbind(x1,x2)

# use crossvalidation to find the best lambda
library(glmnet)
cv <- cv.glmnet(x,y,alpha=1,nfolds=10)
l <- cv$lambda.min
alpha=1

# fit the model
fits <- glmnet( x, y, family="gaussian", alpha=alpha, nlambda=100)
res <- predict(fits, s=l, type="coefficients")
res 

私の質問は、出力の解釈方法です。

  • 最終出力で、ゼロとは異なる係数を示すすべての予測変数が従属変数に関連していると言うのは正しいですか?

  • それは雑誌の出版物の文脈で十分な報告でしょうか?または、係数の有意性の検定統計量を提供することが期待されますか?(コンテキストは人間の遺伝学です)

  • 有意性を主張するためにp値または他の検定統計量を計算することは合理的ですか?それはどのように可能でしょうか?Rに手順は実装されていますか?

  • すべての予測変数の単純な回帰プロット(線形近似でプロットされたデータポイント)は、このデータを視覚化するのに適した方法でしょうか?

  • 誰かが実際のデータのコンテキストでLassoを使用していることを示す公開された記事の簡単な例を提供できますか?


「モデルに適合」セクションでglmnetを実行するのはなぜですか?cv予測ステップにも使用できませんか?
bourbaki4481472

回答:


22

私の理解では、どの変数が「重要」であるか、または係数が非ゼロであるかどうかに基づいて「実際の」効果があるかについて必ずしも多くを語ることはできません。極端な例を挙げると、完全に同一線上にある2つの予測変数がある場合、投げ縄は基本的にランダムに1つを選択して最大の重みを取得し、もう1つの予測子はゼロの重みを取得します。

glmnetの著者の1人を含むこのペーパーでは、glmnetベースの分析をいくつか紹介します(特に、はじめに、セクション2.3と4.3、および表4と5を参照)。ちらっと見ると、彼らはglmnetモデルから直接P値を計算していないようです。他の方法を使用して2種類のP値を計算しましたが、どちらも完全に信頼しているようには見えません。

プロット方法の観点からあなたが提案していることを100%は確信していませんが、それは合理的に聞こえると思います。

お役に立てば幸いです。


1
こんにちはDavid!答えてくれてありがとう。LASSOを使用して非ゼロ係数の予測子を選択し、線形回帰モデルでそれらの予測子のみを使用して、プリディターの有意性に関するp値を取得することに反対することはありませんか。たとえば、このペーパーのように:ncbi.nlm.nih.gov/pmc/articles/PMC3412288
jokel

4
@jokelあなたが提案しているのは「リラックスした投げ縄」の特殊なケースであり、いくつかの目的で非常にうまく機能すると思います。ただし、F統計量またはt統計量は、行った変数選択ステップを「知らない」ため、説明した手順から得られるp値を信頼できるかどうかはわかりません。タイプIのエラー率が増大します。これについて考える1つの方法:F統計量に対する正しい自由度の数は何でしょうか?LASSO回帰の変数の総数は?二次回帰の変数の数は?間に何か?
デビッドJ.ハリス

真-したがって、これも有効なアプローチではないようです。300個の独立変数から重要な予測変数を見つける方法(上記の例のようにn >> p)を他に考えていますか?結局、「予測子Xは従属変数Yに大きく関連している」と主張できますか?
ジョケル

計算方法がわからないすべてに対する私の答えは、ランダム化を行うことです。1つの可能性は、データセットの行を再サンプリングし(ブートストラップなど)、LASSO分析を繰り返し実行することです。変数がモデルに含まれる頻度が高いほど、重要である可能性が高くなります。さらに優れたオプションには、行列のサンプリングが含まれる場合があります。これにより、「マスキング」効果を回避できます。ブライマンは、[このpdf](図2の近く)(faculty.smu.edu/tfomby/eco5385/lecture/…)で同様のことを提案しています。
デビッドJ.ハリス

9

LASSO専用のテスト統計を開発しようとしている最近の仕事があることを指摘したかっただけです。

投げ縄の有意差検定。リチャード・ロックハート、ジョナサン・テイラー、ライアン・J・ティブシラーニ、ロバート・ティブシラーニ。 http://arxiv.org/abs/1301.7161

ただし、ブートストラップは確かに使用されますが、これが適用作業で使用されることはまだありません。


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