Apakah salah memilih fitur berdasarkan nilai-p?


12

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?


3
Untuk uji satu sampel rata-rata, statistik t hanyalah rata-rata sampel dibagi dengan kesalahan standar yang diperkirakan (standar deviasi sampel dibagi dengan akar kuadrat dari ukuran sampel). Statistik itu sendiri tidak bergantung pada hipotesis tertentu. Memperoleh nilai p dari statistik itu memang tergantung pada hipotesis.
Dan Hicks

@DanHicks saya mengedit pertanyaan saya.
Alina

Saya tidak terlalu mengenal caret, tetapi tampaknya varImp()dimaksudkan untuk fungsi informatif atau diagnostik dan tidak langsung digunakan untuk pemilihan atau penghapusan fitur.
david25272

Jawaban:


11

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

set.seed(154)
N <- 5000
y <- rnorm(N)

Vektor kedua adalah pengamatan, masing-masing secara acak ditugaskan ke salah satu dari kelas acak berukuran sama:5005000500

N.classes <- 500
rand.class <- factor(cut(1:N, N.classes))

Sekarang kita cocok dengan model linier untuk memprediksi yang ydiberikan rand.classes.

M <- lm(y ~ rand.class - 1) #(*)

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%

ps <- coef(summary(M))[, "Pr(>|t|)"]
hist(ps, breaks=30)

Histogram nilai-p

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.

set.seed(154)
N <- 100
x1 <- runif(N)
x2 <- x1 + rnorm(N, sd = 0.05)
y <- x1 + x2 + rnorm(N)

M <- lm(y ~ x1 + x2)
summary(M)

Saya telah membuat dua prediksi berkorelasi , masing-masing dengan kekuatan prediksi.

M <- lm(y ~ x1 + x2)
summary(M)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1271     0.2092   0.608    0.545
x1            0.8369     2.0954   0.399    0.690
x2            0.9216     2.0097   0.459    0.648

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

rand.class <- factor(sample(1:N.classes, N, replace=TRUE))

dan

M <- lm(y ~ rand.class)

yang mengarah ke histogram berikut

Histogram miring nilai p


2
Hmm, mengapa distribusi nilai p ini tidak seragam?
Amuba kata Reinstate Monica

4
Wow, bagaimana Anda memilih nomor benih? Hasil lain dalam PS hampir seragam ...
psychOle

3
Saya mencoba untuk selalu menggunakan seed yang sama untuk hal semacam ini: en.wikipedia.org/wiki/154_(album)
Matthew Drury

9
Anda melakukan tes yang salah: Anda membandingkan 499 rata-rata grup dengan rata-rata grup pertama. Dengan benih 154, rata-rata kelompok pertama 1,18 ... sangat tinggi (yang dapat terjadi karena ukuran kelompok 5 sangat kecil), sehingga sebagian besar lainnya memiliki efek negatif yang signifikan. Perbaiki dengan menjalankan model 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)
whuber

1
Tentu saja: / Saya 100% berharap @whuber mampir, dan mengatakan sesuatu yang sangat jelas dan jelas yang saya lewatkan. Saya akan memperbaikinya sekarang.
Matthew Drury

2

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.


4
Saya tidak berpikir benar bahwa fitur apa pun dengan efek tidak nol akan meningkatkan kinerja. Mungkin ini benar pada data pelatihan, tetapi tentu saja tidak pada data uji .
Matthew Drury

@MatthewDrury Apakah Anda mengatakan kami tidak memiliki metode untuk menyimpulkan pengukuran populasi dari sampel?
Todd D

Tidak, tetapi memang benar bahwa fitur palsu dapat mengganggu kemampuan Anda untuk melakukannya dengan baik.
Matthew Drury
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.