Apakah ada keadaan di mana regresi bertahap harus digunakan?

13

Regresi bertahap telah digunakan secara berlebihan dalam banyak makalah biomedis di masa lalu tetapi ini tampaknya membaik dengan pendidikan yang lebih baik dari banyak masalah. Namun banyak pengulas yang lebih tua masih memintanya. Bagaimana keadaan di mana regresi bertahap memiliki peran dan harus digunakan, jika ada?

bobmcpop
sumber
6
Saya sering menggunakannya ketika mengajar kelas untuk menggambarkan ide bahwa itu tidak boleh digunakan.
gung - Reinstate Monica
1
(+1) Terima kasih @gung Saya bukan ahli statistik dan merasa sulit untuk mempertahankan ini meskipun saya tahu itu benar. Saya merasa sangat sulit karena 1) postingan yang sangat bagus dan sering dikutip ini tidak masuk ke dalam banyak detail yang menarik dan .... (
ctd
2
(ctd) dan 2) kritik terhadap stepwise sering tampaknya melakukannya untuk memilih dari sejumlah besar variabel atau data mining. Dalam dunia biomedis, perhitungan ukuran sampel sering memperhitungkan jumlah kovariat yang diharapkan, sehingga model penuh tidak pernah sebesar itu untuk memulai, dan setiap var sudah memiliki beberapa alasan "biologis" sebelumnya untuk dimasukkan. Apakah Anda merasa bahwa langkah demi langkah seharusnya tidak digunakan dalam situasi seperti ini?
bobmcpop
3
Saya melakukan konsultasi statistik untuk penelitian biomedis. Saya tidak menggunakan bertahap. Saya belum memiliki banyak orang bertanya (mereka mungkin berasumsi bahwa saya hanya akan menggunakannya jika itu akan membantu proyek mereka), tetapi ketika orang bertanya saya mengatakan kepada mereka bahwa itu tidak valid & berbicara tentang mengapa.
gung - Reinstate Monica

Jawaban:

11

Saya tidak mengetahui situasi, di mana regresi bertahap akan menjadi pendekatan yang disukai. Mungkin oke (terutama dalam versi step-down mulai dari model penuh) dengan bootstrap seluruh proses bertahap pada dataset yang sangat besar dengan . Di sini adalah jumlah pengamatan dalam hasil yang berkelanjutan (atau jumlah catatan dengan kejadian dalam analisis survival) adalah jumlah kandidat prediktor termasuk semua interaksi yang dipertimbangkan - yaitu ketika setiap efek kecil sekalipun menjadi sangat jelas dan tidak masalah jadi berapa banyak yang Anda lakukan, membangun model Anda (itu berarti akan jauh lebih besar dari daripada secara substansial lebih dari faktor yang dikutip kadang-kadang dari 20).n p n pn>>pnpnp

Tentu saja alasan kebanyakan orang tergoda untuk melakukan sesuatu seperti regresi bertahap adalah,

  1. karena ini tidak intensif secara komputasi (jika Anda tidak melakukan bootstrap yang tepat, tetapi hasilnya sangat tidak dapat diandalkan),
  2. karena memberikan potongan yang jelas "ada dalam model" versus "tidak ada dalam model" pernyataan (yang sangat tidak dapat diandalkan dalam regresi bertahap bertahap; sesuatu yang bootstrap yang tepat biasanya akan memperjelas sehingga pernyataan ini biasanya tidak akan begitu jelas) dan
  3. karena sering lebih kecil, dekat atau hanya sedikit lebih besar dari .pnp

Yaitu metode seperti regresi bertahap (jika memiliki karakteristik operasi yang baik) sangat menarik dalam situasi tersebut, ketika tidak memiliki karakteristik operasi yang baik.

Björn
sumber
3
(+1) Juga metode bertahap & terkait mungkin cocok untuk model prediktif dalam situasi jarum-di-tumpukan jerami, ketika banyak koefisien dapat diabaikan & hanya beberapa besar relatif terhadap varians kesalahan. Lihat Contoh 3 dari Tibshirani (1996), Penyusutan & pemilihan regresi melalui Lasso , JRSS B , 58 , 1 - meskipun di sini pun garotte non-negatif menang.
Scortchi
3
Saya tidak bisa mengerti paragraf terakhir. Mungkin bisa diulang lagi? Juga, bagaimana dengan 3: Saya tidak melihat argumen langsung, mungkin sesuatu seharusnya mudah disimpulkan di sana?
Richard Hardy
1
Untuk mengklarifikasi paragraf terakhir dan (3): Orang menggunakan bertahap karena (3) (yaitu untuk menghindari situasi di mana pemasangan model penuh sulit atau mengarah ke ), tetapi saat itulah itu akan menjadi metode yang mengerikan . Mereka menggunakannya, karena ini tidak intensif secara komputasi, tetapi untuk mendapatkan sesuatu yang bermanfaat, Anda harus melakukan bootstrap yang luas (jadi itu juga bukan keuntungan). Dan mereka menggunakannya, karena tampaknya memberikan interpretasi yang jelas, tetapi jika dilakukan dengan benar itu tidak begitu jelas dan Anda melihat berapa banyak model ketidakpastian ada (interpretasi yang jelas = ilusi). pn
Björn
11

