Must known: Decision Tree

Saya tidak bisa recall ingatan saya apakah dulu waktu kuliah pernah diajarkan mengenai decision tree atau sudah. Seharusnya sih diajarkan di mata kuliah analisis data kategorik tapi kok yang ingat malah CHAID… Ya sudahlah.

Menurut saya decision tree ini adalah analisa dengan hasil analisa yang paling mudah untuk dipahami, baik quant maupun non quant. Namany sudah menggambarkan bahwa analisa ini menggunakan konsep pokok, dahan dan ranting dari sebuah pohon.

colorful-natural-tree

Decision tree adalah analisa yang digolongkan sebagai supervised learning dimana ciri dari analisanya adalah dengan adanya target/dependent variable yang biasa di lambangkan dengan huruf Y. Decision tree dapat melakukan kalkulasi baik untuk variable kategorik/ discrete mapun numerik/ continuous. Untuk jenis data kategorik dinamakan CLASSIFICATION TREE sedangkan untuk numerik continuous dinamakan REGRESSION TREE.

Jika anda sudah terbiasa dengan regresi linear, maka anda tidak akan mengalami kesulitan memahami decision tree. Pola pengujian hipotesis pada decision tree menambahkan satu layer baru untuk melakukan pemisahan antar observasi kedalam group-group yang homogen. Disinilah perbedaan mendasar antara decision tree denga regresi linear. Regresi linear hanya berhenti sampai mendapatkan uji masing-masing variabel sedangkan decision tree menguji masing-masing variable apakah dapat memisahkan observasi lebih kecil lagi menjadi group-group yang homogen.

Sebelum melangkah lebih jauh, sebaiknya kita mengenal beberapa istilah yang digunakan dalam decision tree.

  1. Root node: pokok dari tree atau pohon yang kita miliki, seluruh observasi dan populasi ada pada root node ini.
  2. Decision node: tempat terjadinya pemisahan/ splitting dari satu node menjadi beberapa node yang lebih kecil
  3. Splitting: proses pemisahan node
  4. Terminal node: posisi terakhir yang tidak lagi memungkinkan terjadinya splitting.
  5. Pruning: Proses penghilangan terminal sub nodes dari decision node.

tree

Apa kriteria pemisahan node?

  1. Gini index: Konsep dasarnya adalah jika kita memiliki populasi yang homogen, peluang terbentuknya dua group yang homogen adalah 1. Gini index digunakan hanya untuk data kategorik (khusunya binary split), semakin tinggi gini index nya semakin homogen group yang di split–ini dia yang diharapkan. FYI saja CART menggunakan gini index untuk pemisahan binary. Formula gini index itu simple yakni p^2*(1-p)^2, artinya perkalian antara peluang sukses dan gagalnya.
  2. Information gain–entropy: Konsep dasarnya adalah semakin homogen sebuah populasi maka semakin sedikit informasi yang dibutuhkan untuk melakukan split. Artinya jika populasi homogen maka entropy nya 0, jika populasi terbagi menjadi dua persis 50:50 maka entropinya menjadi 1.
  3. Chi-square: Seperti yang kita tahu, chi square dapat digunakan untuk menguji sebaran dari dua populasi. nah konsep ini yang kemudian digunakan untuk menentukan apakah sebuah node akan di split atau tidak.
  4. Reduction variance: Untuk tiga metode diatas ketiganya digunakan untuk variabel kategorik, nah untuk variable continuous, kita menggunakan variance reduction untuk splitting. Jika anda masih ingat konsep variance, maka anda pasti paham populasi yang seragam memiliki variance yang lebih kecil. nah, oleh karena itu variable yang memiliki variance paling kecil ini lah yang ditempatkan sebagai split pertama.

catatan ini adalah catatan pribadi saya, bisa jadi ada banyak kelemahan, namun untuk saya pribadi ini sudah cukup dijadikan pegangan. Jika anda merasa tulisan ini berguna, silahkan di share dan di jangan lupa komentar.

 

 

Advertisements

Overfitting: To good to be true alias model jago kandang

