Model linier klasik - pemilihan model

16

Saya memiliki model linier klasik, dengan 5 kemungkinan regresi. Mereka tidak berkorelasi satu sama lain, dan memiliki korelasi yang cukup rendah dengan respons. Saya telah sampai pada model di mana 3 dari regressor memiliki koefisien signifikan untuk statistik t mereka (p <0,05). Menambahkan salah satu atau kedua dari 2 variabel yang tersisa menghasilkan nilai p> 0,05 untuk statistik t, untuk variabel yang ditambahkan. Ini membuat saya percaya bahwa model 3 variabel adalah "terbaik".

Namun, dengan menggunakan perintah anova (a, b) dalam R di mana a adalah model variabel 3 dan b adalah model penuh, nilai p untuk statistik F adalah <0,05, yang memberitahu saya untuk lebih memilih model penuh daripada 3 variabel model. Bagaimana saya bisa mendamaikan kontradiksi yang tampak ini?

Terima kasih PS Edit: Beberapa latar belakang lebih lanjut. Ini adalah pekerjaan rumah jadi saya tidak akan memposting detail, tetapi kami tidak diberi rincian tentang apa yang diwakili oleh para regressor - mereka hanya diberi nomor 1 hingga 5. Kami diminta untuk "mendapatkan model yang sesuai, memberikan justifikasi".

P Sellaz
sumber
6
Model yang tepat dapat dianggap sebagai model yang secara efektif menggunakan semua variabel yang ditentukan sebelumnya (akuntansi untuk nonlinier, dll.). Saya harap instruktur Anda memahami bahwa pemilihan variabel bertahap tidak valid. Sedikit yang bisa.
Frank Harrell
1
Hai lagi dan terima kasih. Maaf untuk semua bolak-balik. Instruksi juga mengatakan "Tidak harus ada satu model" terbaik ", dan Anda tidak harus memasukkan semua prediktor". Juga, tidak ada collinearity atau nonlinearlity. Sebenarnya, semua 5 prediktor dihasilkan oleh simulasi independen dari distribusi normal. Akibatnya, korelasi antara prediktor dan respons juga kecil (yang terbesar kurang dari 0,1). Sejujurnya, intuisi saya mengatakan bahwa model "terbaik" mungkin hanya rata-rata sampel (r yang disesuaikan kurang dari 0,03)
P Sellaz
@ P Sellaz: mengingat ini adalah pekerjaan rumah menggunakan data simulasi, intuisi Anda mungkin bisa membantu Anda di sini. Tuliskan penjelasan yang masuk akal untuk intuisi Anda.
Zach
1
Anda tidak dapat menggunakan secara umum karena seberapa besar besar tergantung pada konteks. Tetapi tergantung bagaimana simulasi seharusnya dijalankan, Anda benar bahwa rata-rata keseluruhan mungkin yang diperlukan. R2
Frank Harrell
1
Secara umum memang benar bahwa seseorang tidak harus menyertakan semua prediktor untuk melakukan pekerjaan dengan baik. Tetapi data tidak mampu memberi tahu Anda prediktor mana yang akan digunakan.
Frank Harrell

Jawaban:

18

Masalahnya dimulai ketika Anda mencari model yang dikurangi dan menggunakan data alih-alih pengetahuan subjek untuk memilih prediktor. Pemilihan variabel bertahap tanpa pengurangan secara simultan untuk menghukum seleksi variabel, meskipun sering digunakan, merupakan pendekatan yang tidak valid. Banyak yang telah ditulis tentang ini. Tidak ada alasan untuk percaya bahwa model 3-variabel adalah "terbaik" dan tidak ada alasan untuk tidak menggunakan daftar asli dari prediktor yang ditentukan sebelumnya. Nilai-P yang dihitung setelah menggunakan nilai-P untuk memilih variabel tidak valid. Ini telah disebut "pencelupan ganda" dalam literatur pencitraan fungsional.

Berikut ini analoginya. Misalkan seseorang tertarik untuk membandingkan 6 perawatan, tetapi menggunakan uji-t berpasangan untuk memilih perawatan mana yang "berbeda", yang mengakibatkan berkurangnya 4 perawatan. Analis kemudian menguji perbedaan keseluruhan dengan 3 derajat kebebasan. Tes F ini akan memiliki kesalahan tipe I yang meningkat. Uji F asli dengan 5 df cukup valid.

Lihat http://www.stata.com/support/faqs/stat/stepwise.html dan untuk informasi lebih lanjut.

Frank Harrell
sumber
1
Terima kasih untuk balasan Anda. Saya telah menambahkan sunting pertanyaan awal. Saya harap tidak apa-apa. Saran lebih lanjut akan sangat disambut.
P Sellaz
6

