Pengenalan Exploratory Data Analysis (EDA)

Zahrotul Wakhidah
Amikom Computer Club
9 min readAug 22, 2023

Haloo, sobat AMCC

Tahap penting yang harus dipahami dalam belajar Data Science, yaitu Exploratory Data Analysis (EDA). Yuk simak sampai akhir!

Exploratory Data Analysis (EDA)

Exploratory Data Analysis (EDA) adalah sebuah proses untuk mengenali dan mencari pola pada dataset yang digunakan, proses ini dapat mendeteksi kesalahan sebelum nantinya akan dilakukan proses selanjutnya.

EDA menggunakan teknik visualisasi dan metode statistik agar lebih mudah dalam mencari pola pada dataset. Tidak hanya mencari pola, tetapi melihat hubungan antar data juga dapat dilakukan dalam proses EDA ini.

Tujuan Exploratory Data Analysis (EDA)

Dalam melakukan EDA perlu mengetahui tujuan utama dari tahap ini. Berikut tujuan yang bisa dilakukan pada EDA:

  1. Memahami Data

Ketika memahami data, kita dapat melihat karakteristik datasetnya. Mulai dari struktur data seperti, tipe data, jumlah baris dan kolom, distribusi data, data yang hilang (missing values), outlier, hubungan antar data, dll.

2. Identifikasi Anomali

Anomali berarti keanehan atau penyimpangan. Tahap ini dapat mengidentifikasi nilai-nilai yang tidak wajar dalam data yang dilakukan pengecekan lebih lanjut.

3. Identifikasi Pola dan Tren

Teknik visualisasi dapat membantu pada tahap identifikasi pola dan tren. Visualisasi dapat disesuaikan dengan data atau dengan menampilkan pola atau tren apa yang ingin ditampilkan.

4. Eksplorasi Hubungan

Ketika menggunakan banyak dataset, melakukan eksplorasi hubungan antar variabel dapat dilakukan melalui visualisasi atau perhitungan sederhana seperti korelasi.Menentukan variabel yang penting dan yang tidak memiliki peran penting dalam output juga dapat dilihat dari eksplorasi hubungan ini.

Tahapan ini hanya berhenti pada eksplorasi, mengidentifikasi, mendeteksi, dan mengenal karakteristik pada data. Jika pada tahapan EDA ditemui data yang perlu ditangani, selanjutnya dilakukan tahapan pre-processing data. Dalam implementasi langsung data science, urutan tahapan ini tidak ada aturan baku. Di beberapa sumber juga menyebutkan bahwa tahapan EDA dan pre-processing dapat dilakukan langsung secara bersamaan.

Langkah Tahapan Teknik EDA

  1. Univariate Analysis

Teknik menganalisis data hanya dari satu variabel. Variabel dalam kumpulan dataset mengacu pada satu fitur/kolom. Proses ini dapat dilakukan dengan menganalisis graphics atau non-graphics dengan menggunakan metode statistika.

Dalam univariate analysis dapat mengetahui distribusi data, seperti deteksi outlier.

Jika menggunakan analisis non-graphics, metode berikut dapat diterapkan:

  • Measure of Central Tendency: mean, median, modus
  • Measure of Spread: variabilitas, varian, standar deviasi
  • Measure of Distribution: skewness dan kurtosis

Namun, jika analisis non-graphics tidak dapat menunjukkan informasi yang jelas, dapat menggunakan analisis graphics, jenis visualisasi yang dapat diterapkan sebagai berikut:

  • Box plots → menggambarkan ringkasan lima angka minimum, kuartil pertama, median, kuartil ketiga, dan maksimum
  • Histogram → setiap plot yang mewakili frekuensi (hitungan) atau proporsi (hitungan/jumlah total) kasus untuk rentang nilai

2. Bivariate Analysis

Teknik analisis menggunakan dua variabel dan membandingkannya. Dengan cara ini dapat mengetahui bagaimana satu fitur/kolom dapat memengaruhi fitur lainnya. Analisis non-graphics menggunakan tabulasi silang (cross-tabulation) atau statistik.

Dalam visualisasi graphics Ini dapat dilakukan menggunakan scatter plot, yang memplot titik data individu atau matriks korelasi yang memplot korelasi dalam warna.

Teknik ini dapat juga menggunakan beberapa jenis visualisasi, seperti:

  • Box plots
  • Bar charts
  • Bar plots
  • Heat map
  • Bubble chart

3. Multivariate Analysis

Teknik analisis ini menggunakan lebih dari dua variabel dan membandingkannya. Teknik ini sama dengan bivariate analysis

Ilmu Statistika

Pemahaman ilmu statistika menjadi dasar dalam melakukan tahapan EDA ini. Statistika digunakan untuk menggali wawasan dari data. Statistika merupakan ilmu yang mempelajari bagaimana mengumpulkan data, meringkas data yang telah diperoleh, menyajikan, menganalisis, dan mengambil keputusan berdasarkan hasil analisis data tersebut.

  1. Tipe data

