Modul 1 - Exploratory Data Analysis
Modul 1 - Exploratory Data Analysis
1. Praktek
2. Belajar Mandiri
1.1. Tujuan Praktikum
1. Mahasiswa mampu mempersiapkan lingkungan pengembangan aplikasi Python
untuk Data Mining
2. Mahasiswa mampu menjelaskan karakteristik data melalui Exploratory Data Analysis
(EDA)
3. Mahasiswa mampu menulis dan memahami kode python untuk melakukan EDA
1.2. Alat dan Bahan
1. Jupyter Notebook atau IDE Python yang lain.
2. Python v.3 atau lebih baru.
3. Library pandas, matplotlib, dll.
4. Dataset Heart Disease
1.3. Landasan Teori
Exploratory Data Analysis (EDA)
Exploratory Data Analysis (EDA) adalah proses yang digunakan dalam analisis data untuk
memahami karakteristik, pola, dan informasi yang terkandung dalam data sebelum
melakukan analisis statistik lebih lanjut atau membangun model prediktif. Tujuan utama
EDA adalah untuk membantu peneliti atau analis data dalam mengungkapkan wawasan
yang mungkin tersembunyi dalam data serta mengidentifikasi anomali atau keanehan
dalam data. EDA adalah langkah penting dalam pengembangan pemahaman awal
tentang dataset sebelum melakukan analisis lebih lanjut. Berikut adalah langkah-langkah
umum dalam EDA:
1. Pengumpulan Data:
Langkah pertama dalam EDA adalah mengumpulkan semua data yang diperlukan
dari sumber yang relevan.
2. Pemahaman Data:
Periksa dataset secara umum untuk memahami strukturnya, seperti jumlah baris dan
kolom.
Identifikasi variabel apa yang ada dalam dataset dan apakah mereka adalah variabel
kategoris (data kualitatif) atau numerik (data kuantitatif).
3. Statistik Deskriptif:
Hitung statistik deskriptif seperti mean, median, modus, standar deviasi, kuartil, dan
lain-lain untuk setiap variabel numerik.
Hitung distribusi frekuensi dan tabel kontingensi untuk variabel kategoris.
4. Visualisasi Data:
Visualisasikan data menggunakan berbagai grafik seperti histogram, box plot,
scatter plot, bar plot, dan sebagainya.
Plotting data dapat membantu dalam mengidentifikasi pola, outliers, atau
kecenderungan dalam data.
5. Penanganan Data yang Hilang:
Identifikasi dan tangani data yang hilang, jika ada. Ini melibatkan imputasi data yang
hilang atau penghapusan baris/kolom yang memiliki data yang hilang.
6. Identifikasi Outliers:
Identifikasi dan memahami outliers (data yang berbeda jauh dari kebanyakan data)
dan pertimbangkan apakah mereka akan dihilangkan atau diatasi dengan metode
khusus.
7. Analisis Korelasi:
Evaluasi korelasi antara variabel-variabel numerik menggunakan matriks korelasi
atau scatter plot. Hal ini membantu memahami hubungan antara variabel dalam
dataset.
8. Analisis Distribusi:
Periksa apakah data mengikuti distribusi tertentu seperti distribusi normal atau
distribusi Poisson. Jika tidak, ini dapat memengaruhi pemilihan analisis statistik yang
sesuai.
9. Analisis Variabilitas:
Evaluasi variabilitas dalam data untuk memahami sejauh mana data berfluktuasi. Ini
dapat dilakukan dengan memeriksa deviasi standar, rentang, atau interquartile range
(IQR).
10. Temuan Awal: - Identifikasi temuan awal atau pola menarik dalam data yang dapat
membantu merumuskan pertanyaan atau hipotesis lebih lanjut.
EDA adalah tahap awal yang penting dalam proses analisis data dan membantu dalam
mempersiapkan data untuk tahap analisis lebih lanjut, seperti pemodelan statistik atau
pembangunan model machine learning. Dengan melakukan EDA yang cermat, Anda
dapat mendapatkan pemahaman yang lebih dalam tentang data yang Anda hadapi, yang
pada gilirannya dapat membantu Anda membuat keputusan yang lebih baik dan relevan.
1.4. Langkah-langkah Praktikum
1. Instalasi dan Persiapan Dataset
1. Pastikan Anda sudah menginstalasi Python pada komputer yang anda gunakan
2. Pastikan Anda menggunakan dataset yang disediakan oleh pengampu / asisten
praktikum disini.
2. Instalasi Library dan Loading library
In [1]: %%capture
## instalasi ini hanya dilakukan jika di komputer anda belum terinstall libr
!pip install pandas missingno numpy matplotlib seaborn scipy
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
import missingno as msno
from scipy import stats
3. Load Dataset
In [2]: dataset = pd.read_csv('diabetes_prediction_dataset.csv')
Out[3]: (100000, 9)
In [6]: dataset.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 100000 entries, 0 to 99999
Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 gender 99998 non-null object
1 age 100000 non-null float64
2 hypertension 100000 non-null int64
3 heart_disease 100000 non-null int64
4 smoking_history 100000 non-null object
5 bmi 100000 non-null float64
6 HbA1c_level 100000 non-null float64
7 blood_glucose_level 100000 non-null int64
8 diabetes 100000 non-null int64
dtypes: float64(3), int64(4), object(2)
memory usage: 6.9+ MB
In [9]: dataset.describe()
Insight : Plot tersebut menunjukkan frekuensi umur dalam dataset. Usia 50 tahunan
memiliki jumlah record terbanyak
In [12]: dataset.groupby('diabetes')['age'].plot(kind='kde')
plt.legend(['No', 'Yes'], loc='upper right', title='Diabetes')
Out[13]: <AxesSubplot:>
In [14]: p = sns.countplot(data=dataset, x='diabetes', hue='gender')
Insight : Jumlah penderita diabetes berdasarkan gender Male dan Female hampir
sama
In [17]: plt.subplot(1, 2, 1)
plt.title("Age")
plt.boxplot(dataset['age'])
plt.subplot(1, 2, 2)
plt.title("Blood Glucose")
plt.boxplot(dataset['blood_glucose_level'])
plt.show()
Insight : Pada kolom age tidak terdapat outliers, sedangkan pada kolom
blood_glucose_level ada potensi 3 outliers
Out[18]: <AxesSubplot:>
Insight : Hasil plot korelasi tidak menunjukkan data yang signifikan saling
mempengaruhi
Catatan : Kolom gender dan smoking_history tidak disertakan karena masih bertipe
categorical. Perlu transformasi data menjadi numerik agar bisa dikorelasikan dengan
kolom lainnya