Model dalam statistika digunakan untuk memprediksi suatu nilai dengan memasukkan nilai-nilai lain kedalam sebuah formula dengan harapan nilai yang dihasilkan dari model tersebut dekat dengan nilai aktualnya. Sebagaimana kita ketahui bahwa dalam membuat sebuah model, kita membagi data menjadi dua bagian yakni data training dan data testing. Biasanya saya membaginya 70% training dan 30% testing.

fittings

Setelah kita mendapatkan model dengan mempertimbangkan kelayakan model/ goodness of fit maka kita melakukan testing dengan data testing kita. Tapi masalahnya adalah bagaimana jika hasil goodness of fit, let’s say R square nya 99.9999999%? Anda merasa puas? Jawaban saya it’s too good to be true! Pengalaman saya, jika sebuah model memiliki R-square yang terlalu mendekati 100% maka sebaiknya kita menaruh curiga apakah  model kita overfitting? Apa lagi ini overfitting??

Anda tentu sudah familiar dengan error bukan? Jika model anda menghasilkan error untuk data yang training sangaaat kecil, maka artinya model tersebut bagus…. tapii… pada saat model anda digunakan untuk data lain diluar dari data yang anda gunakan maka kemungkinannya adalah error yang dihasilkan akan sangat tinggi. Dengan kata lain model anda jago kandang. hehe.

Kesimpulannya, jika anda menemukan sebuah model memiliki hasil goodness of fit sempurna… hal ini tanda awal yang baik bahwa yang anda lakukan sudah cukup baik. Namun demikian anda perlu memperhatikan bahwa model ini akan digunakan untuk data lain diluar dari data yang anda latih. Untungnya anda bisa membuat model anda lebih masuk akal dengan jurus yang bernama “regularization”. Stay tune in the datatalker!

Binomial Distribution (Bahasa:Sebaran Binomial)

Distribution atau sebaran adalah salah satu konsep yang penting atau bisa dibilang paling penting dalam statistika. Bagi mereka yang mau belajar data science/ analytics konsep  distribusi binomial ini adalah hal yang wajib dipahami. Dari namanya bi= dua  dan nomial=nom=nama,  seharusnya anda bisa menebak bahwa distribusi ini digunakan untuk dua kejadian. Salah satu contoh kejadian yang dapat dijelaskan oleh distribusi binomial adalah pelemparan koin dimana kemunculan angka dan gambar.

Jika sebuah koin simetris dilempar 10 kali maka kita akan mendapatkan n=10 dan jika yang kita amati adalah munculnya angka dengan peluang 50% (kita tandai dengan sukses) dan gambar (gagal) dengan peluang 50%. Maka kita dapat menuliskan sebaran ini dengan n=10, p=0.5 dan 1-p=0.5.

tyjr4

Grafik diatas cukup jelas menunjukkan jika kejadian diulang 40 kali dan koin yang digunakan adalah simetris p=0.5 maka dapat ditunjukkan oleh grafik berwarna biru. Kita lihat bahwa rata-rata kemunculan angka ditunjukkan oleh garis biru tertinggi yakni 20. Munculnya angka rata-rata 20 ini dapat juga kita rumuskan dengan nxp=40 x 0.5.

Dalam pekerjaan sehari-hari banyak sekali kejadian yang dapat dijelaskan dengan distribusi binomial. Di perbankan anda menemukan seorang debitur gagal bayar atau tidak, di dunia telco dan fmcg sering kali diperhatikan mengenai customer yang loyal dan tidak atau di dunia kedokteran untuk mengetahui sebuah obat dapat menyembuhkan penyakit atau tidak. Dengan banyaknya penggunaan distribusi binomial ini maka semakin kuat alasan kita untuk lebih memahami distribusi ini.

 

Reff:

https://towardsdatascience.com/statistics-review-for-data-scientists-and-management-df8f94760221

https://math.stackexchange.com/questions/2123873/is-the-maximum-of-a-probability-distribution-function-of-a-binomial-distribution

 

 

Data Type: Discrete vs Continues

