LASSOには、段階的回帰と同じ問題がありますか?


18

段階的アルゴリズムの変数選択方法は、回帰モデルのすべての推定値(およびそのSE、p値、F統計量など)に多かれ少なかれバイアスをかけるモデルを選択する傾向があり、ほぼ真の予測子を除外する可能性が高い適度に成熟したシミュレーション文献によると、誤った予測変数を含めます。β

LASSOは、変数を選択するために使用される場合、同じ特定の方法で影響を受けますか?


3
そうだと思います。フランク・ハレルはそのことについていくつかの投稿をしていると思うし、彼の著書「回帰モデリング戦略」に関連資料があるかもしれない。
リチャードハーディ

2
@RichardHardy +1 FrankHarrellがスイングしてコメントや回答をしてくれたら嬉しいです。:)
アレクシス

5
これに対処する新しい講演があります。結論:投げ縄は、「正しい」変数を選択する可能性が低いです。スライドはfharrell.com/talk/stratos19にあります
フランクハレル

4
「一番下の行:投げ縄は「正しい」変数を選択する確率が低い」に関連します。スパース性のある統計学習(web.stanford.edu/~hastie/StatLearnSparsity_files/…)に同じトピックに関するセクションがあります11.4.1 Variable-Selection Consistency for the Lasso
Adrian

2
下線:投げ縄は「正しい」変数を選択する可能性が低い」にも関連しています。statweb.stanford.edu/〜candes / stats300c / Lectures / Lecture24.pdfケーススタディ1および2を参照してください
Adrian

回答:


3

LASSOモデルの場合、尤度、p値などの頻出表現の確率解釈、および段階的回帰正しくありません

これらの式は確率を過大評価しています。たとえば、一部のパラメーターの95%信頼区間は、メソッドがその区間内に真のモデル変数を持つ区間をもたらす確率が95%であると言うことになっています。