Salah satu jawabannya adalah "ini tidak dapat dilakukan tanpa pengetahuan subjek". Sayangnya, itu mungkin akan membuat Anda mendapat nilai F pada tugas Anda. Kecuali saya adalah profesor Anda. Maka akan mendapat nilai A.

Tapi, berikan pernyataan Anda itu R2adalah 0,03 dan ada korelasi rendah di antara semua variabel, saya bingung bahwa model apa pun signifikan sama sekali. Apa itu N? Saya kira itu sangat besar.

Lalu ada

semua 5 prediktor dihasilkan oleh simulasi independen dari distribusi normal.

Nah, jika Anda TAHU ini (yaitu, instruktur Anda memberi tahu Anda) dan jika dengan "independen" maksud Anda "tidak terkait dengan DV" maka Anda tahu bahwa model terbaik adalah yang tanpa prediktor, dan intuisi Anda benar.

Peter Flom - Pasang kembali Monica
sumber
Hai Peter, dan terima kasih. N adalah 900. Data semuanya dihasilkan oleh simulasi. AKU TAHU ini karena kita harus melakukan sendiri simulasi. Mereka seharusnya mewakili data nyata, sejauh pekerjaan rumah ini diperhatikan. 100 simulasi dilakukan, dan 5 dengan korelasi terbesar terhadap respons (juga disimulasikan tetapi hanya sekali) dipilih sebagai kandidat regressor.
P Sellaz
1
Pastikan Anda mensimulasikan tidak ada hubungan antara X dan Y apa pun. Kemudian seperti yang orang lain katakan model regresi tidak relevan dan rata-rata keseluruhan sudah cukup.
Frank Harrell
1
Ya, mereka sepenuhnya independen. Kami memilih data dengan 5 korelasi terbesar sebagai kandidat regressor, dari mana kami harus "mendapatkan model yang sesuai, memberikan justifikasi" tetapi kami "tidak harus memasukkan semua 5 prediktor".
P Sellaz
Sepertinya profesor Anda adalah a) Benar-benar bingung atau b) melakukan sesuatu yang cukup menarik. Sulit untuk mengatakan yang mana. Jika dia bermaksud ini untuk menunjukkan hal-hal yang @FrankHarrell dan saya dan orang lain telah tunjukkan, maka bagus! (itu akan menjadi b). OTOH, jika dia bermaksud ini menjadi regresi "nyata", maka uh-oh itu a).
Peter Flom - Reinstate Monica
1
Saya akan memberi tahu Anda kapan surat-surat itu ditandai :)
P Sellaz
4

Anda dapat mencoba melakukan validasi silang. Pilih subset sampel Anda, temukan model "terbaik" untuk subset tersebut menggunakan uji F atau t, kemudian terapkan ke set data lengkap (validasi silang penuh bisa menjadi lebih rumit dari ini, tetapi ini akan menjadi awal yang baik). Ini membantu meringankan beberapa masalah pengujian bertahap.

Lihat Catatan tentang Persamaan Regresi Skrining oleh David Freedman untuk simulasi kecil yang lucu dari ide ini.

Charlie
sumber
2

Saya sangat suka metode yang digunakan dalam caretpaket: penghapusan fitur rekursif. Anda dapat membaca lebih lanjut tentang hal itu di sketsa , tetapi inilah proses dasarnya: Seleksi Variabel

Ide dasarnya adalah menggunakan kriteria (seperti statistik t) untuk menghilangkan variabel yang tidak penting dan melihat bagaimana hal itu meningkatkan akurasi prediksi model. Anda membungkus semuanya dalam loop resampling, seperti cross-validation. Berikut ini sebuah contoh, menggunakan model linear untuk memberi peringkat variabel dengan cara yang mirip dengan apa yang telah Anda jelaskan:

#Setup
set.seed(1)
p1 <- rnorm(50)
p2 <- rnorm(50)
p3 <- rnorm(50)
p4 <- rnorm(50)
p5 <- rnorm(50)
y <- 4*rnorm(50)+p1+p2-p5

#Select Variables
require(caret)
X <- data.frame(p1,p2,p3,p4,p5)
RFE <- rfe(X,y, sizes = seq(1,5), rfeControl = rfeControl(
                    functions = lmFuncs,
                    method = "repeatedcv")
                )
RFE
plot(RFE)

#Fit linear model and compare
fmla <- as.formula(paste("y ~ ", paste(RFE$optVariables, collapse= "+")))
fullmodel <- lm(y~p1+p2+p3+p4+p5,data.frame(y,p1,p2,p3,p4,p5))
reducedmodel <- lm(fmla,data.frame(y,p1,p2,p3,p4,p5))
summary(fullmodel)
summary(reducedmodel)

Dalam contoh ini, algorythm mendeteksi bahwa ada 3 variabel "penting", tetapi hanya mendapat 2 variabel.

Zach
sumber