Minggu lalu saya diminta oleh rekan saya untuk membantu sebuah unit baru di kantor saya. Unit ini kedepannya akan sangat intense menggunakan data sebagai bagian dari pekerjaannya. Saya diberikan sebuah set data untuk kemudian di analisa untuk membuktikan bahwa konsep-konsep statistika dapat diaplikasikan dalam pekerjaan mereka. Setelah menyiapkan beberapa halaman slide, saya pun datang dan menjelaskan bagaimana langkah-langkah yang saya lakukan sampai menghasilkan model sesuai dengan harapan mereka. Ternyata… sebagian besar dari audiens masih sangat awam dengan jargon-jargon statistika. Hal ini membuat saya kembali berpikir bahwa kembali menguatkan konsep dasar tidak akan pernah menjadi kesia-siaan. Baiklah, mari kita mulai dengan discrete dan continues.

Sederhananya variabel discrete adalah variabel yang berasal dari operasi menghitung. Jumlah gelas di dalam lemari, jumlah buah di dalam keranjang. Hitungan sederhana seperti 1,2,3 dst. Tidak ada angka desimal di dalam variabel discrete.07778a4906f57221506f44beef50cf6d

Sedangkan variabel continues adalah variabel yang memiliki selisih antara dua variabel 0 hanya jika variabel tersebut dikurangi dengan dirinya sendiri. Ciri-cirinya adalah adanya angka decimal 1.991, 1.9999992 dst. Contohnya adalah berat badan, tinggi badan, interval waktu dll.

cant-lose-weightPenentuan variabel ini sangat berpengaruh terhadap analisa data yang akan anda lakukan kedepannya. Jika anda mempunyai variable discrete akan lebih cocok jika anda menggunakan median untuk ukuran pemusatan dan untuk variabel continues akan lebih tepat jika anda menggunakan rata-rata. Jika anda masih bingung dengan ukuran pemusatan mungkin anda ingin membaca tulisan saya tentang Ukuran Penyebaran Data.

Biasanya saat anda melakukan import data kedalam software anda akan diminta untuk mendifinisikan variabel yang anda masukkan. Nah dengan mendefinisikan data anda dengan tipe data yang tepat anda tidak akan mengurangi masalah yang mungkin anda hadapi pada langkah-langkah berikutnya.

 

Ketika rata-rata tidak cukup lagi…

Siapa yang tidak kenal dengan rata-rata?? Jika anda sering kali melakukan pengolahan data, maka perhitungan rata-rata hampir bisa dipastikan akan selalu ada dalam laporan yang anda buat. Namun menyajikan rata-rata saja ternyata sangat tidaklah cukup… Percaya deh.. Gak cukup banget. Jika ada yg menyajikan data hanya dengan rata-rata saja maka hal ini akan membuat kesimpulan yang anda buat menjadi melenceng dari yang seharusnya. Kenapa??

Hal ini sangat berkaitan erat dengan variasi data yang anda miliki. Buatlah histogram sederhana untuk mengetahui apakah data anda punya data ekstrim? Data ekstrim adalah data yang saaaangat besar atau sangaaat kecil dibandingkan dengan nilai tengah nya.

Nilai rata-rata memberikan bobot yang sama untuk semua data. Sehingga nilai yang besaaar banget atau yang keciiil bgt kan membuat rata-rata bergeser ke besar atau yang kecil. Saran saya selalu bandingkan nilai rata-rata dengan nilai tenga (median). Lebih bagus lagi jika anda tambahkan kuartil atau percentilnya.

Presentasi data: Two long tail perspective…

Kerap kali saat anda sudah punya data dab anda punya kemampuan untuk melakukan penelitian, anda kesulitan untuk menyampaikan informasi kepada publik lewat susunan cerita yang menarik. Diskusi sore ini bersama big bos, saya menemukan sebuah pola pikir yang sangat menarik. Berawal dari saking banyaknya data yang kami miliki, kami kesulitan merangkai semua data itu menjadk sebuah cerita yang utuh. Hingga akhirnya muncul celetukan, pakai saja analisis two tail… Dalam hati.. Whaat? Baruu denger saya.