Dua kasus di mana saya tidak keberatan melihat regresi langkah-bijaksana adalah

  1. Analisis data eksplorasi
  2. Model prediksi

Dalam kedua kasus penggunaan yang sangat penting ini, Anda tidak begitu peduli tentang inferensi statistik tradisional, sehingga fakta bahwa nilai-p, dll., Tidak lagi valid tidak menjadi masalah.

Sebagai contoh, jika sebuah makalah penelitian mengatakan "Dalam studi percontohan kami, kami menggunakan regresi bertahap untuk menemukan 3 variabel menarik dari 1000. Dalam penelitian lanjutan dengan data baru, kami menunjukkan 3 variabel menarik ini sangat berkorelasi dengan hasil yang menarik ", saya tidak akan memiliki masalah dengan penggunaan regresi bertahap. Demikian pula, "Kami menggunakan regresi langkah-bijaksana untuk membangun model prediktif. Model X out-preformed ini dalam set data hold-out kami mengenai MSE" juga benar-benar baik untuk saya.

Untuk lebih jelasnya, saya tidak mengatakan bahwa regresi bertahap adalah cara terbaik untuk mendekati masalah ini. Tapi itu mudah dan mungkin memberi Anda solusi yang memuaskan.

EDIT:

Dalam komentar, ada pertanyaan apakah AIC bertahap dapat benar-benar berguna untuk prediksi. Berikut ini adalah simulasi yang menunjukkan bahwa kinerjanya jauh lebih baik daripada regresi linier dengan semua kovariat, dan hampir juga jaring elastis dengan penalti yang dipilih melalui validasi silang.

Saya tidak akan mengambil simulasi ini sebagai akhir dari diskusi; tidak terlalu sulit untuk membuat skenario di mana AIC langkah-bijaksana akan terbentuk lebih buruk. Tapi itu benar-benar bukan skenario yang tidak masuk akal, dan persis jenis situasi yang dirancang untuk jaring elastis (korelasi tinggi kovariat dengan efek sangat sedikit)!

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!!

Catatan:

Saya benar-benar bukan penggemar regresi bertahap karena banyak alasan, jadi saya merasa agak canggung mengambil sikap ini untuk mempertahankannya. Tapi saya hanya berpikir penting untuk menjelaskan dengan tepat apa yang tidak saya sukai.

Cliff AB
sumber
2
Apa skenario lain yang biasa digunakan dalam (dalam literatur biomedis) kecuali dua indikasi? Saya hanya menemukan penggunaannya untuk model prediktif, namun tidak disarankan misalnya .
bobmcpop
5
@ bobmcpop: masalah besar adalah menggunakan nilai-p, interval kepercayaan, setelah regresi bertahap, seperti yang disebutkan dalam makalah yang Anda kutip. Model yang digunakan semata-mata untuk prediksi (bukan hanya model dengan prediktor) umumnya tidak peduli dengan nilai-p, tetapi lebih tepatnya seberapa banyak kesalahan out-of-sample berkurang.
Cliff AB
1
@ Bjorn: yah, seperti yang saya katakan di akhir, saya kira itu bukan metode terbaik untuk melakukannya oleh orang lain. Tapi itu tidak valid, dan Anda mungkin berakhir dengan hasil yang masuk akal. Dengan demikian, kekuatannya sangat mudah digunakan: jika Anda memiliki model yang mengambil kovariat dan mengembalikan kemungkinan, Anda dapat melakukan langkah-langkah AIC. Anda mungkin dapat melakukan yang lebih baik dengan sesuatu seperti LASSO ... tetapi Anda mungkin tidak melakukannya jika itu model baru yang mewah atau Anda menggunakan Excel.
Cliff AB
4
(+1) Saya akan mengatakan glmnet dirancang untuk mengambil situasi semacam ini, antara lain, dengan langkahnya (yang tampaknya); sedangkan metode pemilihan prediktor tanpa penyusutan sangat selaras dengannya. Mungkin menarik untuk membandingkan pendekatan ketika ada "efek meruncing" daripada beberapa besar & banyak yang kecil.
Scortchi
2
Saya mengedit kode Anda untuk membuatnya lebih mudah dibaca, & lebih mudah untuk menyalin dan menempel ke file kode atau konsol. Saya harap Anda menyukainya. Jika tidak, putar kembali dengan permintaan maaf saya.
gung - Reinstate Monica