Tipe data: kualitatif (kategorik)

  • Nominal → Data yang tidak dapat diurutkan. Contoh: jenis kelamin, pekerjaan, ras, dll
  • Ordinal → Data yang dapat diurutkan. Contoh: tingkat kepuasan, ukuran benda

Tipe data: kuantitatif (numerik)

  • Interval → Data yang dapat diurutkan dan diukur perbedaan antara nilainya. Namun, perbedaan tersebut tidak dapat diskalakan karena tidak memiliki nilai nol yang absolut. Contoh: nilai ujian, IPK, IQ, dll
  • Rasio → Data yang dapat diurutkan, diukur, dan dibandingkan nilai perbedaannya. Contoh: berat badan, tinggi badan, suhu dalam kelvin, pendapatan, dll.

2. Measure of Central Tendency

Measure of Central Tendency merupakan konsep dalam statistika yang digunakan untuk mengukur nilai pusat atau tengah dari suatu distribusi data.

  • Mean (Rata-rata) merupakan jumlah dari semua nilai dalam dataset dibagi dengan jumlah total nilai.
  • Median (Nilai Tengah) merupakan nilai tengah dalam urutan data setelah diurutkan dari terkecil ke terbesar.
  • Modus merupakan nilai yang paling sering muncul dalam dataset.

3. Measure of Spread

Measure of Spread merupakan sebuah ukuran penyebaran yang digunakan untuk melihat seberapa jauh jarak antara data dengan nilai tengahnya (rata-rata/mean)

  • Varian menggunakan rata-rata kuadrat jarak, sementara standar deviasi merupakan akar dari varian. Kedua ukuran ini sensitif terhadap deteksi outlier karena menggunakan rata-rata dan kuadrat jarak.
  • Kuartil (Quartile) merupakan nilai yang membagi data menjadi 4 bagian. Kuartil ke-1 (Q1) berarti nilai yang membagi 25% pertama, kuartil ke-2 (Q2) membagi 50%, dan kuartil ke-3 (Q3) membagi 75%.
  • Persentil (Percentile) merupakan nilai yang mewakili posisi persentase pada suatu data.
  • Jangkauan (Range) merupakan jarak antara nilai maksimum dan minimum. Jangkauan digunakan untuk mengestimasi seberapa lebar distribusi data.
  • Jangkauan interkuartil (Interquartile Range (IQR)) merupakan jarak antara kuartil pertama dengan ketiga. Sementara, simpangan antar kuartil merupakan

4. Measure of Distribution

Measure of Distribution merupakan konsep dalam statistika yang digunakan untuk mengukur sebaran dari suatu distribusi data.

  • Skewness digunakan untuk mengukur asimetris distribusi. Jika skewness positif, artinya distribusi memiliki ekor panjang di sebelah kanan rata-rata. Jika skewness negatif, artinya distribusi memiliki ekor panjang di sebelah kiri rata-rata.
  • Kurtosis digunakan untuk mengukur seberapa tajam atau datar puncak distribusi dibandingkan dengan distribusi normal. Kurtosis positif berarti distribusi memiliki puncak yang lebih tajam, sedangkan kurtosis negatif berarti distribusi memiliki puncak yang lebih datar.

Pemahaman ilmu statistika ini dapat digunakan sebagai dasar ilmu untuk menganalisis distribusi data yang akan dibahas di bawah

Penerapan EDA pada Dataset

Selanjutnya, mari coba implementasikan EDA pada dataset house_data.csv yang diambil dari kaggle. Sumber dataset bisa sobat AMCC lihat di sini.

Penggunaan library pada project ini menggunakan library numpy, pandas, seaborn, dan matplotlib. Data yang kita gunakan kita load terlebih dahulu agar tampil

Analisis Struktur Data

Membaca dataset dengan file csv. Jika file yang digunakan berbeda, sintaksnya disesuaikan sesuai tipe filenya

Untuk menampilkan data, bisa menampilkan data dari baris atas menggunakan `.head`. Fungsi tersebut akan tampil secara default 5 data

Menampilkan data dari baris bawah menggunakan `.tail`. Fungsi ini sama dengan fungsi `.head`

Setelah 5 sampel data tampil, akan memberikan informasi gambaran isi data yang digunakan. Menampilkan informasi numerik dari data

Menampilkan jumlah baris dan kolom menggunakan fungsi `.shape`

  • Dari dataset house_data.csv terdapat 9600 baris dan 21 kolom
  • Banyaknya kolom yang ada dapat dilakukan analisis lanjut karena tidak semua kolom memiliki pengaruh yang kuat pada output yang diinginkan. Jika kolom memiliki pengaruh atau korelasi rendah, bisa dilakukan drop kolom

Cek tipe data pada setiap kolom/fiturnya menggunakan `.info()`. Selain itu, dapat menampilkan informasi terkait kolom/fiturnya apakah terdapat null atau tidak