Pikiran saya langsung tertuju pada grafik sebaran normal dengan dua ekor dikiri dan dikanan. Bell Curve. Ternyata apa yg saya pikirkan terlalu rumit… Ternyata analisa ini sangat simpel namun dengan mengambil konsep sebaran data.

Kita pasti tahu bell curve… Nah dua tail atau ekor grafik ini menggambarkan posisi yang ekstrim dari data… Ekstrim besar dan ekstrim kecil… Misalkan kita menganalisis data sales maka salah satu opsi dalam menyampaikan informasi adalah dengan mengambil detail dari kedua tail. Ekstrim kanan menggambarkan sales yang penjualannya sangat tinggi, lets say top 95 percentile… Sedangkan di kiri kita ambil contoh untuk sales yg tidak achieve… Misalkan bottom 10 percentile. Dengan menggali detail kenapa kedua sales ini berada di sisi ekstrim sangatlah penting. Kita ingin agar sales yg ada dibagian tengah dapat mencontoh strategi sales yang berhasil dan menjauhi sales yg tdk achieve.

Harapan kita adalah nilai tengah dari sales yg skrg berkumpul ditengah dapat bergeser ke arah kanan yg secara total akan menaikkan sales performance secara keseluruhan.

Ability to see pattern in randomness

life_is_random

Dulu sekali, disalah satu stasiun televisi swasta menayangkan sebuah acara dimana beberapa orang ‘sakti’berkumpul untuk menangkap hantu. Kami yang saat itu masih anak-anak sangat menggandrungi acara ini, apalagi saat salah seorang dari pemburu tersebut membuat lukisan dengan mata tertutup, lalu muncullah gambar makhluk-makhluk aneh dengan ajaibnya.

Beda halnya dengan salah satu karakter novel kesukaan saya Sherlock Holmes, berkali-kali membaca dan menonton film dan serialnya selalu membuat saya berdecak kagum. Kemampuannya dalam memecahkan kasus-kasus kriminal membuat pembaca tenggelam dalam alur cerita yang dituliskan oleh Sir Arthur Conan Doyle.

Lalau apa hubungannya antara pemburu hantu dan Sherlock Holmes? Keduanya memiliki sebuah kesamaan yakni kemampuan melihat sesuatu yang tidak bisa dilihat oleh orang kebanyakan. Walau dalam kasus pemburu hantu saya juga masih ragu apa itu rekayasa atau bukan, tapi ya sudahlah anggap saja mereka bisa lihat.period. Kemampuan ini yang membuat mereka special dan berbeda dengan orang lain yang akhirnya membuat mereka terkenal dan dibayar mahal.

Menurut saya apa yang kita lakukan dalam menganalisa data adalah mencoba melihat pola-pola yang tidak terlihat dari sekumpulan data atau kejadian yang seakan-akan acak dan chaos. Dalam era social media ini, perusahaan selalu mencoba untuk lebih baik dari perusahaan lain dengan berbagai cara, salah satu nya adalah membuat produk yang berbeda dan lebih baik dari pesaingnya. Semakin banyak kita tahu tentang informasi lebih dari pesaing kita, maka semakin besar peluang kita menang.

Di zaman dimana semua aktifitas kita terekam lewat sebuah alat yang bernama smartphone ini, maka tidak ada lagi batasan antara kita dengan perusahaan penghasil produk. Tergantung apakah mereka mampu menemukan pola/pattern yang kita hasilkan. Dapatkah mereka memberikan sebuah penawaran/solusi/produk/jasa yang sesuai dengan kebutuhan kita.

Pertanyaan untuk kita adalah apakah anda mampu melihat pola yang teratur dalam sebuah kejadian acak?

Percayakah anda 9 dari 10 wanita menggunakan *******?

iklanKalau saya sih lebih percaya 9 dari 10 iklan lebih banyak ngibulnya dari pada benernya. Atau saya lebih percaya dari 10 kali anggota DPR ngomong 9 kali mereka berbohong, 1 kalinya bercanda…hehe. Tapi bukan itu intinya. Tapi apakah arti sebenarnya dari angka 9 dari 10? Let see.

