Saya memiliki dataset dengan 9 variabel independen kontinu. Saya mencoba untuk memilih antara variabel-variabel ini sesuai model untuk persentase tunggal (tergantung) variabel, Score
. Sayangnya, saya tahu akan ada kolinearitas yang serius antara beberapa variabel.
Saya sudah mencoba menggunakan stepAIC()
fungsi dalam R untuk pemilihan variabel, tetapi metode itu, anehnya, tampaknya sensitif terhadap urutan variabel yang tercantum dalam persamaan ...
Ini kode R saya (karena ini adalah data persentase, saya menggunakan transformasi logit untuk Skor):
library(MASS)
library(car)
data.tst = read.table("data.txt",header=T)
data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 +
Var8 + Var9, data = data.tst)
step = stepAIC(data.lm, direction="both")
summary(step)
Untuk beberapa alasan, saya menemukan bahwa variabel-variabel yang terdaftar di awal persamaan akhirnya dipilih oleh stepAIC()
fungsi, dan hasilnya dapat dimanipulasi dengan mendaftar, misalnya,Var9
pertama (mengikuti tilde).
Apa cara yang lebih efektif (dan kurang kontroversial) dalam pemasangan model di sini? Saya sebenarnya tidak mati-matian dalam menggunakan regresi linier: satu-satunya hal yang saya inginkan adalah dapat memahami mana dari 9 variabel yang benar-benar mendorong variasi dalam Score
variabel. Lebih disukai, ini akan menjadi beberapa metode yang memperhitungkan potensi kuat untuk kolinearitas dalam 9 variabel ini.
Score
variabel", yang merupakan kalimat yang mungkin terlalu saya fokuskan. Di hadapan kolinearitas yang kuat, laso tidak akan membantu dengan itu, setidaknya dalam interpretasi yang lebih ketat dari komentar OP.Jawaban:
Pertama, sumber yang sangat bagus untuk masalah ini adalah T. Keith, Regresi Berganda dan Beyond. Ada banyak bahan dalam buku ini tentang pemodelan jalur dan pemilihan variabel dan saya pikir Anda akan menemukan jawaban lengkap untuk pertanyaan Anda di sana.
Salah satu cara untuk mengatasi multikolinearitas adalah dengan memusatkan prediktor, yaitu mengurangi rata-rata satu seri dari setiap nilai. Regresi Ridge juga dapat digunakan ketika data sangat kolinear. Akhirnya, regresi sekuensial dapat membantu dalam memahami hubungan sebab-akibat antara para prediktor, bersama dengan menganalisis urutan waktu dari peristiwa-peristiwa prediktor.
Apakah semua 9 variabel menunjukkan kolinearitas? Untuk diagnosis Anda dapat menggunakan faktor inflasi varians Cohen 2003. Nilai VIF> = 10 menunjukkan collinearity tinggi dan kesalahan standar meningkat. Saya mengerti Anda lebih tertarik pada hubungan sebab akibat antara prediktor dan hasil. Jika tidak, multikolinieritas tidak dianggap sebagai masalah serius untuk prediksi, karena Anda dapat mengonfirmasi dengan memeriksa MAE dari data sampel terhadap model yang dibuat dengan menambahkan prediktor Anda satu per satu. Jika prediktor Anda memiliki kekuatan prediksi marjinal, Anda akan menemukan bahwa MAE menurun bahkan di hadapan model multikolinieritas.
sumber
Karena sangat sulit untuk menentukan variabel mana yang akan dijatuhkan, seringkali lebih baik untuk tidak menjatuhkan variabel. Dua cara untuk melanjutkan sepanjang garis ini adalah (1) menggunakan metode reduksi data (misalnya, pengelompokan variabel atau komponen utama) dan memasukkan skor ringkasan ke dalam model, bukan variabel individu dan (2) menempatkan semua variabel dalam model tetapi tidak menguji untuk efek dari satu variabel yang disesuaikan dengan efek dari variabel yang bersaing. Untuk (2), tes chunk dari variabel yang bersaing kuat karena variabel collinear bergabung dalam keseluruhan tes multi-derajat kebebasan asosiasi, daripada bersaing satu sama lain seperti ketika Anda menguji variabel secara individual.
sumber
and put summary scores into the model
Jika Anda ingin melakukan pemilihan variabel dengan adanya collinearity tinggi, saya dapat merekomendasikan paket l0ara , yang cocok dengan L0 yang dikenakan sanksi GLM menggunakan prosedur punggungan adaptif berulang yang berulang-ulang. . Karena metode ini pada akhirnya didasarkan pada regresi teregulasi ridge, metode ini dapat menangani kolinearitas dengan sangat baik, dan dalam simulasi saya menghasilkan lebih sedikit false positive sementara masih memberikan kinerja prediksi yang bagus juga dibandingkan dengan misalnya LASSO, jaring elastis atau LASSO adaptif. Atau, Anda juga bisa mencoba paket L0Learndengan kombinasi penalti L0 dan L2. Hukuman L0 kemudian mendukung sparsity (yaitu model kecil) sementara hukuman L2 mengatur collinearity. Jaring elastis (yang menggunakan kombinasi penalti L1 dan L2) juga sering disarankan, tetapi dalam pengujian saya ini menghasilkan cara yang lebih positif palsu, ditambah koefisien akan sangat bias. Bias ini dapat Anda singkirkan jika Anda menggunakan metode hukuman L0 sebagai gantinya (alias subset terbaik) - ini disebut penaksir oracle, yang secara bersamaan mendapatkan koefisien parameter yang konsisten dan tidak bias. Parameter regularisasi dalam semua metode ini perlu dioptimalkan melalui validasi silang untuk memberikan kinerja prediksi sampel yang optimal. Jika Anda juga ingin mendapatkan tingkat signifikansi dan interval kepercayaan pada parameter Anda, maka Anda juga dapat melakukan ini melalui bootstrap nonparametrik.
Algoritma adaptif ridge iteratif
l0ara
(kadang-kadang disebut sebagai ridge adaptif rusak), seperti jaring elastis, memiliki efek pengelompokan, yang akan menyebabkannya untuk memilih variabel yang sangat berkorelasi dalam kelompok segera setelah mereka akan memasuki model Anda. Ini masuk akal - misalnya jika Anda memiliki dua variabel hampir collinear dalam model Anda, itu akan membagi efeknya secara merata pada keduanya.Jika Anda menganalisis data proporsi, Anda lebih baik menggunakan model regresi logistik btw -
l0ara
paket memungkinkan Anda melakukan itu dalam kombinasi dengan penalti L0; untukL0Learn
paket ini akan didukung segera.sumber