Bagaimana seharusnya outlier ditangani dalam analisis regresi linier?

73

Sering kali seorang analis statistik menyerahkan set dataset dan diminta untuk mencocokkan suatu model menggunakan teknik seperti regresi linier. Seringkali dataset disertai dengan penafian yang mirip dengan "Oh yeah, kami mengacaukan mengumpulkan beberapa poin data ini - lakukan apa yang Anda bisa".

Situasi ini mengarah pada kecocokan regresi yang sangat dipengaruhi oleh keberadaan pencilan yang mungkin merupakan data yang salah. Diberikan sebagai berikut:

  • Berbahaya dari sudut pandang ilmiah dan moral untuk membuang data tanpa alasan selain itu "membuat fit tampak buruk".

  • Dalam kehidupan nyata, orang-orang yang mengumpulkan data sering kali tidak tersedia untuk menjawab pertanyaan seperti "kapan menghasilkan kumpulan data ini, poin mana yang Anda salahkan, tepatnya?"

Tes statistik atau aturan praktis apa yang dapat digunakan sebagai dasar untuk mengecualikan pencilan dalam analisis regresi linier?

Apakah ada pertimbangan khusus untuk regresi multilinear?

Sharpie
sumber
Terkait: kemungkinan penipuan ini: stats.stackexchange.com/questions/37865/… | R howto: stats.stackexchange.com/questions/53227/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

33

Daripada mengecualikan outlier, Anda dapat menggunakan metode regresi yang kuat. Dalam R, misalnya, rlm()fungsi dari paket MASS dapat digunakan sebagai ganti lm()fungsi. Metode estimasi bisa disetel agar lebih atau kurang kuat untuk outlier.

Rob Hyndman
sumber
Jika menggunakan fungsi rlm (), saya melihat koefisien dan uji-t mereka diproduksi. Tapi bagaimana saya bisa mendapatkan nilai f-test, R-square dari sini? Saya kira saya tidak bisa membawa nilai-nilai f-test dan R square ini dari hasil ringkasan 'lm' sederhana jika saya benar.
Eric
1
Untuk regresi yang kuat, asumsi di balik uji F tidak lagi puas, dan R ^ 2 dapat didefinisikan dalam beberapa cara yang tidak lagi setara. Lihat stats.idre.ucla.edu/stata/faq/… untuk beberapa diskusi tentang ini untuk Stata.
Rob Hyndman
Lihat juga stats.stackexchange.com/a/68367/159
Rob Hyndman
Tetapi saya menemukan perintah yang disebut f.robftest dari paket sfsmisc yang memberikan hasil uji-f. Bisakah saya menggunakan hasil ini untuk menentukan statistik uji-f untuk rlm? Juga, saya sepertinya mendapatkan R square dengan hanya memasukkan nilai ke dalam rumus matematika R square seperti 1 - sum (residual (rlm (y ~ x)) ^ 2) / sum ((y-mean (y)) ^ 2) . Untuk nilai uji-t untuk memeriksa signifikansi koefisien, saya mendapatkan nilai uji-t dari ringkasan (rlm (y ~ x)) yang saya bandingkan dengan nilai-t dari tingkat kepercayaan 95% atau lebih. Bisakah saya menggunakan metode ini?
Eric
22

Terkadang pencilan adalah data yang buruk, dan harus dikeluarkan, seperti salah ketik. Terkadang mereka adalah Wayne Gretzky atau Michael Jordan, dan harus dijaga.

Metode deteksi outlier meliputi:

Univariat -> kotak petak. di luar 1,5 kali kisaran antar-kuartil adalah outlier.

Bivariat -> sebar dengan elips kepercayaan diri. di luar, katakanlah, elips kepercayaan 95% adalah outlier.

Multivarian -> Mahalanobis D2 jarak

Tandai observasi tersebut sebagai outlier.

Jalankan regresi logistik (pada Y = IsOutlier) untuk melihat apakah ada pola sistematis.

