Visualisasi Data Terbaik-Intro

Tidak dapat dipungkiri bahwa semakin canggih perkembangan teknologi membuat hidup menjadi lebih mudah. Tidak ketinggalan dengan teknologi visualisasi data… beberapa tahun yg lalu kita masih menggunakan excel utk mengolah data dan membuat grafik lalu menampilkannya lewat power point. Grafik yg ditampilkan adalah statis artinya hanya menampilkan satu part dr grafik, utk melihat bagian lain dr grafik kita harus merubah manual filter datanya. Hufhh.

Bar Chart-Sales-Segment

Menurut saya interaksi terbaik dg data adalah dengan menggunakan dynamic graph… dg merubah satu dimensi kita bisa melihat perubahan grafiknya.. hal ini sangat membantu kita utk memahami data dan mendapatkan informasi yg dibutuhkan dalam waktu yg singkat. Gabungkan seluruh grafik yang kita buat untuk mendapatkan informasi yang lebih komprehensif.

Dashboard-Bar-Draft 1

Sering kali kita memiliki 3 atau empat grafik yg ingin kita lihat sekaligus dan kita ingin filter salah satu dimensi lalu melihat perubahan dr 4 grafik tsb akibat perubahan filter yg kita lakukan.

Dashboard With Filter

Contohnya disini saya tambahkan state sebagai filter, jika anda perhatikan saya menambahkan sedikit shading pada header dashboard. Nah kita sudah bisa mulai main nih dengan data yg kita miliki. Saya membuat dashboard seperti diatas kurang dari 5 menit!! Yang mau belajar bareng boleh tinggalkan email atau nomor kontak dikolom komentar. Saya terbuka untuk diundang ke kantor atau kampus anda untuk sharing topik terkait statistics, data visualization, machine learning. Pokoknya semua yg terkait DATA. Salam.

 

 

Advertisements

Basic Data Science Knowledge: Python (Part 1)

Python saat ini menjadi tren bahasa yg paling banyak digunakan dalam dunia data science. Walaupun ada bagian-bagian yang masih belum bisa menggantikan R, namun integrasinya dengan ekosistem HADOOP ini lah yang membuatnya menjadi sangat terkenal. Well, tulisan ini hanya catatan pribadi sebagai pengingat dan contekan kalau-kalau lupa.

Saya menginstall python dengan sepaket dengan hanya mendownload anaconda, jadi ringkas di dalamnya ada spyder, jupyter dkk buat GUI nya. Secara personal saya lebih suka menggunakan Jupyter karena formatnya yang mirip dengan R-markdown style di R studio.

Untuk show datanya kita bisa menggunakan

>print (“Hello world”)

Untuk menambahkan komentar bisa menggunakan

> # Ini komentar

Komentar sering bgt saya pakai sebagai pengingat alasan saya menggunakan query tsb. Juga sangat berguna jika query saya digunakan oleh orang lain.

List

Di python sangat flexible kita bisa bikin array yang isinya campur-campur kayak gini.

> a=[99,”cahaya”,[“dilangit”,”eropa”]]

Untuk slicer dari list juga cukup mudah, kita bisa menggunakan index yg selalu dimulai dari 0.

>a[0] hasilnya adalah 99

Berikut contoh lain

>b=range(5)

[0, 1, 2, 3, 4]

>b.append(5)

[0, 1, 2, 3, 4, 5, 5]

>b.pop() #untuk mengetahui jumlah data

5

Dictionary atau Associative Array

Cirinya tidak menggunakan index namun menggunakan keys sehingga kita melakukan fungsi seperti lookup. Keys yg digunakan di dictionary ini sifatnya IMMUTABLE yang artinya tidak boleh diubah-ubah

d = {“duck”: “eend”, “water”: “water”}
d

{'duck': 'eend', 'water': 'water'}

Cara lookupnya

d[“duck”]

‘eend’

Tuple

Hal lain yg perlu dikenal di python adalah tuple. Ciri-cirinya adalah menggunakan kurung ( ) untuk membentuk tuple. Sifat dari tuple juga IMMUTABLE  artinya isinya tidak bisa diubah-ubah.

nama =(‘rahmat’, ‘hid’)
nama

('rahmat', 'hid')

Jika ubah isi tuple nya, maka hasilnya adalah ERROR.

nama[0]=’coding’

Error bla bla xxxx– karena tuple tidak support item assignment

Tuple bisa berisi value, list ,dictionary, object, dan lain-lain.

Variable

variable juga jenis wadah untuk menyimpan value, di python kita tidak perlu melakukan DECLARE variable. Kita bisa langsung membuat variable dan mengisinya dengan value yg kita inginkan. Perbedaannya variable isinya bisa dirubah-rubah.

Pada dasarnya semua hal adalah variable baik itu class, modul maupun fungsi.

var=”isi dengan nilai”
var

'isi dengan nilai'

Kayaknya ini dulu saja untuk yg basic, lagi-lagi tulisan ini buat pengingat saja. Cara paling efektif adalah coba langsung ya guys.

 

 

 

Dapatkah analitik membantu dunia pendidikan?

Dilihat dari sudut pandang bisnis, dunia pendidikan bisa disebut salah satu sektor industri dimana terdapat input dan output yg selalu diukur apakah output yg dihasilkan sudah sesuai dengan kriteria passing grade. Analogi siswa sebagai produk dr sebuah pabrik yg dinamakan sekolah masih relevan walaupun tidak bisa dan tidak seharusnya disamakan for the sake of argument mari kita terima saja dulu.

Dalam proses memproduksi produk pabrik memperhatikan hal2 yg akan menaikkan kualitas dan juga yg menurunkan kualitas. Penyempurnaan proses ini lah yg membuat semakin lama produk yg dihasilkan semakin baik. Hal2 yg diukur ini dinamakan metrik atau measurment. Dengan menggunakan indikator dr metrik2 ini maka kita akan mempunyai visibility terhadap keadaan yg terjadi di pabrik.

Ok, lets back to school. Dunia pendidikan dimana sekolah menjadi ujung tombak dunia pendidikan selama ini mengumpulkan metrik2 seperti absensi, keaktifan, nilai ulangan, nilai tugas kelompok, tugas individu dan metrik2 lainnya. Sekolah dapat (harus) memanfaatkan data2 ini untuk menggerakkan kualitas lulusan dengan menerapkan langkah2 strategis lalu kemudian mengukur dan mengevaluasi metrik2 ini sampai tujuamnya tercapai.

Analitik selama berpuluh tahun telah membantu dunia manufaktur untuk meningkatkan kualitasnya.. saatnya dunia pendidikan mengadopsi analitik yg tidak hanya sekedar deskriptif namun juga predictive dan prescriptive. Untuk ini sepertinya saya perlu bekerja sama untuk membuat semacam quick win. Mampukah? Bisakah?

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.

 

 

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?