段階的回帰を使用する必要がある状況はありますか?


13

過去に多くの生物医学論文で段階的回帰が多用されていましたが、これは多くの問題のより良い教育により改善しているようです。ただし、多くの古いレビュアーはまだそれを求めています。ステップワイズ回帰に​​役割があり、使用する必要がある場合、どのような状況ですか?


6
私はクラスを教えるときによく使うべきではないという考えを説明するためにそれを使用します。
グング-モニカの復職

1
(+1)ありがとう@gung 1)この非常によく引用されているこの投稿はあまり引用可能な詳細に入らないため、特に難しいと思います。...(ctd)
-bobmcpop

2
(ctd)および2)stepwiseの批評家は、多くの変数またはデータマイニングから選択するためにそうするように見えることがよくあります。生物医学の世界では、サンプルサイズの計算では予想される共変量の数が考慮されることが多いため、完全なモデルは最初からそれほど大きくなく、各変数には事前の「生物学的」理由が含まれています。これらの状況では、stepwiseを等しく使用すべきではないと感じますか?
bobmcpop

3
生物医学研究のための統計コンサルティングを行っています。私は段階的に使用しません。私は多くの人に尋ねることはありませんでした(彼らが彼らのプロジェクトを助けるなら、私はそれを使うだけであると仮定するかもしれません)が、人々が尋ねるとき、私はそれが無効であると彼らに話します、そして、理由について話してください。
GUNG -復活モニカ

回答:


11

私は、段階的回帰が好ましいアプローチである状況を知りません。それに非常に大きなデータセット上の全段階的プロセスのブートストラップを有する(特にフルモデルから出発し、その降圧バージョン)大丈夫であってもよい。ここで、nは連続的な結果の観測値の数(または生存分析のイベントを含むレコードの数)pは考慮されたすべての相互作用を含む候補予測子の数です。モデル構築の方法(npよりもはるかに大きいことを意味します)n>>pnpnp 時々引用される20の係数よりも大幅に大きい)。

もちろん、ほとんどの人が段階的回帰のようなことをしようとする理由は、

  1. 計算集約的ではないため(適切なブートストラップを行わない場合でも、結果はかなり信頼できない)、
  2. 「モデル内にある」対「モデル内にない」ステートメント(標準のステップワイズ回帰では非常に信頼性が低い。適切なブートストラップが通常明確になるため、これらのステートメントは通常それほど明確ではない)
  3. 多くの場合、pよりも小さいか、それに近いか、少しだけ大きいためです。np

すなわち、ステップワイズ回帰のような方法は、(良好な動作特性があった場合)良好な動作特性を持たない状況で特に魅力的です。


3
(+1)また、多くの係数が無視でき、誤差分散に対してわずかに大きい場合、干し草の山のような状況での予測モデルには、段階的および関連する方法が適している場合があります。実施例3参照Tibshirani(1996)、投げ縄を介して回帰収縮&選択JRSS B58、1 -ここでもかかわらず非負キル勝利。
Scortchi -復活モニカ

3
最後の段落を完全に理解することはできません。おそらくそれは言い換えることができますか?また、3についてはどうですか:直接の議論はありません。おそらくそこに何か推測しやすいと思われますか?
リチャードハーディ

1
pn

11

段階的な回帰を見ることに反対しない2つのケースは次のとおりです。

  1. 探索的データ分析
  2. 予測モデル

これらの非常に重要なユースケースの両方で、あなたは伝統的な統計的推論についてそれほど心配していないので、p値などがもはや有効でないという事実はほとんど関心がありません。

たとえば、研究論文で「パイロット研究では、段階的回帰を使用して1000のうち3つの興味深い変数を見つけました。新しいデータを使用したフォローアップ研究では、これらの3つの興味深い変数が関心の結果」、ステップワイズ回帰の使用に問題はありません。同様に、「段階的回帰を使用して予測モデルを構築しました。MSEに関するホールドアウトデータセットのこの事前に作成された代替モデルX」も、私にとってはまったく問題ありません。

明確にするために、これらの問題にアプローチするための段階的な回帰が最善の方法であるとは言っていません。しかし、それは簡単であり、満足のいく解決策を提供するかもしれません。

編集:

コメントには、ステップワイズAICが実際に予測に役立つかどうかという問題があります。これは、すべての共変量を使用した線形回帰よりもはるかに優れたパフォーマンスを示すシミュレーションであり、クロスバリデーションによって選択されたペナルティを持つエラスティックネットとほぼ同じです。