Hapus yang Anda dapat menunjukkan bahwa mereka tidak mewakili sub-populasi.

Neil McGuigan
sumber
Dan jika Anda masih memiliki outlier, pertimbangkan untuk menggunakan model yang berbeda dari linear. Misalnya, jika Anda menggunakan model dengan perilaku seperti hukum kekuasaan, Michael Jordan tidak lagi menjadi pencilan (dalam hal kemampuan model untuk mengakomodasi dia).
drevicko
1
Setuju dengan sebagian besar dari apa yang dikatakan di sini, tetapi saya ingin menambahkan peringatan tambahan bahwa "di luar 1,5 kali kisaran antar-kuartil adalah sebuah outlier " adalah sebuah konvensi , bukan aturan dengan landasan teori apa pun. Seharusnya tidak digunakan sebagai pembenaran untuk mengecualikan poin data.
mkt - Pasang kembali Monica
20

Saya pikir ada sesuatu yang bisa dikatakan untuk hanya mengecualikan outlier. Garis regresi seharusnya meringkas data. Karena pengaruh Anda dapat memiliki situasi di mana 1% dari titik data Anda mempengaruhi kemiringan sebesar 50%.

Ini hanya berbahaya dari sudut pandang moral dan ilmiah jika Anda tidak memberi tahu siapa pun bahwa Anda mengecualikan outlier. Selama Anda menunjukkannya, Anda dapat mengatakan:

"Garis regresi ini sangat cocok untuk sebagian besar data. 1% dari waktu nilai akan datang yang tidak sesuai dengan tren ini, tapi hei, ini dunia yang gila, tidak ada sistem yang sempurna"

Chris Beeley
sumber
1
"Hei, ini dunia yang gila, tidak ada sistem yang sempurna" +1 untuk itu temanku! :)
bartektartanus
1
Pertimbangkan model lain. Dunia jika penuh dengan "outliers" yang dihapus yang merupakan data nyata, mengakibatkan gagal untuk memprediksi sesuatu yang sangat penting. Banyak proses alami memiliki perilaku seperti kekuatan-hukum dengan peristiwa ekstrim yang langka. Model linear mungkin tampak cocok dengan data tersebut (walaupun tidak terlalu baik), tetapi menggunakan satu dan menghapus "outlier" berarti melewatkan peristiwa-peristiwa ekstrem tersebut, yang biasanya penting untuk diketahui!
drevicko
10

Sharpie,

Mengambil pertanyaan Anda secara harfiah, saya berpendapat bahwa tidak ada tes statistik atau aturan praktis yang dapat digunakan sebagai dasar untuk mengecualikan pencilan dalam analisis regresi linier (sebagai lawan untuk menentukan apakah pengamatan yang diberikan adalah pencilan). Ini harus berasal dari pengetahuan bidang subjek.

Saya pikir cara terbaik untuk memulai adalah dengan bertanya apakah outlier bahkan masuk akal, terutama mengingat variabel lain yang telah Anda kumpulkan. Misalnya, apakah benar-benar masuk akal jika Anda memiliki seorang wanita yang beratnya 600 pound dalam studi Anda, yang direkrut dari berbagai klinik cedera olahraga? Atau, bukankah aneh jika seseorang mendaftar 55 tahun atau pengalaman profesional ketika mereka baru berusia 60 tahun? Dan seterusnya. Mudah-mudahan, Anda kemudian memiliki dasar yang masuk akal untuk membuangnya atau meminta penyusun data untuk memeriksa ulang catatan untuk Anda.

Saya juga akan menyarankan metode regresi yang kuat dan pelaporan transparan pengamatan yang dijatuhkan, seperti yang disarankan oleh Rob dan Chris masing-masing.

Semoga ini bisa membantu, Brenden

Brenden
sumber
5

Ada dua ukuran jarak statistik yang secara khusus diperuntukkan untuk mendeteksi outlier dan kemudian mempertimbangkan apakah outlier tersebut harus dihapus dari regresi linier Anda.