Jika anda adalah penikmat acara televisi tanah air, maka saya dapat memastikan anda juga penikmat iklan tv. Bagaimana tidak dari setiap 5 menit tayangan acara, maka 2-3 menit lainnya adalah iklan tv. Ya.. iklan merupakan porsi terbesar dari pemasukan televisi sekaligus cara yang paling ampuh bagi pemilik produk untuk menginformsikan kepada pemirsa tentang produk mereka. Berbagai jenis iklan digunakan untuk menanamkan ke benak pemirsa agar kemudian dapat menggunakan produknya.

Di datatalker, saya tidak akan membahas lebih jauh mengenai jenis iklannya tapi bagaimana data disalahgunakan oleh pihak-pihak yang semata-mata mengharapkan keuntungan dengan mengabaikan kebenaran.

Klaim 9 dari 10 wanita telah memilih produk A. Apa yang terlintas di benak anda? Bagi pemirsa yang awam konsep statistika/matematika maka secara sadar maupun tidak sadar akan cenderung berpikir 90% wanita di Indonesia menggunakan produk A. Benarkah demikian?? Ini yang tidak pernah atau tidak mau ditunjukkan dengan jujur oleh pembuat iklan:

  1. Klaim 9 dari 10 wanita Indonesia menggunakan produk A adalah TIDAK TEPAT.
  2. Klaim tersebut adalah hasil SURVEY, dimana hasil survey tergantung dari metode surveynya. Jika menggunakan diambil secara acak dari POPULASI dan metodenya BENAR, maka klaim tersebut dapat dibenarkan. Jika TIDAK maka klaim tersebut hanyalah KEBOHONGAN.
  3. Letak KESALAHAN FATALNYA adalah klaim wanita Indonesia (seluruh), padahal hanya sebagian wanita yang ikut survey dan TIDAK MEWAKILI seluruh WANITA (Populasi).

Menurut saya kalimat yang disampaikan haruslah tidak ambigu misalnya, 9 dari 10 wanita yang kami survey (purposive/random sampling) menggunakan produk A. Tapiii… apakah terdengar menarik?? Sepertinya kebohongan yang cantik lebih dipilih daripada kebenaran dengan muka pasaran.

Visualisasi Distribusi Peluang

Saat mendengar istilah peluang (Eng: Probability) mungkin bagi beberapa orang akan terbayang hal yang berbeda, bagi kalian yang pernah mengambil mata kuliah statistika dasar maka konsep ini seharusnya bukan hal yang asing lagi. Pada dasarnya peluang adalah kemungkinan sebuah kejadian terjadi, dapat dihitung dengan rasio sebuah kejadian terhadap seluruh kemungkinan kejadian.

Untuk memvisualisasikan munculnya semua kombinasi kejadian terhadap semesta kejadian kita memerlukan sebuah teknik visualisasi yang mudah untuk dimengerti. Pernah lihat grafik seperti ‘lonceng’ seperti ini?

student_t_density_plot_1

Grafik ini adalah grafik dari Probability Density Function (PDF). Grafik PDF ini mengikuti sifat dari PDF yakni antara lain:

  • Karena random variabel yang digunakan sifatnya kontinu maka grafik PDF yang ada juga merupakan kontinu sepanjang random variabel yang ada
  • Area yang berada di bawah kurva memiliki nilai maksimal 1
  • Jika kita memiliki 2 titik (a, b) dimana a<b, maka peluang untuk kejadian tersebut adalah luasan daerah dibawah kurva antara a dan b
  • Peluang P(X=a)=0, artinya peluang satu titik (contoh a) adalah 0 (nol).

Bagaimana membaca grafik PDF ini? Kita bisa ambil contoh dengan grafik dibawah ini. Pada grafik diatas menggambarkan PDF dari cacat produksi lampu. Sigma (σ) disini adalah nilai yang didapat dari  tingkat kecacatan produk yang dihasilkan dalam sebuah proses produksi. Untuk lebih jelas dapat dilihat tabel berikut:

six_sigma_normal_distribution_2

