Saya bekerja dengan serangkaian waktu skor anomali (latar belakang adalah deteksi anomali di jaringan komputer). Setiap menit, saya mendapatkan sebuah anomali mencetak yang memberitahu saya bagaimana "tak terduga" atau abnormal keadaan saat ini jaringan. Semakin tinggi skor, semakin abnormal kondisi saat ini. Skor mendekati 5 secara teori dimungkinkan tetapi terjadi hampir tidak pernah.
Sekarang saya ingin membuat algoritma atau formula yang secara otomatis menentukan ambang batas untuk rangkaian waktu anomali ini. Segera setelah skor anomali melebihi ambang ini, alarm dipicu.
Distribusi frekuensi di bawah ini adalah contoh untuk rangkaian waktu anomali lebih dari 1 hari. Namun, tidak aman untuk menganggap bahwa setiap rangkaian waktu anomali akan terlihat seperti itu. Dalam contoh khusus ini, ambang anomali seperti .99-quantile akan masuk akal karena beberapa skor pada bagian paling kanan dapat dianggap sebagai anomali.
Dan distribusi frekuensi yang sama dengan deret waktu (hanya berkisar dari 0 hingga 1 karena tidak ada skor anomali yang lebih tinggi dalam deret waktu):
Sayangnya, distribusi frekuensi mungkin memiliki bentuk, di mana .99-quantile tidak berguna . Contohnya di bawah ini. Ekor kanan sangat rendah, jadi jika .99-quantile digunakan sebagai ambang, ini mungkin menghasilkan banyak positif palsu. Distribusi frekuensi ini tampaknya tidak mengandung anomali sehingga ambang harus berada di luar distribusi di sekitar 0,25.
Kesimpulannya, perbedaan antara dua contoh ini adalah bahwa yang pertama tampaknya menunjukkan anomali sedangkan yang kedua tidak.
Dari sudut pandang naif saya, algoritma harus mempertimbangkan dua kasus ini:
- Jika distribusi frekuensi memiliki ekor kanan yang besar (yaitu beberapa skor abnormal), maka .99-quantile dapat menjadi ambang batas yang baik.
- Jika distribusi frekuensi memiliki ekor kanan yang sangat pendek (yaitu tidak ada skor abnormal), maka ambang batas harus berada di luar distribusi.
/ edit: Ada juga tidak ada kebenaran dasar, yaitu set data berlabel tersedia. Jadi algoritma ini "buta" terhadap sifat skor anomali.
Sekarang saya tidak yakin bagaimana pengamatan ini dapat diungkapkan dalam hal algoritma atau formula. Adakah yang punya saran bagaimana masalah ini bisa diselesaikan? Saya harap penjelasan saya cukup karena latar belakang statistik saya sangat terbatas.
Terima kasih atas bantuan Anda!
sumber
Jawaban:
Anda mungkin menemukan makalah yang menarik ini. Lihat juga presentasi yang lebih rinci dari model serupa di West & Harrison . Ada contoh lain dari jenis pemantauan ini, banyak yang lebih baru, tetapi ini bukan ruang kemudi saya :). Tidak diragukan lagi ada implementasi yang sesuai dari model-model ini, tapi saya tidak tahu apa yang mereka lakukan begitu saja ...
Ide dasarnya adalah bahwa Anda memiliki model switching di mana beberapa pengamatan / urutan pengamatan dikaitkan dengan keadaan jaringan yang tidak normal sementara sisanya dianggap normal. Campuran seperti ini dapat menjelaskan ekor kanan panjang di plot pertama Anda. Model dinamis juga bisa memperingatkan Anda untuk lompatan abnormal seperti pukul 8:00 dan 4:00 secara real-time dengan menetapkan probabilitas tinggi untuk pengamatan baru yang termasuk dalam status masalah. Bisa juga dengan mudah diperluas untuk memasukkan hal-hal seperti prediktor, komponen periodik (mungkin skor Anda naik / turun sedikit dengan aktivitas) dan hal-hal semacam itu.
Sunting: Saya juga harus menambahkan, model semacam ini "tidak diawasi" dalam arti bahwa anomali ditangkap baik dengan menunjukkan pergeseran rata-rata yang besar atau peningkatan varian. Saat Anda mengumpulkan data, Anda dapat meningkatkan model dengan distribusi sebelumnya yang lebih informatif. Tetapi mungkin begitu Anda memiliki cukup data (dan contoh pelatihan yang sulit diperoleh dengan menangani masalah jaringan!), Anda dapat menyusun beberapa aturan pemantauan sederhana (ambang batas, dll.)
sumber
Apakah Anda memiliki contoh 'berlabel' tentang apa yang merupakan anomali? yaitu nilai-nilai yang terkait dengan kegagalan jaringan, atau sesuatu seperti itu?
Satu ide yang mungkin Anda pertimbangkan untuk diterapkan adalah kurva ROC, yang berguna untuk memilih ambang batas yang memenuhi kriteria tertentu, seperti memaksimalkan positif sejati atau meminimalkan negatif palsu.
Tentu saja, untuk menggunakan kurva ROC, Anda perlu memberi label data Anda dengan beberapa cara.
sumber
Grafik "seri asli" tidak harus memperlihatkan struktur yang telah ditentukan sebelumnya. Yang penting adalah bahwa grafik "residu dari seri model yang sesuai" perlu menunjukkan struktur gaussian. "Struktur gaussian" ini biasanya dapat diperoleh dengan memasukkan satu atau lebih dari "transformasi" berikut: 1. MODEL arima 2. Penyesuaian untuk Pergeseran Tingkat Lokal atau Tren Waktu Lokal atau Pulsa Musiman atau Pulsa Biasa 3. analisis berbobot yang mengeksploitasi heterogenitas varians yang terbukti. 4. transformasi kekuatan yang mungkin (log dll) untuk menangani heterogenitas varians tertentu 5. deteksi titik waktu di mana model / parameter mungkin telah berubah.
Deteksi Intervensi akan menghasilkan pernyataan tentang signifikansi statistik dari peristiwa terbaru yang menunjukkan normalitas atau anomali
sumber
Sebagai tanggapan OP atas jawaban saya sebelumnya, dia telah memposting datanya ke web. 60 pembacaan per jam selama 24 jam selama 6 hari . Karena ini adalah alat cross-sectional seri waktu seperti DBSCAN memiliki relevansi terbatas karena data memiliki ketergantungan temporal. Dengan data seperti ini biasanya mencari struktur intra-jam dan intra-hari. Selain jenis struktur ini seseorang dapat mengejar deteksi anomali yang dapat berupa satu kali saja (denyut nadi) atau bersifat sistematis (pergeseran level) menggunakan metode yang didokumentasikan dengan baik (lihat literatur Tsay, Tiao, Chen et. al.) Prosedur-prosedur ini menghasilkan "anomali-anomali" berikut. Perhatikan bahwa perubahan level pada dasarnya menunjukkan "kelompok" yang terpisah.
sumber
Setelah seorang teman saya mengarahkan saya ke arah algoritma clustering , saya menemukan DBSCAN yang membangun cluster dalam ruang n-dimensi berdasarkan dua parameter yang telah ditentukan. Ide dasarnya adalah pengelompokan berbasis kepadatan, yaitu daerah padat membentuk kelompok. Pencilan dikembalikan secara terpisah oleh algoritma. Jadi, ketika diterapkan pada histogram 1 dimensi saya, DBSCAN dapat memberi tahu saya, apakah skor anomali saya menampilkan outlier. Catatan: Di DBSCAN, pencilan hanyalah titik yang bukan milik kelompok mana pun. Selama operasi normal, saya berharap algoritma hanya menghasilkan satu cluster (dan tidak ada outlier).
Setelah dapat mengidentifikasi pencilan, menemukan ambang batas bermuara pada aturan sederhana seperti:
Bagaimanapun, terima kasih atas semua balasan yang bermanfaat!
sumber