Apakah pendekatan bertahap menghasilkan model tertinggi ?

8

Ketika menggunakan pendekatan stepwise maju untuk memilih variabel, apakah model akhir dijamin memiliki setinggi mungkin ? Dengan kata lain, apakah pendekatan bertahap menjamin optimum global atau hanya optimal lokal?R2

Sebagai contoh, jika saya memiliki 10 variabel untuk dipilih dan ingin membangun model 5-variabel, apakah hasil akhirnya model 5-variabel yang dibangun oleh pendekatan stepwise memiliki tertinggi dari semua kemungkinan model 5-variabel yang dapat sudah dibangun?R2

Perhatikan bahwa pertanyaan ini murni teoretis, yaitu kita tidak memperdebatkan apakah nilai tinggi optimal, apakah mengarah ke pakaian berlebih, dll.R2

zabidlo
sumber
2
Saya pikir seleksi bertahap akan memberi Anda setinggi mungkin dalam arti bahwa itu akan menjadi jauh lebih tinggi daripada model yang sebenarnya (yaitu, itu tidak akan menghasilkan model yang optimal). Anda mungkin ingin membaca ini . R2
gung - Reinstate Monica
10
Maksimal dicapai ketika semua variabel dimasukkan. Ini jelas terjadi karena memasukkan variabel baru tidak dapat mengurangi . Memang, dalam arti apa yang Anda maksud "lokal" dan "global"? Pemilihan variabel adalah masalah tersendiri - pilih satu dari himpunan bagian dari variabel - jadi, seperti apa lingkungan subset lokal? R2R22kk
whuber
Re edit: Bisakah Anda jelaskan "pendekatan bertahap" yang ada dalam pikiran Anda? (Yang saya kenal dengan tidak sampai pada sejumlah variabel tertentu: bagian dari tujuan mereka adalah untuk membantu Anda memutuskan berapa banyak variabel yang akan digunakan.)
whuber
Apakah Anda berpikir bahwa yang lebih tinggi (mentah) adalah hal yang baik? Itu sebabnya mereka menyesuaikan , AIC, dll.R2R2
Wayne
1
Untuk R2 maksimum, sertakan semua interaksi 2 arah dan 3 arah, berbagai transformasi (log, terbalik, persegi, dll.), Fase bulan, dll.
Zach

Jawaban:

5

Anda tidak perlu mendapatkan R tertinggi karena Anda hanya membandingkan subset dari model yang mungkin dan mungkin melewatkan yang dengan R tertinggi yang akan mencakup semua variabel .. Untuk mendapatkan model itu, Anda perlu melihat semua subset . Tetapi model terbaik mungkin bukan yang dengan R tertinggi karena mungkin Anda terlalu cocok karena mencakup semua variabel.222

Michael R. Chernick
sumber
1
Saya percaya ini juga, tetapi untuk meyakinkan - karena Anda belum memberikan argumen yang keras - akan sangat bagus untuk melihat contoh yang sebenarnya. Ini akan menjadi bahkan lebih bagus untuk memahami mengapa prosedur bertahap konvergen ke variabel (katakanlah) mungkin gagal untuk konvergen ke paling tinggi kombinasi variabel (yang tidak membutuhkan mencari semua himpunan bagian). kR2k
whuber
Proses bertahap tergantung pada di mana Anda mulai. Jika Anda mulai dengan dua set variabel awal yang berbeda, itu bisa mengarahkan Anda ke solusi yang berbeda. Intinya adalah bahwa pada setiap langkah ada kriteria pada statistik F untuk variabel untuk masuk dan juga untuk variabel untuk pergi. Statistik F tergantung pada variabel yang saat ini dalam model. Prosedur berhenti ketika F untuk masuk maupun F untuk keluar secara statistik signifikan pada ambang yang ditentukan. Sehingga dengan mudah bisa terjadi sebelum Anda menambahkan semua variabel ke model.
Michael R. Chernick
Ini dapat dengan mudah ditunjukkan dengan contoh katakanlah di SAS dengan output disisipkan ke dalam jawabannya.
Michael R. Chernick
1
Saya setuju - tetapi menemukan counterexample adalah bagian yang sulit, @Michael, tidak menggunakan perangkat lunak!
whuber
Either way itu banyak pekerjaan!
Michael R. Chernick
13

Ini adalah contoh balasan menggunakan data yang dibuat secara acak dan R:

library(MASS)
library(leaps)

v <- matrix(0.9,11,11)
diag(v) <- 1

set.seed(15)
mydat <- mvrnorm(100, rep(0,11), v)
mydf <- as.data.frame( mydat )

fit1 <- lm( V1 ~ 1, data=mydf )
fit2 <- lm( V1 ~ ., data=mydf )

fit <- step( fit1, formula(fit2), direction='forward' )
summary(fit)$r.squared

all <- leaps(mydat[,-1], mydat[,1], method='r2')
max(all$r2[ all$size==length(coef(fit)) ])

plot( all$size, all$r2 )
points( length(coef(fit)), summary(fit)$r.squared, col='red' )

R2

