Saya memiliki vektor dan ingin mendeteksi outlier di dalamnya.
Gambar berikut menunjukkan distribusi vektor. Poin merah adalah outlier. Poin biru adalah poin normal. Titik kuning juga normal.
Saya memerlukan metode deteksi outlier (metode non-parametrik) yang hanya dapat mendeteksi titik merah sebagai outlier. Saya menguji beberapa metode seperti IQR, standar deviasi tetapi mereka mendeteksi titik kuning sebagai outlier juga.
Saya tahu sulit mendeteksi hanya titik merah tapi saya pikir harus ada cara (bahkan kombinasi metode) untuk menyelesaikan masalah ini.
Poin adalah pembacaan sensor selama sehari. Tetapi nilai-nilai sensor berubah karena konfigurasi ulang sistem (lingkungan tidak statis). Waktu konfigurasi ulang tidak diketahui. Poin biru adalah untuk periode sebelum konfigurasi ulang. Poin kuning adalah untuk setelah konfigurasi ulang yang menyebabkan penyimpangan dalam distribusi bacaan (tetapi normal). Poin merah adalah hasil modifikasi ilegal dari poin kuning. Dengan kata lain, mereka adalah anomali yang harus dideteksi.
Saya ingin tahu apakah estimasi fungsi pemulusan Kernel ('pdf', 'survivor', 'cdf', dll.) Dapat membantu atau tidak. Adakah yang bisa membantu tentang fungsi utama mereka (atau metode perataan lainnya) dan pembenaran untuk digunakan dalam konteks untuk menyelesaikan masalah?
Jawaban:
Anda dapat melihat data sebagai deret waktu di mana pengukuran biasa menghasilkan nilai yang sangat dekat dengan nilai sebelumnya dan kalibrasi ulang menghasilkan nilai dengan perbedaan besar dengan pendahulunya.
Berikut adalah contoh data yang disimulasikan berdasarkan distribusi normal dengan tiga cara berbeda yang serupa dengan contoh Anda.
Dengan menghitung selisih dengan nilai sebelumnya (semacam derivasi) Anda mendapatkan data berikut:
Interpretasi saya dari deskripsi Anda adalah, bahwa Anda mentolerir kalibrasi ulang (yaitu menunjuk pada jarak yang lebih besar dari nol, merah dalam diagram), tetapi mereka harus bertukar antara nilai positif dan negatif (yaitu sesuai dengan pergeseran dari kondisi biru ke warna kuning dan kembali).
Ini berarti Anda dapat mengatur alarm melihat titik merah kedua di sisi negatif atau positif .
sumber
Jika Anda menggunakan pencatatan Anda dapat menggunakan rata-rata berjalan yang me-reset jika konfigurasi berubah. Namun, ini akan memiliki kelemahan yang Anda butuhkan setidaknya beberapa data sebelum Anda dapat mendeteksi pencilan seperti itu.
Data Anda terlihat agak "bagus" (tidak terlalu berisik). Saya akan merekomendasikan mengambil rata-rata selama 10-20 poin terakhir dalam konfigurasi yang sama. Jika nilai-nilai ini adalah semacam jumlah yang dihitung, Anda dapat mengambil kesalahan poisson untuk masing-masing poin data dan menghitung rata-rata kesalahan.
Berapa banyak data historis yang Anda miliki? Jika Anda memiliki banyak, Anda dapat menggunakannya untuk menyempurnakan tingkat alarm Anda sedemikian rupa sehingga Anda mendapatkan rasio yang dapat diterima dari semua pencilan nyata saat mendapatkan sedikit peringatan palsu. Apa yang dapat diterima tergantung pada masalah spesifik. (Biaya Positif Palsu atau tidak terdeteksi outlier dan kelimpahannya).
sumber
Mari kita ilustrasikan pendekatan yang diusulkan dalam jawaban lain dengan contoh sederhana
Dapatkan Data
Kami akan mensimulasikan data dengan tujuh potongan yang diproduksi dengan distribusi normal dengan cara yang berbeda.
Ini penting karena memungkinkan kita untuk secara jelas membedakan antara kelompok dan untuk mendeteksi titik-titik pemecahan. Jawaban ini menggunakan pendekatan ambang batas dasar, beberapa cara yang lebih maju mungkin diperlukan untuk data Anda yang sebenarnya.
Turunkan Breaking Points
Dengan perbedaan sederhana ke titik sebelumnya
lag(y)
kita mendapatkan outlier. Mereka diklasifikasi menggunakan ambang.Perubahan Klasifikasi Perilaku
Berdasarkan aturan yang Anda jelaskan, titik puncaknya diklasifikasikan sebagai
OK
danproblem
.Aturan menyatakan bahwa tidak ada dua perubahan dalam arah yang sama diizinkan. Langkah kedua dalam arah previos dianggap sebagai masalah.
Anda mungkin perlu menyesuaikan interpretasi sederhana ini jika logik Anda lebih maju.
Presentasi
Akhirnya Anda memproyeksikan outlier yang diakui ke data asli
sumber