Being different from the other, is it okay? 🍏🍐🍏
Intro to time series anomaly detection
.
.
.
A thread
Coba kalian perhatikan gambar dibawah ini, coba simak baik baik ya
Ada yang bisa nebak ga apa yang aneh dari gambar itu?
Yep, kalau kalian jawab kurang infonya, selamat, kalian memilih jawaban yang tepat! Sebelum kita bisa milih apa sih yang aneh dari gambar itu, kita kan harus punya definisi dulu tentang apa yang kita anggap sebagai ‘normal’ dan apa yang ‘ga normal’.
Kalau kita mendefinisikan ‘normal’ sebagai buah warna hijau, yang jadi keanehan di gambar itu adalah si apel merah ini
Tapi, kalau kita mendefinisikan ‘normal’ sebagai buah apel, maka yang jadi keanehan di gambar itu yaa si buah pear ini
Oke, jadi sekarang kita udah tau yaa, kalau misalkan mau nyari apa sih keanehan dari suatu hal, kita harus tau dulu, apa patokan hal tersebut dianggap normal.
Nah, data tuh juga bisa punya keanehan guys, atau biasa kita sebut sebagai anomali. Singkatnya, anomali adalah outlier data point, yaitu data yang ga ga ngikutin common pattern dari mayoritas data yang kita miliki, makanya data tersebut akan terlihat berbeda dari yang lain.
Di thread kali ini, mimin bakal secara spesifik ngebahas tentang anomali pada data time series. Mari kita recall lagi, apa sih data time series itu?
Data time series adalah kumpulan data yang teratur oleh urutan waktu. Selama suatu data disimpan dalam urutan waktu, entah itu frekuensinya tahunan, bulanan, triwulanan, mingguan, harian, atau bahkan per detik, data tersebut disebut sebagai data time series.
Contohnya nihh, data PDB tahunan Indonesia dari tahun 2000 - 2020, atau misalkan curah hujan bulanan Bogor tahun 2011 - 2020. Nah kalau udah tau tentang data time series itu apa, terus gimana nih dengan anomali pada data time series?
Anomali pada data time series bisa diartikan sebagai data yang beda dari common pattern / seasonal pattern / cyclic pattern dari keseluruhan data. Data yang jadi anomali ini juga memiliki sifat statistik yang berbeda dari data lainnya.
Contohnya ini nih:
Kalau kalian perhatikan, lingkaran merah pada gambar di atas menunjukan anomali pada sebuah data. Lingkaran merah tadi tuh ada yang nunjukin revenue tiba tiba ningkat padahal patternnya lagi nurun. Ada juga yang kebalikannya, nurun di tengah pattern revenue yang meningkat.
Terus apa sih yang jadi masalah di anomali ini? Kenapa kita harus aware sama data yang menjadi anomali?
Biar lebih gampang memahaminya, kita pakai contoh tadi ya. Kalau dari data revenue tadi, anomali ini bisa ngasih clue ke kita tentang apa strategi marketing yang bisa naikin sales ketika sales lagi nurun, dan gitu juga sebaliknya.
Jadi anomali ini bakal berarti banget buat bisnis, baik dari sales, marketing, supply chain, manufacturing, dll. Adanya anomali ini bisa membuat bisnis memaksimalkan produktivitas dan juga outcomenya.
Maka dari itu, udah jadi tugas Business Intelligence dan Data Scientist untuk menganalisa anomali pada time series data. Umumnya, ada 3 cara yang dapat kita lakukan.
Pertama, menggunakan pendekatan predictive confidence level.
Dengan pendekatan ini, kita akan ngebuat model yang digunakan untuk memprediksi future value dan memprediksi ‘common trend’ data. Kalau dalam kasus ini, kita ngebuat model untuk memprediksi sales revenue selama beberapa waktu ke depan.
Nah, misalkan hasil prediksi kita ditandai dengan area warna oranye di gambar di bawah ini.
Dengan memprediksi future value dan didasarkan pada error rates, kita jadi bisa dapetin confidence interval data kita. Kalau nanti actual datanya di bawah si confidence interval ini, maka data tersebut dianggap sebagai anomali.
Pendekatan menggunakan predictive confidence level ini memang memudahkan kita untuk nyari local outlier, namun sayangnya, pendekatan ini bergantung banget sama efektivitas predictive model yang digunakan.
Kesalahan pada predictive model bisa berujung ke kesalahan deteksi anomali padahal sebetulnya data tersebut bukan sebuah anomali.
Kedua, menggunakan statistical profiling approach
Pendekatan kedua ini menekankan ke perhitungan mean / median dari moving average dan menggunakan standar deviasi untuk menentukan ‘batas atas’ dan ‘batas bawah’ dari data kita. Data yang melewati batas atas dan batas bawah ini dianggap sebagai anomali
Kalau dalam kasus ini, batas data yang dianggap normal itu berada di area kuning, dengan batas atas 1 dan batas bawah -1. Data yang melewati area kuning dianggap sebagai anomali, contohnya yang dibintangi merah itu guys
Pendekatan ini memang mudah dan cocok buat data yang memiliki volatilitas tinggi namun kurang efektif dalam mengidentifikasi local outlier. Kalau di pendekatan predictive confidence level, ada 5 anomali yang terdeteksi, sedangkan di statistical profiling approach hanya ada 2
Ketiga, menggunakan clustering based unsupervised approach
Unsupervised approach bisa jadi salah satu alternatif buat melakukan anomaly detection karena memang ga membutuhkan labelled data, walaupun beberapa data yang kita punya itu sebenarnya anomali data.
Nah, dengan unsupervised approach, data-data kita akan dikelompokkan / dibentuk kluster gitu. Cuma, untuk melakukan clustering, kita butuh untuk mendefinisikan berapa banyak cluster yang ada.
Emang sih banyak teknik yang bisa kita pake untuk mengestimasi ada berapa banyak cluster, tapi gak mungkin kan kita mengestimasi jumlah cluster pada setiap data time series yang cukup dinamis. Maka dari itu, DBSCAN bisa menjadi penolong kitaa
DBSCAN atau Density Based Spatial Clustering of Applications with Noise ga membutuhkan kita untuk ngasih tau ke mereka berapa banyak sih cluster yang ada. DBSCAN ini hanya punya 2 parameter, yaitu angka minimum di sebuah cluster dan epsilon, serta jarak antar cluster.
Kerennya lagi, DBSCAN ini engga bakal nge groupin si data anomali jadi sebuah cluster tersendiri gitu. Cuma, kalau misalkan terlalu banyak data anomali dalam sebuah interval, DBSCAN ini jadi ga bisa nge deteksi data anomali tersebut.
Dalam kasus seperti ini, rolling window based DBSCAN bisa ngebantu kita untuk menemukan local anomalies dengan lebih efektif.
Singkatnya gitu guys tentang anomaly detection pada time series data. Kaya yang udah mimin bilang tadi, anomaly detection penting banget buat berbagai industri. Makanya, ga ada salahnya kalau kalian memperdalam ilmu tentang anomaly detection ini bareng Pacmann.AI
Ga hanya belajar anomaly detection aja, kalian juga bakal diajarin loh tentang materi Business Intelligence, jadi kalian bisa deh menginterpretasikan dan menganalisis kenapa ada anomali data di bisnis kalian.
Mumpung non degree program Business Intelligence dan Data Scientist batch 3 udah dibuka, yuk langsung aja daftarin diri kalian di bit.ly/PendaftaranNon… atau kalau mau kepoiin kurikulumnya, klik link berikut yaa bit.ly/brosurpacmannai 🤩
lagi ada 💸 Promo Early Bird 💸 juga loh untuk kalian yang daftar sekarang juga di Program Non Degree Pacmann! Yuk, langsung aja buruan daftar 😎 u/ info lebih lanjut, hubungi bit.ly/WASalesPacmann ya 👋🏼
Melihat COVID-19 vaccine efficacy secara sederhana
Implementasi dasar Bayesian inference
.
.
.
A thread
Di thread kali ini, yuk kita bahas gimana cara mengestimasi efek dari vaksin secara keseluruhan. Nah, ini baru kita bakal mulai pake Bayesian inference. Apa tuh Bayesian inference? Kok bayes ada di mana-mana, sih?
Sebelum memulai thread, disclaimer dlu nih! Data yang kita gunakan itu data yang masih belum lengkap, sehingga kesimpulan dari thread ini bisa jadi belum akurat. Kita bakal fokus ke gimana caranya mengimplementasikan Bayesian inference di kasus vaksin COVID-19 saja, ya!
Distance Function: Sudut Pandang Baru atas Jarak
.
.
.
A thread
Pastinya kita udah gak asing lagi ya denger-denger kata korelasi, similaritas, klasifikasi, clustering, dan hal-hal lain yang sejenis
Katakanlah kita ingin bikin sebuah clustering pake pendekatan similaritas. Gimana sih caranya kita mengatakan 2 titik/data itu similar? Ya simplenya adalah dengan mengatakan bahwa tipe mereka sama
Critical thinking for Data Scientist, why is it important and how to develop it🧠
.
.
.
A thread
Pernah nggak kamu left grup WA karena bete sama orang yang suka share-share berita hoax yang nggak jelas asalnya dari mana? Nah mungkin, orang itu belum tau soal Critical Thinking 🙂
Critical thinking sebenarnya basic skill yang harus dimiliki oleh semua orang, tapi ada alasan kenapa skill ini jadi penting banget buat seorang Data Scientist, di luar hardskill yang selama ini udah sering kamu dengar.
Akurasi bagus nggak menjamin modelnya pasti bagus juga. Kok bisa?
Confusion Matrix: In a Nutshell
.
.
.
A thread
Suatu hari, seorang data scientist diminta klien dari sebuah rumah sakit untuk membangun sebuah model machine learning yang bisa mendeteksi dini adanya gejala tumor otak pada pasien balita
Lalu singkat cerita, data selesai di preprocessing dan modeling selesai. Pertanyaannya, kira-kira gimana cara si DS bisa mengukur performa modelnya? Cukupkah akurasi yang tinggi bisa membuat dia bilang ke klien kalau modelnya ‘works well’?
Coba kalian bayangin gimana cara orang dengan multiple source of income ngetrack pendapatan hariannya dari website yang berbeda? Misal Andrea, seorang youtuber, tapi juga punya saham dan jual lipstik di e-commerce.
Kalau Andrea mau ngetrack berapa sih pendapatannya dalam sehari, dia harus cek di 3 website yang berbeda dong: youtube, sekuritas, dan website e-commerce. Misalkan untuk cek 3 website tersebut dan ngitung berapa pendapatan hariannya butuh 10 menit,