Episode ini memandu kalian melakukan EDA (exploratory data analysis) yang terstruktur: analisis univariat dan bivariat, korelasi antar variabel, distribusi tiap kolom, sampai menyusun laporan EDA singkat yang layak diserahkan ke stakeholder

Data di episode 7 sudah bersih. Sekarang saatnya membiarkan data berbicara. EDA (exploratory data analysis) adalah proses menyelidiki data untuk menemukan pola, anomali, dan hubungan sebelum menarik kesimpulan formal. Ia adalah jantung pekerjaan analis: di sinilah insight ditemukan — bukan di dashboard, bukan di presentasi.
Episode ini membangun EDA terstruktur: mulai dari analisis univariat (satu variabel), lalu bivariat (dua variabel), korelasi, hingga menyusun laporan EDA singkat. Tujuannya bukan sekadar tahu fungsi pandas, melainkan punya kerangka berpikir yang sama untuk dataset apa pun.
Analisis univariat meneliti satu variabel sekaligus. Untuk variabel numerik, kita melihat distribusi dan ringkasan statistik:
import pandas as pd
df = pd.read_csv("purchase_clean.csv")
print(df["harga"].describe())
print("skew:", df["harga"].skew().round(2))Untuk variabel kategorikal, kita melihat frekuensi dan proporsi:
print(df["product"].value_counts())
print(df["product"].value_counts(normalize=True).round(3) * 100)Dua pertanyaan yang selalu dijawab analisis univariat: seperti apa sebarannya? dan apakah ada anomali? Anomali bisa berupa nilai yang tidak masuk akal, kategori yang hampir kosong, atau distribusi yang mencurigakan.
Setiap kolom punya cerita yang terbaca dari bentuk distribusinya:
| Bentuk | Arti | Implikasi analisis |
|---|---|---|
| Simetris (normal) | Mayoritas nilai di tengah | Mean bisa dipercaya |
| Right-skewed | Ekor panjang ke nilai besar | Median lebih mewakili |
| Bimodal | Dua puncak | Kemungkinan ada dua segmen tersembunyi |
| Uniform | Semua nilai merata | Tidak ada "nilai tipikal" |
Distribusi bimodal sering menjadi petunjuk emas: jika harga berbimodal, kemungkinan bisnis menjual dua tipe produk yang sangat berbeda (consumer vs enterprise). Mengecek distribusi bukan formalitas — ia adalah pemburu insight.
Analisis bivariat mencari hubungan dua variabel. Untuk dua variabel numerik, gunakan scatter dan korelasi:
print(df["harga"].corr(df["quantity"]))Untuk numerik vs kategorikal, bandingkan distribusi antar kategori:
df.groupby("product")["harga"].agg(["mean", "median", "count"])Untuk dua variabel kategorikal, gunakan contingency table (crosstab):
pd.crosstab(df["product"], df["status"], normalize="index").round(2)Crosstab menjawab pertanyaan seperti "produk mana yang paling mungkin di-refund?" — pola yang tidak terlihat jika melihat tiap kolom terpisah.
Tip
Urutan analisis yang disarankan: mulailah dari univariat (kenali tiap kolom), lalu bivariat (hubungan antar kolom), baru kemudian multivariate. Jangan melompat ke model atau dashboard sebelum tiga lapis ini dipahami.
Korelasi Pearson mengukur hubungan linear antara dua variabel, bernilai dari -1 sampai 1:
| Nilai | Makna |
|---|---|
| ~1 | Hubungan positif kuat: satu naik, lainnya naik |
| ~-1 | Hubungan negatif kuat: satu naik, lainnya turun |
| ~0 | Tidak ada hubungan linear |
print(df[["harga", "quantity", "total"]].corr().round(2))Tiga peringatan penting tentang korelasi:
Ketika dua variabel tidak cukup, tambahkan dimensi ketiga:
df.groupby(["product", "status"])["harga"].agg(["mean", "count"]).round(2)Pola yang tidak terlihat dalam dua dimensi sering muncul saat dimensi ketiga ditambahkan — misal: "harga rata-rata per produk sebenarnya wajar, tetapi produk A dengan status refund mendominasi nilai ekstrem." Inilah yang membedakan eksplorasi permukaan dari analisis sungguhan.
Laporan EDA yang baik tidak menceritakan semua yang kalian lihat — ia menyoroti yang penting. Struktur standar:
1. Ringkasan Eksekutif — 2-3 kalimat: apa temuan utama
2. Data & Kualitas — ukuran, kolom, isu yang ditemukan & ditangani
3. Temuan Utama — 3-5 insight terkuat (masing-masing 1 paragraf)
4. Risiko & Batasan — apa yang tidak bisa disimpulkan dari data ini
5. Pertanyaan Lanjutan — hipotesis yang pantas ditindaklanjutiContoh temuan yang ditulis dengan baik: "Rata-rata harga order naik 40% sejak Q3, tetapi median hampir tidak berubah — kenaikan didorong segelintir order enterprise, bukan perubahan harga rata-rata pelanggan." Kalimat ini menyampaikan insight, bukti, dan nuansa sekaligus.
Inti yang harus dibawa pulang:
Di episode 9 selanjutnya kita akan memvisualisasikan temuan-temuan EDA ini — matplotlib dan seaborn untuk line, bar, scatter, histogram, dan heatmap, plus prinsip-prinsip chart dan cara menghindari visualisasi yang menyesatkan. Data sudah berbicara; sekarang kita ajarkan data untuk bercerita!