ただし、近似モデルは典型的な単一の仮説に起因するものではなく、代わりに段階的回帰またはLASSO回帰を行うときにチェリーピッキング(多くの可能な代替モデルから選択)しています。


  1. モデルパラメーターの正確さを評価することはほとんど意味がありません(特にモデルが正しくない可能性が高い場合)。

    後で説明する以下の例では、モデルは多くのリグレッサに適合し、多重共線性の影響を受けます。これにより、モデル内に実際に存在するものではなく、隣接するリグレッサ(強く相関している)がモデル内で選択される可能性が高くなります。強い相関により、係数の誤差/分散が大きくなります(行列)。バツTバツ1

    ただし、多重衝突によるこの高い分散は、p値や係数の標準誤差などの診断では「見られません」。これらは、回帰子が少ない、より小さな設計行列基づいているためです。(およびLASSOのこれらのタイプの統計を計算する簡単な方法はありませんバツ

    例:10ガウス曲線の線形和である信号のおもちゃモデルの結果を表示する以下のグラフ(これは、たとえば、スペクトルの信号が線形和と見なされる化学の分析に似ている場合がありますいくつかのコンポーネント)。LASSOを使用して、10個の曲線の信号に100個の成分のモデル(平均値の異なるガウス曲線)を当てはめます。信号はよく推定されています(かなり近い赤と黒の曲線を比較してください)。しかし、実際の基礎となる係数は十分に推定されておらず、完全に間違っている可能性があります(赤と黒のバーを同じではないドットと比較してください)。最後の10個の係数も参照してください。

                  91     91     92     93     94     95     96     97     98     99     100
     true model   0      0      0      0      0      0      0      142.8  0      0      0
     fitted       0      0      0      0      0      0      129.7  6.9    0      0      0

    LASSOモデルは非常に近似する係数を選択しますが、係数自体の観点から、非ゼロである係数がゼロであると推定され、隣接する係数がゼロであると推定される場合、大きな誤差を意味しますゼロ以外。係数の信頼区間はほとんど意味がありません。

    LASSOフィッティング

    例lasso / glmnet

    段階的なフィッティング

    比較として、同じ曲線を次の画像に至る段階的なアルゴリズムに適合させることができます。(係数は近いが一致しないという同様の問題がある)

    例nnls

  2. 曲線の精度(前のポイントで意味をなさないことが明らかにされたパラメーターではなく)を考慮する場合でも、オーバーフィットに対処する必要があります。LASSOでフィッティング手順を実行する場合、トレーニングデータ(さまざまなパラメーターでモデルをフィッティングするため)とテスト/検証データ(最適なパラメーターであるチューニング/検出するため)を使用しますが、3番目の別個のセットも使用する必要がありますデータのパフォーマンスを調べるためのテスト/検証データ。

    p値または似たようなものは、チェリーピッキングであり、通常の線形近似法とは異なる(はるかに大きな自由度)調整モデルで作業しているため機能しません。


段階的回帰と同じ問題に苦しんでいますか?

、p値、Fスコア、標準エラーなどの値のバイアスなどの問題に言及しているようです。これらの問題を解決するためにLASSOは使用されていないと思います。R2

段階的回帰の代わりにLASSOを使用する主な理由は、LASSOが多重欲求の影響が少ない貪欲なパラメーター選択を許可しないためだと思いました。(LASSOとstepwiseのさらなる違い:モデルの相互検証予測エラーの観点から、前方選択/後方消去に対するLASSOの優位性


サンプル画像のコード

# settings
library(glmnet)
n <- 10^2        # number of regressors/vectors
m <- 2         # multiplier for number of datapoints
nel <- 10        # number of elements in the model
set.seed(1)   
sig <- 4
t <- seq(0,n,length.out=m*n)

# vectors
X <- sapply(1:n, FUN <- function(x) dnorm(t,x,sig))

# some random function with nel elements, with Poisson noise added
par <- sample(1:n,nel)
coef <- rep(0,n)
coef[par] <- rnorm(nel,10,5)^2
Y <- rpois(n*m,X %*% coef)

# LASSO cross validation
fit <- cv.glmnet(X,Y, lower.limits=0, intercept=FALSE, 
                 alpha=1, nfolds=5, lambda=exp(seq(-4,4,0.1)))
plot(fit$lambda, fit$cvm,log="xy")
plot(fit)
Yfit <- (X %*% coef(fit)[-1])

# non negative least squares 
# (uses a stepwise algorithm or should be equivalent to stepwise)
fit2<-nnls(X,Y)


# plotting
par(mgp=c(0.3,0.0,0), mar=c(2,4.1,0.2,2.1))
layout(matrix(1:2,2),heights=c(1,0.55))


plot(t,Y,pch=21,col=rgb(0,0,0,0.3),bg=rgb(0,0,0,0.3),cex=0.7,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",bty="n")      
#lines(t,Yfit,col=2,lwd=2)                        # fitted mean
lines(t,X %*% coef,lwd=2)                        # true mean
lines(t,X %*% coef(fit2), col=3,lwd=2)           # 2nd fit

  # add coefficients in the plot
for (i in 1:n) {
  if (coef[i] > 0) {
    lines(c(i,i),c(0,coef[i])*dnorm(0,0,sig))
    points(i,coef[i]*dnorm(0,0,sig), pch=21, col=1,bg="white",cex=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(c(i,i),c(0,coef(fit)[i+1])*dnorm(0,0,sig),col=2)
#    points(i,coef(fit)[i+1]*dnorm(0,0,sig), pch=21, col=2,bg="white",cex=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(c(i,i),c(0,coef(fit2)[i+1])*dnorm(0,0,sig),col=3)
    points(i,coef(fit2)[i+1]*dnorm(0,0,sig), pch=21, col=3,bg="white",cex=1)
  }

}

#Arrows(85,23,85-6,23+10,-0.2,col=1,cex=0.5,arr.length=0.1)
#Arrows(86.5,33,86.5-6,33+10,-0.2,col=2,cex=0.5,arr.length=0.1)
#text(85-6,23+10,"true coefficient", pos=2, cex=0.7,col=1)
#text(86.5-6,33+10, "fitted coefficient", pos=2, cex=0.7,col=2)

text(0,50, "signal versus position\n true mean (black), fitted with nnls (green)", cex=1,col=1,pos=4, font=2)



plot(-100,-100,pch=21,col=1,bg="white",cex=0.7,type="l",lwd=2,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",
     ylim=c(0,max(coef(fit)))*dnorm(0,0,sig),xlim=c(0,n),bty="n") 
#lines(t,X %*% coef,lwd=2,col=2)      

for (i in 1:n) {
  if (coef[i] > 0) {
    lines(t,X[,i]*coef[i],lty=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(t,X[,i]*coef(fit)[i+1],col=2,lty=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(t,X[,i]*coef(fit2)[i+1],col=3,lty=1)
  }

}

text(0,33, "illustration of seperate components/curves", cex=1,col=1,pos=4, font=2)

+1ありがとう、Martjin Wterings。グラフを少し拡大できますか?軸に表示されるもの、色が表すものなど
アレクシス

実際、グラフはLASSOの場合ではありません。ただし、モデルが複数のコンポーネントの合計である場合の例です。たとえば、ガウス曲線(平均値がわずかに異なる曲線は非常に相関している)と、これらのコンポーネントの平均値のシフトは係数の大きな変化を意味します曲線についてはそれほどではありません。
セクストスエンピリカス

1
バーは、真のモデルと近似モデルの係数の値です。これは私がこの原理が起こったことを覚えているイメージです。私は自分で例を作成し、それをより明確に示すことができます(貪欲ではないLASSOは、真の係数を表現するのに多少優れていると思われます)。
Sextus Empiricus

0

これに対処する新しい講演があります。結論:投げ縄は、「正しい」変数を選択する可能性が低いです。スライドは http://fharrell.com/talk/stratos19にあります

–フランクハレル

「下線:投げ縄は「正しい」変数を選択する可能性が低い」に関連します。スパース性のある統計学習(https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1。)の同じトピックに関するセクションがあります。 4.16.pdf)、 11.4.1 Variable-Selection Consistency for the Lasso

–エイドリアン

「下線:投げ縄は「正しい」変数を選択する可能性が低い」とも関連しています。https//statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf ケーススタディ1および2を参照して ください

–エイドリアン


1
これらのコメントは多かれ少なかれこの質問に対する回答であるため、これらのコメントをコミュニティWikiの回答としてコピーしました。答えと質問の間には劇的なギャップがあります。問題の少なくとも一部は、いくつかの質問がコメントで回答されていることです。質問に回答したコメントが回答である場合、未回答の質問が少なくなります。
mkt-モニカの復活

1
これらはコメントであり、集合的にさえ、CVの基準による回答を提供しません(たとえば、リンクは回答ではありません)。また、質問の回答率に対するあなた自身の不満のために、コミュニティwikiに完全に有効な質問を作成することに激しく反対します。
アレクシス

1
また、私はコミュニティwikiとコミュニティwikiの回答について教育を受けており、そこで意見の相違を撤回します(まだこれは回答だとは思いませんが:)。
アレクシス

1
@アレクシスフェア-私はそれが自分で灰色の領域だと思ったが、これを誤解したかもしれない。
mkt-モニカの復活

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