Fungsi `.describe` dapat menampilkan informasi statistik, seperti count, mean, std, min, q1, q2, q3, dan max.

Tahap pengecekan apakah ada nilai yang hilang (missing values) atau tidak dalam dataset.

  • Nilai true berarti terdapat nilai null atau hilang
  • Nilai false berarti tidak ada data yang null atau hilang

Untuk lebih memudahkan analisis melihat ada berapa banyak nilai yang hilang atau null, menambahkan fungsi `.sum` untuk melihat

Selanjutnya, tahapan analisis korelasi antar variabel. Tujuan dari tahapan ini untuk melihat korelasi dari 2 variabel apakah memiliki korelasi yang kuat atau tidak.

  • Nilai 0 berarti tidak memiliki korelasi
  • Nilai positif memiliki korelasi. Semakin tinggi nilai positif berarti semakin kuat korelasinya. Ketika salah satu variabel meningkat, nilai variabel lainnya akan meningkat juga.
  • Nilai negatif memiliki korelasi, tetapi berlawanan. Ketika salah satu variabel meningkat, nilai variabel lainnya akan menurun

Mulai tahapan untuk melihat korelasi pada setiap variabelnya atau kolom/fitur menggunakan `.corr()`

Hanya dengan menggunakan bantuan library pandas, `.corr()` dapat menampilkan korelasi antar variabel. Namun, untuk memudahkan kita dalam analisis, dapat memanfaat library seaborn yang sudah kita import untuk visualisasi

Setelah divisualisasikan dapat lebih mudah dipahami. Warna gelap merepresentasikan korelasi positif yang kuat, sementara warna yang semakin terang merepresentasikan korelasi negatif yang berarti semakin rendah korelasinya.

Fitur/kolom yang digunakan pada dataset ini berjumlah 21 kolom, dari banyaknya fitur/kolom tersebut kita dapat menggunakan fitur/kolom yang berkorelasi kuat dengan data target sesuai output yang kita butuhkan. Jadi, fitur/kolom yang memiliki korelasi rendah bisa kita hilangkan agar tidak mempengaruhi output

Analisis Distribusi Data

Memahami distribusi data adalah langkah penting dalam analisis data karena dapat memberikan wawasan tentang pola, karakteristik, dan anomali dalam data.

Distribusi data yang baik adalah distribusi data yang normal. Distribusi normal dapat membantu prediksi yang lebih akurat dan terpercaya pada model machine learning nanti.

Untuk melihat distribusi data, kita dapat menggunakan histogram. Tampilan gambar di atas merupakan distribusi data dari variabel atau fitur/kolom seperti price, bedrooms, bathrooms, sqft_living, floors, condition, grade, yr_built, dan yr_renovated.

Histogram digunakan untuk memvisualisasikan distribusi data numerik atau kontinu, seperti variabel `price` dapat menampilkan visualisasi yang mudah dibaca.

Lalu, kenapa saat cek distribusi data di atas terlihat ada data yang menyebar? Karena data-data tersebut karakteristik datanya kategorik. Sehingga, visualisasi menggunakan histogram tidak cocok dengan karakteristik data kategorikal. Untuk data kategorikal, sebaiknya menggunakan bar plot atau count plot

Variabel atau fitur/kolom di atas menggunakan visualisasi count plot. Ketika pemilihan visualisasi sesuai, analisis akan lebih mudah digunakan.

Selanjutnya, kita coba visualisasikan sebaran data menggunakan box plot. Sebelum mulai menganalisis menggunakan visualisasi box plot, sobat AMCC perlu tahu dulu teori atau dasar analisisnya, seperti pada ilustrasi berikut:

Box plot biasanya digunakan dalam analisis outlier. Outlier merupakan data ekstrim atau pencilan yang merujuk pada nilai-nilai yang signifikan yang berbeda jauh dari pusat nilai dalam suatu dataset.

Outlier yang dimaksud dari ilustrasi di atas berada di sebelah kiri dengan Q1–1.5 * IQR dan sebelah kanan dengan Q3–1.5 * IQR. Untuk penjelasan statistik dari tulisan ilustrasi, sudah kita bahas di bagian ilmu statistika di atas.

Sekarang, kita coba terapkan visualisasi box plot pada variabel atau fitur/kolom `price`

Hasil visualisasi-nya terlihat terdapat outlier. Penanganan outlier bisa dilakukan dengan berbagai metode. Namun, pada pengenalan EDA ini tidak akan dibahas mengenai cara menangani outlier.

Kesimpulan

Kesimpulan pembahasan Exploratory Data Analysis (EDA), dengan melakukan tahapan EDA dengan baik, kita dapat memahami karakteristik data dengan lebih baik dan menghasilkan hasil analisis yang lebih akurat dan signifikan. Setelah tahapan ini selesai, data siap dilakukan proses selanjutnya untuk mempersiapkan pembersihan data sebelum ke tahap modeling.

--

--