Yang pertama adalah jarak Cook. Anda dapat menemukan penjelasan yang cukup bagus di Wikipedia: http://en.wikipedia.org/wiki/Cook%27s_distance .

Semakin tinggi jarak Cook adalah semakin berpengaruh (dampak pada koefisien regresi) pengamatan. Titik potong khas untuk mempertimbangkan menghilangkan pengamatan adalah jarak Cook = 4 / n (n adalah ukuran sampel).

Yang kedua adalah DFFITS yang juga tercakup dengan baik oleh Wikipedia: http://en.wikipedia.org/wiki/DFFITS . Titik cut-off yang umum untuk mempertimbangkan menghapus pengamatan adalah nilai DFFITS 2 kali sqrt (k / n) di mana k adalah jumlah variabel dan n adalah ukuran sampel.

Kedua ukuran biasanya memberi Anda hasil yang sama mengarah ke pemilihan pengamatan yang serupa.

Sympa
sumber
3

Sampah masuk sampah keluar....

Tersirat dalam mendapatkan manfaat penuh dari regresi linier adalah bahwa kebisingan mengikuti distribusi normal. Idealnya Anda memiliki sebagian besar data dan sedikit noise .... tidak sebagian besar noise dan sedikit data. Anda dapat menguji normalitas residual setelah kecocokan linear dengan melihat residual. Anda juga dapat memfilter data input sebelum linear fit untuk kesalahan yang jelas dan mencolok.

Berikut adalah beberapa jenis kebisingan dalam data masukan sampah yang biasanya tidak sesuai dengan distribusi normal:

  • Digit hilang atau ditambahkan dengan data yang dimasukkan dengan tangan (dimatikan dengan faktor 10 atau lebih)
  • Unit yang salah atau dikonversi secara salah (gram vs kilo vs pon; meter, kaki, mil, km), mungkin dari penggabungan beberapa set data (Catatan: Orbiter Mars dianggap hilang dengan cara ini, sehingga bahkan para ilmuwan roket NASA dapat membuat ini kesalahan)
  • Penggunaan kode seperti 0, -1, -99999 atau 99999 berarti sesuatu yang non-numerik seperti "tidak berlaku" atau "kolom tidak tersedia" dan hanya membuangnya ke dalam model linier bersama dengan data yang valid

Menulis spec untuk apa yang "data valid" untuk setiap kolom dapat membantu Anda menandai data yang tidak valid. Misalnya, tinggi seseorang dalam cm harus dalam kisaran, katakanlah, 100-300 cm. Jika Anda menemukan 1,8 untuk tinggi, itu salah ketik, dan meskipun Anda bisa berasumsi itu 1,8 m dan mengubahnya menjadi 180 - saya akan mengatakan bahwa biasanya lebih aman untuk membuangnya dan sebaiknya mendokumentasikan sebanyak mungkin penyaringan.

Paul
sumber
1

Untuk regresi linier Anda bisa menggunakan median garis lurus yang berulang.

babelproofreader
sumber
0

Tes statistik yang akan digunakan sebagai dasar untuk pengecualian: - residu terstandarisasi - statistik leverage - Jarak Cook, yang merupakan kombinasi dari keduanya di atas.

Dari pengalaman, pengecualian harus dibatasi pada contoh entri data yang salah. Pencilan balasan dalam model regresi linier adalah metode kompromi yang sangat baik. Aplikasi ini dalam R ditawarkan oleh Rob. Contoh yang bagus ada di sini: http://www.ats.ucla.edu/stat/r/dae/rreg.htm

Jika pengecualian diperlukan, 'satu aturan praktis' berkaitan dengan statistik Dfbeta (langkah-langkah perubahan dalam perkiraan ketika outlier dihapus), sehingga jika nilai absolut statistik DfBeta melebihi 2 / sqrt (n) maka itu mendukung penghapusan pencilan.

mkrasmus
sumber