Whuber menginginkan proses berpikir: sebagian besar kontras antara rasa ingin tahu dan kemalasan. Posting asli berbicara tentang memiliki 10 variabel prediktor, jadi itulah yang saya gunakan. Korelasi 0,9 adalah angka bulat yang bagus dengan korelasi yang cukup tinggi, tetapi tidak terlalu tinggi (jika terlalu tinggi maka stepwise kemungkinan besar hanya akan mengambil 1 atau 2 prediktor), saya pikir peluang terbaik untuk menemukan contoh penghitung akan mencakup cukup banyak collinearity. Contoh yang lebih realistis akan memiliki berbagai korelasi yang berbeda (tetapi masih cukup banyak collinearity) dan hubungan yang pasti antara prediktor (atau sebagian dari mereka) dan variabel respon. Ukuran sampel 100 adalah juga yang pertama saya coba sebagai angka bulat yang bagus (dan aturan praktis mengatakan Anda harus memiliki setidaknya 10 pengamatan per prediktor). Saya mencoba kode di atas dengan seed 1 dan 2, lalu membungkus semuanya menjadi satu lingkaran dan mencoba berbagai seed yang berbeda secara berurutan. Sebenarnya berhenti di seed 3, tetapi perbedaannyaR2 berada di titik desimal ke-15, jadi saya pikir itu kemungkinan kesalahan pembulatan dan memulai kembali dengan perbandingan pembulatan pertama hingga 5 digit. Saya terkejut bahwa ia menemukan perbedaan segera setelah 15. Jika tidak menemukan contoh penghitung dalam jumlah waktu yang wajar saya akan mulai mengutak-atik hal-hal (korelasi, ukuran sampel, dll.).

Greg Snow
sumber
2
+1 Bagus! Contohnya jauh lebih meyakinkan daripada menggunakan kemungkinan hipotetis. Tetapi jika Anda pernah mendapatkan kesempatan, silakan mempertimbangkan untuk berbagi proses pemikiran yang Anda lalui dalam membangun sampel tandingan ini.
whuber
Akun Anda tentang prosedur ini sangat berharga: ini adalah jenis pengungkapan, hal-hal praktis yang hanya muncul di makalah yang paling jelas, jika sama sekali, dan sebaliknya harus dipelajari langsung dari orang lain atau diciptakan kembali. (Seandainya saya bisa menambahkan upvote lain.)
whuber
4

Jika Anda benar-benar ingin mendapatkan tertinggi, Anda harus melihat (seperti kata @Michael) di semua himpunan bagian. Dengan banyak variabel, itu kadang-kadang tidak layak, dan ada metode untuk mendekati tanpa menguji setiap subset. Salah satu metode disebut (IIRC) "lompatan dan batas" dan ada dalam paket R lompatan.R2

Namun, ini akan menghasilkan hasil yang sangat bias. nilai-p akan terlalu rendah, koefisien bias dari 0, kesalahan standar terlalu kecil; dan semua dengan jumlah yang tidak mungkin untuk diperkirakan dengan benar.

Seleksi bertahap juga memiliki masalah ini.

Saya sangat merekomendasikan terhadap metode pemilihan variabel otomatis, karena hal terburuk tentang mereka adalah mereka menghentikan Anda dari berpikir; atau, dengan kata lain, seorang analis data yang menggunakan metode otomatis mengatakan kepada bosnya untuk membayarnya lebih sedikit.

Jika Anda harus menggunakan metode otomatis, maka Anda harus memisahkan data Anda ke dalam set pelatihan dan tes, atau mungkin pelatihan, validasi, dan set akhir.

Peter Flom
sumber
1
pemilihan bertahap tidak seburuk yang Anda lakukan jika tujuannya adalah untuk prediksi, atau untuk menggunakan urutan model yang dihasilkan. pada kenyataannya banyak algoritma rj mcmc untuk pemilihan model pada dasarnya adalah "stepwise acak" karena proposal biasanya terdiri dari menambah atau menghapus satu variabel.
probabilityislogic
1
Stepwise telah terbukti mengerikan. Untuk detailnya, lihat buku Frank Harrell's Regression Modeling Strategies. Apa itu RJ? Memang benar bahwa urutan model dapat mengatakan sesuatu yang bermanfaat, tetapi lalu apa? Saya juga punya banyak masalah dengan nilai-p, tapi itu masalah lain (atau lihat The Cult of Significance Testing)
Peter Flom
1
@PeterFlom - RJ adalah lompatan reversibel. stepwise hanyalah cara cepat untuk mencari ruang model, membuat masalah kurang rentan terhadap ledakan kombinatoris. Tetapi perlu "beberapa restart" untuk membantu menghindari macet dalam mode lokal. Namun saya harus mendapatkan buku ini.
probabilityislogic
2
@ Macro, Bahkan dalam kasus orthogonal, Anda melihat mengapa nilai- (naif) tidak aktif, benar? Anda juga tahu mengapadari model "terpilih" akan cenderung (yaitu, secara stokastik) lebih besar daripada dalam kasus yang tidak dipilih, benar? Katakanlah Anda hanya memiliki dua variabel ortogonal, keduanya , dan pilihan model Anda adalah memilih variabel dengan nilai lebih rendah untuk dipertahankan (sama seperti memilih variabel yang besarnya terbesar). p|β^|βi=0p
kardinal
1
@ kardinal, saya mengerti. Jadi ini pada dasarnya hanya akibat dari fakta bahwa ketika Anda memiliki sampel awal , lalu jika saya memahami kamu dengan benar. Itu masuk akal. X1,...,Xn
E(min{X1,...,Xn})<E(X1)
Makro