Ada beberapa posting tentang cara memilih fitur. Salah satu metode menggambarkan pentingnya fitur berdasarkan t-statistik. Dalam R varImp(model)
diterapkan pada model linier dengan fitur standar , nilai absolut t-statistik untuk setiap parameter model digunakan. Jadi, pada dasarnya kita memilih fitur berdasarkan t-statistiknya, artinya seberapa tepat koefisiennya. Tetapi apakah ketepatan koefisien saya memberi tahu saya sesuatu tentang kemampuan prediksi fitur?
Mungkinkah fitur saya memiliki statistik-t rendah tetapi akan tetap meningkatkan (katakanlah) akurasi model? Jika ya, kapan orang ingin mengecualikan variabel berdasarkan t-statistik? Atau apakah itu hanya memberikan titik awal untuk memeriksa kemampuan prediksi variabel yang tidak penting?
varImp()
dimaksudkan untuk fungsi informatif atau diagnostik dan tidak langsung digunakan untuk pemilihan atau penghapusan fitur.Jawaban:
Statistik-t hampir tidak memiliki apa-apa untuk dikatakan tentang kemampuan prediksi fitur, dan mereka tidak boleh digunakan untuk menyaring prediktor keluar, atau memungkinkan prediktor ke dalam model prediksi.
Nilai-P mengatakan fitur palsu itu penting
Pertimbangkan pengaturan skenario berikut dalam R. Mari kita membuat dua vektor, yang pertama adalah hanya koin membalik secara acak:5000
Vektor kedua adalah pengamatan, masing-masing secara acak ditugaskan ke salah satu dari kelas acak berukuran sama:5005000 500
Sekarang kita cocok dengan model linier untuk memprediksi yang
y
diberikanrand.classes
.The benar nilai untuk semua koefisien adalah nol, tidak satupun dari mereka memiliki setiap daya prediksi. Tidak ada yang kurang, banyak dari mereka yang signifikan pada level 5%
Bahkan, kita harus mengharapkan sekitar 5% dari mereka menjadi signifikan, meskipun mereka tidak memiliki kekuatan prediksi!
Nilai-P gagal mendeteksi fitur-fitur penting
Berikut ini contoh ke arah lain.
Saya telah membuat dua prediksi berkorelasi , masing-masing dengan kekuatan prediksi.
Nilai-p gagal mendeteksi kekuatan prediksi kedua variabel karena korelasi mempengaruhi seberapa tepatnya model dapat memperkirakan dua koefisien individu dari data.
Statistik inferensial tidak ada untuk memberi tahu tentang kekuatan prediksi atau pentingnya suatu variabel. Ini merupakan penyalahgunaan pengukuran ini untuk menggunakannya dengan cara itu. Ada banyak pilihan yang lebih baik tersedia untuk pemilihan variabel dalam model linier prediktif, pertimbangkan untuk menggunakannya
glmnet
.(*) Perhatikan bahwa saya akan menghentikan intersep di sini, jadi semua perbandingannya adalah baseline dari nol, bukan ke rata-rata grup dari kelas pertama. Ini adalah saran @ whuber.
Karena itu mengarah pada diskusi yang sangat menarik di komentar, kode aslinya
dan
yang mengarah ke histogram berikut
sumber
lm(y ~ rand.class - 1)
. Ini tidak mengubah validitas semua komentar Anda (+1). Agar lebih meyakinkan, seimbangkan ukuran kelompok:rand.class <- cut(1:N, N.classes)
Statistik t dipengaruhi oleh ukuran efek dan ukuran sampel. Mungkin saja masalahnya ukuran efeknya bukan nol tetapi ukuran sampelnya tidak cukup besar untuk membuatnya signifikan.
Dalam uji-T sederhana untuk mean nol (yang analog dengan pengujian jika pengaruh fitur adalah nol) statistik T adalaht=(x¯¯¯s)n−−√
√x¯¯¯s adalah taksiran sampel dari ukuran efek, jika kecil maka nilai-p tidak akan menunjukkan signifikannya hingga istilah menjadi besar.n−−√
Dalam kasus Anda, fitur apa pun dengan efek non-nol akan meningkatkan kinerja tetapi Anda mungkin tidak memiliki cukup data untuk menjadikan nilai-p fitur itu signifikan.
sumber