six_sigma_level_yield_table

Misalkan kita punya pertanyaan berapa peluang cacat produksi lampu tersebut lebih besar dari 690.000 ppm (part per million), maka kita mendapatkan sigma level nya adalah 1, dengan mengambil seluruh area dibawah kurva (dari -1σ sampai 1σ) dimana yield (success) 30.85% dan tingkat kecacatan 69.15%.

Dengan adanya penjelasan visualisasi fungsi peluang ini harapannya kita dapat mengaplikasikan konsep peluang kedalam aktifitas sehari-hari. Jika perusahaan anda mempunyai toleransi kecacatan produk sampai hanya 1 sigma, artinya anda mentolerir hampir 70% produk anda terbuang percuma. Namun jika anda ingin untung tentunya anda akan mengontrol proses produksi anda seefisien dan seefektif mungkin. Dengan menetapkan standar Qulaty Control (QC) yang baik, maka anda akan memperkecil kerugian dari terbuangnya bahan baku dari produk yang cacat.

Aplikasi penggunaan PDF ini sangat banyak, jika ada yang ingin share lebih banyak silahkan masukkan ke kolom komentar. 🙂

 

Market Basket Analysis

3648337-collection-of-shopping-carts-full-of-shopping-bags-and-a-sale-label-concept-of-discount-vector

Saya sering berbelanja bersama dengan istri dan anak saya, pada saat berbelanja kebutuhan anak saya utamanya popok dan susu, saya sering menemukan berbagai promo yang cukup menarik terutama di mata istri saya. Beli popok merk ini dapatkan harga spesial untuk tisu basah, wew… itu mata istri saya seperti mengeluarkan sinar laser dan secepat kilat otaknya berhitung berapa yang harus dibayar jika saya membeli popok sekian dan tisu basah sekian. Padahal dia sangat benci matematika sejak lahir, namun kalau masalah uang belanja ini hitungan rumit setara aljabar matriks ini selesai dalam hitungan detik..haha…

Mari kita tinggalkan istri saya yang sedang sibuk berhitung kebutuhan popok. Hal yang ingin saya tunjukkan adalah bagaimana caranya pemilik toko membuat penjualan dengan sistem paket seperti itu, pengalaman saya sebagai shopper di warung kelontong dekat rumah sejak usia saya 7 tahun tidak sekalipun ada penawaran atau bundling barang seperti tadi, mungkin saat saya beli minyak goreng curah siapa tahu ada penawaran ikan asin setengah harga… who knows…

Akhirnya semua misteri tersebut terjawab setelah saya meranatau ke barat (baca jawa barat) untuk mencari kitab suci statistika. Ternyata si toko ini mencatat setiap transaksi yang dilakukan oleh pembelinya, jadi selain data belanjaan kalian ada di dalam struk belanjaan, data yang sama disimpan dalam sebuah database. Data inilah yang kemudian diolah dan dianalisa untuk menghasilkann sebuah strategi pemasaran yang sering kali terlihat seperti membaca pikiran terutama para ibu-ibu yang hobi belanja (kadang2 bapak2 juga.. :P).

Di dunia praktisi data, teknik ini di namakan market basket analysis, sesuai dengan barang untuk menaruh belanjaan=keranjang=basket (english). Kalau bahasa Indonesianya sih analisa keranjang belanjaan di pasar, analisa ini dapat menghasilkan informasi mengenai produk-produk yang sering dibeli secara bersamaan oleh pelanggan. Dengan informasi ini lah pemilik toko seakan-akan mampu untuk membaca kenginan orang bahkan bisa mengaarahkan orang-orang untuk membeli barang-barang yang sebenarnya tidak ada di dalam daftar belanjaan mereka.

Thats the power of data, dengan menggunakan analisa yang benar kita dapat menemukan pola-pola yang tak terlihat dan menjadikannya sebagai senjata ampuh untuk meningkatkan bisnis kita.

Jika anda mendapatkan manfaat dr tulisan tersebut please share, untuk tulisan-tulisan saya yang lain dapat dilihat pada blog post di bawah ini.