私はこのシミュレーションを議論の終わりとは思わないでしょう。段階的なAICが悪化するシナリオを考え出すのはそれほど難しくありません。しかし、これは本当に不合理なシナリオではなく、エラスティックネットが設計されている状況のタイプそのものです(共変量の相関が高く、大きな影響はほとんどありません)!

library(leaps)
library(glmnet)
nRows <- 1000
nCols <- 500

# Seed set For reproducibility. 
# Try changing for investigation of reliability of results
set.seed(1)

# Creating heavily correlated covariates
x_firstHalf  <- matrix(rnorm(nRows * nCols / 2), nrow = nRows)
x_secondHalf <- x_firstHalf + 0.5 * 
                matrix(rnorm(nRows * nCols / 2), nrow = nRows) 
x_mat        <- cbind(x_firstHalf, x_secondHalf) + rnorm(nRows)

# Creating beta's. Most will be of very small magnitude
p_large = 0.01
betas <- rnorm(nCols, sd = 0.01) + 
         rnorm(nCols, sd = 4) * rbinom(nCols, size = 1, prob = p_large)
y     <- x_mat %*% betas + rnorm(nRows, sd = 4)

all_data           <- data.frame(y, x_mat)
colnames(all_data) <- c('y', paste('x', 1:nCols, sep = '_'))

# Holding out 25% of data for validation
holdout_index <- 1:(nRows * .25) 
train_data    <- all_data[-holdout_index, ]
validate_data <- all_data[holdout_index, ]

mean_fit <- lm(y ~ 0, data = train_data)
full_fit <- lm(y ~ ., data = train_data)
step_fit <- step(mean_fit, 
                 scope = list(lower = mean_fit, upper = full_fit), 
                 direction = "forward", steps = 20, trace = 0)

glmnet_cvRes <- cv.glmnet(x = as.matrix(train_data[,-1]), 
                          y = as.numeric(train_data$y)   )

full_pred   <- predict(full_fit, validate_data)
step_pred   <- predict(step_fit, validate_data)
glmnet_pred <- predict(glmnet_cvRes, as.matrix(validate_data[,-1]), s='lambda.min')

sd(full_pred - validate_data$y)    # [1] 6.426117
sd(step_pred - validate_data$y)    # [1] 4.233672
sd(glmnet_pred - validate_data$y)  # [1] 4.127171
# Note that stepwise AIC does considerably better than using all covariates 
# in linear regression, and not that much worse than penalized methods
# with cross validation!!

サイドノート:

私は多くの理由で段階的回帰のファンではないので、このスタンスを守ろうとしてやや気まずい思いをします。しかし、私は単に私がそれについて好きではないものを正確に正確にすることが重要だと思う。


2
これらの2つの適応症を除いて、(生物医学文献で)一般的に使用される他のシナリオは何ですか?予測モデルへの使用に出くわしただけですが、たとえばをお勧めしません。
bobmcpop

5
@bobmcpop:大きな問題は、あなたが引用した論文で言及されているように、段階的回帰の後、p値、信頼区間を使用していることです。予測のみに使用されるモデル(予測子を持つモデルだけでなく)は通常、p値を気にしませんが、サンプル外の誤差がどれだけ減少するかを気にします。
クリフAB

1
@Björn:まあ、最後に言ったように、それは一般的にそうするのに最善の方法だとは思わない。しかし、それは無効ではなく、合理的な結果が得られる可能性があります。そのため、その強みは本当に簡単に使用できることです。共変量を取り、尤度を返すモデルがある場合は、段階的なAICを実行できます。LASSOのようなものでもっとうまくできるかもしれません...しかし、それがいくつかの派手な新しいモデルであるか、Excelを使用している場合はそうではないかもしれません。
クリフAB

4
(+1)glmnetは、この種の状況、とりわけその歩み(と思われる)をとるように設計されていると言っていました。一方、収縮のない予測子の選択方法は特にそれに適合しています。いくつかの大きな&多くの小さな効果ではなく、「テーパ効果」がある場合のアプローチを比較するのは興味深いかもしれません。
Scortchi-モニカの復職

2
コードを編集して、コードファイルまたはコンソールに読みやすく、コピーアンドペーストしやすくしました。気に入ってくれるといいな。そうでない場合は、謝罪してロールバックしてください。
GUNG -復活モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.