Show
Menurut wikipedia Statistik (bukan statistika!) adalah besaran dalam statistika yang mencirikan keadaan cuplikan (sampel). Statistik adalah penduga (estimator) bagi parameter. Parameter sendiri mencirikan populasi. Nama statistik kerap kali sama dengan nama parameter, seperti "rerata" (mean), "simpangan baku", dan "koefisien korelasi", tetapi memiliki batasan matematis yang dapat berbeda. Apa itu Data Profiling? Pada bagian sebelumnya, aku sudah mempelajari mengenai exploratory data analysis, dimana Exploratory Data Analysis (EDA) adalah menggunakan pendekatan statistik yang bertujuan untuk menemukan dan meringkas sebuah dataset, mengetahui struktur dan hubungan antar variabel dalam dataset. EDA merupakan proses pre-analysis baik untuk descriptive analysis maupun predictive analysis. Dalam bab ini, aku akan fokus pada satu aspek EDA, yaitu: Data Profiling! Data profiling adalah kegiatan merangkum dataset menggunakan statistik deskriptif. Tujuan dari pembuatan data profiling adalah untuk memiliki pemahaman yang kuat tentang data sehingga dapat mulai menyusun framework analisis dan memvisualisasikan data. Importing DataSebagai langkah pertama yang harus dilakukan adalah inisialisasi Library dan mengimport dataset tersebut ke dalam Python menggunakan library Pandas dan diassign sebagai retail_raw. Library yang perlu diimport adalah: (1) pandas, (2) numpy, (3) io, dan (4) pandas_profiling. Untuk dua libray yang pertama importlah sebagai aliasnya. Datasetnya tersedia di: 'https://dqlab-dataset.s3-ap-southeast-1.amazonaws.com/retail_raw_reduced_data_quality.csv'. Inspeksi tipe data dengan library Pandas, dapat menjalankan fungsi .dtypes untuk melihat data untuk setiap kolom termasuk tipe datanya
Descriptive Statistics - Part 1Di bagian ini, aku akan mempelajari berbagai statistik deskriptif yang dapat digunakan untuk lebih memahami struktur data. Length Fungsi len menghitung jumlah pengamatan dalam suatu series / column. Fungsi len akan menghitung semua pengamatan, terlepas dari apakah ada null-value atau tidak (include missing value). Memulai analisis dengan menginspeksi length dari kolom product_id dari dataframe retail_raw! Aku akan membuat syntaks Python untuk mencapai hal tersebut di code editor. Berikut cara yang akan kulakukan:
Aku melanjutkan mempelajari ke fungsi berikutnya, yaitu Count. Count Fungsi count menghitung jumlah pengamatan non-NA / non-null dalam suatu series / column. Fungsi len akan hanya menghitung elemen dari kolom yang mempunyai nilai (exclude missing value). Setelah yang tadi cukup lancar, aku berniat mengetahui jumlah non-null value dari kolom product_id dari dataframe retail_raw agar hasil analisisnya lebih lengkap.
Missing Value Dengan Length dan Count, sekarang dapat menghitung jumlah missing-value. Jumlah nilai yang hilang adalah perbedaan antara Length dan Count. Sekarang aku perlu mengetahui jumlah missing-value dari kolom tersebut. Ini artiya aku perlu membuat syntaks untuk menghitung persentase missing-value dari product_id.
Maximum dan Minimum Fungsi max dan min digunakan untuk mengetahui element terbesar dan terkecil dari suatu kolom di dataframe. Mean, Medium, Modus dan Standard Deviasi Fungsi mean, medium, modus dan standard deviasi digunakan untuk mengetahui pemusatan data dan persebarannya.
Quantile Statistics Quantiles adalah titik potong yang membagi distribusi dalam ukuran yang sama. Jika akan membagi distribusi menjadi empat grup yang sama, kuantil yang dibuat dinamai quartile. Jika dibagi kedalam 10 sepuluh group yang sama dinamakan percentile. Dalam kasus di bawah ini, ingin membagi distribusi menjadi empat grup atau quartile.
Correlation Korelasi adalah cara yang tepat untuk menemukan hubungan antara variabel numerik. Koefisien korelasi berkisar antara -1 hingga 1. Korelasi 1 adalah korelasi positif total, korelasi -1 adalah korelasi negatif total dan korelasi 0 adalah korelasi non-linear.
Penggunaan Profiling LibrariesSeperti yang terlihat di atas, mengumpulkan statistik deskriptif dapat menjadi proses yang panjang. Pandas Profiling library memiliki function yang dapat membuat profiling data secara otomatis. Untuk dapat menggunakannya, cukup dengan memanggil library: import pandas_profiling Syntax: pandas_profiling.ProfileReport(retail_raw) Mengingat output yang ditampilkan kaya akan penggunaan javascript, maka silakan klik tautan berikut ini untuk dibuka di tab baru browser kamu: __link__ProfileReport_retail_raw___.html untuk melihat profiling report dari data frame retail_raw yang telah DQLab buatkan. Akan dapat memahami proses profiling data yang menerapkan EDA (exploratory data analysis) dari report yang di-generate menggunakan library pandas_profiling melalui method ProfileReport. Apa itu Data Cleansing?Data Cleansing berarti proses mengidentifikasi bagian data yang salah, tidak lengkap, tidak akurat, tidak relevan atau hilang dan kemudian memodifikasi, mengganti atau menghapusnya sesuai dengan kebutuhan. Data Cleansing dianggap sebagai elemen dasar dari Data Science. Missing DataDataset yang ditemui di real-world biasanya akan memiliki banyak missing value. Kemampuan untuk treatment missing value sangat penting karena jika membiarkan missing value itu dapat memengaruhi analisis dan machine learning model. Sehingga jika menemukan nilai yang hilang dalam dataset, harus melakukan treatment sedemikian rupa. Cara check kolom yang mempunyai missing value: nama_dataframe.isnull().any() Cara treatment terhadap missing-value antara lain:
Imputasi merupakan suatu metode treatment terhadap missing value dengan mengisinya menggunakan teknik tertentu. Bisa menggunakan mean, modus ataupun menggunakan predictive modelling. Pada modul ini akan membahas mengenai pemanfaatan function fillna dari Pandas untuk imputasi ini, yaitu nama_dataframe['nama_kolom'].fillna(nama_dataframe.nama_kolom.function()) .function() yang dimaksud pada syntax di atas adalah penggunaa fungsi .mean() atau .mode(). Penggunaan fungsi .mean() atau .mode() ini bergantung pada kondisi yang mengharuskan menggunakan nilai rata - rata atau modus dari kolom yang akan diimputasi, seperti nama_dataframe['nama_kolom'].fillna(nama_dataframe.nama_kolom.mean()) atau nama_dataframe['nama_kolom'].fillna(nama_dataframe.nama_kolom.modus()) Drop row yang mengandung missing value. Dapat menggunakan function dropna dari Pandas. nama_dataframe['nama_kolom'].dropna() Untuk menangani missing data pada retail_raw,
melengkapi missing value tersebut dengan mean dari item_price. Berikut caraya:
OutliersOutliers merupakan data observasi yang muncul dengan nilai-nilai ekstrim. Yang dimaksud dengan nilai-nilai ekstrim dalam observasi adalah nilai yang jauh atau beda sama sekali dengan sebagian besar nilai lain dalam kelompoknya. Cara treatment terhadap outliers antara lain:
Pada umumnya, outliers dapat ditentukan dengan metric IQR (interquartile range). Rumus dasar dari IQR: Q3 - Q1, dan data suatu observasi dapat dikatakan outliers jika memenuhi kedua syarat dibawah ini:
Syntax di Python: Q1 = nama_dataframe.quantile(0.25) Q3 = nama_dataframe.quantile(0.75) IQR = Q3 - Q1 Kemudian untuk membuang outliersnya: nama_dataframe = nama_dataframe[~(((nama_dataframe < (Q1 - 1.5*IQR)) | nama_dataframe > (Q2 - 1.5*IQR)))]
Deduplikasi DataDuplikasi data merupakan data dengan kondisi pada row-row tertentu memiliki kesamaan data di seluruh kolomnya. Tentunya ada data yang duplikat dalam dataset yang dimiliki. Kondisi duplikasi harus diatasi dengan jalan mengeliminir baris yang mengalami duplikasi, sehingga proses ini dikenal dengan deduplikasi. Untuk mencek duplikasi data: nama_dataframe.duplicated(subset=None) Syntax untuk membuang duplikasi: nama_dataframe.drop_duplicates() |