Dalam dunia data science, visualisasi data merupakan langkah awal yang sangat penting untuk memahami pola yang tersembunyi di dalam data. Sebelum membangun model atau melakukan perhitungan statistik lanjutan, seorang analis perlu terlebih dahulu “melihat” bagaimana variabel-variabel saling berhubungan. Pendekatan ini dikenal sebagai bagian dari Exploratory Data Analysis (EDA), yaitu proses eksplorasi awal untuk menemukan pola, tren, maupun kejanggalan dalam data.
Pada laporan ini, analisis difokuskan pada hubungan antar variabel
dalam dataset diamonds, yaitu kumpulan data yang berisi
informasi karakteristik fisik dan kualitas berlian beserta harganya.
Analisis dilakukan dari sudut pandang seorang data scientist yang
bertugas menyajikan insight secara jelas, ringkas, dan mudah dipahami,
khususnya bagi pembaca non-teknis.
Tujuan utama eksplorasi ini adalah memahami faktor-faktor apa saja yang berkaitan dengan harga berlian. Secara khusus, analisis akan meninjau bagaimana berat berlian, kualitas potongan, serta tingkat kejernihan berasosiasi dengan harga. Untuk itu digunakan beberapa teknik visualisasi bivariat yang dipilih sesuai dengan tipe data dan tujuan analitis masing-masing.
Variabel yang digunakan dalam analisis ini antara lain:
carat: menunjukkan berat berlian.
Dalam praktik perhiasan, carat adalah satuan berat (1 carat = 200
miligram). Secara umum, semakin besar nilai carat, semakin besar ukuran
fisik berlian yang terlihat. Dari sisi ekonomi, carat sering menjadi
faktor utama yang mendorong kenaikan harga.price: harga berlian dalam dolar AS,
yang menjadi fokus utama analisis ini.cut: menggambarkan kualitas potongan
berlian, yaitu seberapa baik berlian tersebut dibentuk oleh pengrajin.
Potongan yang baik membantu berlian memantulkan cahaya lebih optimal
sehingga terlihat lebih berkilau. Urutan kualitas potongan dari yang
terendah hingga tertinggi adalah Fair (cukup),
Good (baik), Very Good (sangat baik),
Premium (premium), dan Ideal
(ideal).clarity: menunjukkan tingkat
kejernihan berlian, yaitu seberapa jernih tampilan bagian dalam batu
ketika dilihat dengan pembesaran standar. Tingkat kejernihan berlian
dari yang paling rendah hingga paling tinggi dapat dijelaskan sebagai
berikut. I1 menunjukkan berlian dengan banyak cacat
yang mudah terlihat. SI2 menunjukkan berlian dengan
cacat kecil yang masih dapat terlihat. SI1 menunjukkan
berlian dengan cacat kecil namun sedikit lebih sulit terlihat dibanding
SI2. VS2 menunjukkan berlian dengan cacat sangat kecil
yang cukup sulit terlihat. VS1 menunjukkan berlian
dengan cacat sangat kecil dan lebih sulit terlihat dibanding VS2.
VVS2 menunjukkan berlian dengan cacat yang
sangat-sangat kecil dan hampir tidak terlihat. VVS1
menunjukkan berlian dengan cacat yang sangat-sangat kecil dan makin
sulit terlihat. Sementara itu, IF menunjukkan berlian
yang tidak terlihat memiliki cacat di bagian dalam. Berlian dengan
clarity tinggi biasanya dihargai lebih mahal.depth: Depth adalah persentase yang
menunjukkan perbandingan antara tinggi dan lebar berlian, yang
menggambarkan apakah bentuk berlian cenderung pipih atau cukup tinggi
(berisi/tebal) jika dilihat dari samping.Melalui kombinasi beberapa visualisasi, yaitu scatter plot, boxplot, bubble plot, dan hexbin plot, laporan ini berupaya memberikan gambaran yang lebih utuh tentang bagaimana karakteristik berlian berkaitan dengan harga. Analisis seperti ini tidak hanya berguna dalam konteks akademik, tetapi juga relevan secara praktis. Bagi pelaku bisnis perhiasan, pemahaman terhadap faktor yang paling memengaruhi harga dapat membantu dalam penentuan strategi penjualan, penilaian produk, maupun segmentasi pasar. Dengan kata lain, visualisasi data di sini berfungsi bukan sekadar untuk dilihat, tetapi untuk membantu pengambilan keputusan yang berbasis data.
Mengapa scatter plot?
Scatter plot adalah grafik yang menampilkan setiap berlian sebagai satu
titik. Sumbu x menunjukkan berat (‘carat’), sumbu y menunjukkan harga.
Dengan melihat sebaran titik, kita bisa tahu apakah berat mempengaruhi
harga.
Terdapat juga garis merah pada scatter plot ini. Garis tersebut adalah garis smoothed (dalam statistik disebut smoothing curve atau trend line) yang menunjukkan tren rata-rata harga. . Garis ini fleksibel mengikuti pola data tanpa dipaksa linear, sehingga dapat memperlihatkan tren rata-rata harga pada setiap nilai carat.
ggplot(diamonds, aes(x = carat, y = price)) +
geom_point(alpha = 0.1, size = 0.8, color = "steelblue") +
geom_smooth(method = "gam", formula = y ~ s(x, bs = "cs"), color = "darkred", se = FALSE) +
labs(
title = "Hubungan Berat Berlian dengan Harga Berlian",
x = "Berat (carat)",
y = "Harga (USD)"
) +
theme_minimal()Makna Grafik:
Pada visualisasi pertama, kita melihat sebuah grafik sebaran (scatter
plot) yang memetakan posisi setiap berlian berdasarkan berat karat pada
sumbu horizontal (bawah) dan harga pada sumbu vertikal (samping). Garis
merah tebal yang melintasi kumpulan titik tersebut berfungsi sebagai
garis rata-rata atau tren hubungan. Secara cepat, kita dapat melihat
bahwa garis tersebut bergerak naik, yang mengonfirmasi bahwa rata-rata
harga meningkat seiring bertambahnya berat. Namun, jika diperhatikan
lebih saksama, hubungan ini tidak bersifat linear atau lurus sempurna,
melainkan cenderung melengkung dan mengalami fluktuasi pada titik-titik
karat tertentu. penyebaran titik-titik di sekitarnya.
Hal penting lainnya, yang dapat kita cermati adalah penyebaran titik titik di sekitar garis tersebut. Pada area berat 0 hingga 1 karat, titik-titik tersebut mengumpul sangat rapat di sekitar garis merah, yang berarti harga berlian kecil sangat konsisten dan dapat diprediksi hanya dengan melihat beratnya. Namun, perhatikan apa yang terjadi saat berat berlian masuk ke angka 2 hingga 3 karat, sebaran titik tersebut melebar secara vertikal dengan sangat ekstrem. Di satu titik berat yang sama (misalnya tepat di angka 2), terdapat berlian yang harganya berada di kisaran 5.000 USD, namun ada juga yang mencapai hampir 19.000 USD. Hal ini menunjukkan, bahwa berat bukanlah satu satunya hal yang menentukan harga jual berlian.
Mengapa boxplot?
cut adalah variabel kategorik dengan tingkatan: Fair, Good,
Very Good, Premium, Ideal. Perlu diketahui bahwa urutan kualitas dari
yang terendah ke tertinggi adalah: Fair (cukup),
Good (baik), Very Good (sangat baik),
Premium (premium), dan Ideal (ideal).
Untuk membandingkan distribusi harga antar kategori, boxplot sangat
tepat karena menampilkan ringkasan lima angka (minimum, kuartil bawah,
median, kuartil atas, maksimum) sekaligus memperlihatkan outlier tiap
kelompok. Dengan demikian kita bisa melihat apakah potongan yang lebih
baik selalu dihargai lebih mahal.
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
geom_boxplot(alpha = 0.7, outlier.size = 0.5) +
labs(
title = "Distribusi Harga Berdasarkan Kualitas Potongan",
x = "Kualitas Potongan",
y = "Harga (USD)"
) +
theme_minimal() +
theme(legend.position = "none")Makna Grafik:
Secara sosial-ekonomi, potongan yang lebih baik (Premium, Ideal)
seharusnya dijual lebih mahal. Namun boxplot menunjukkan bahwa median
harga kelima kategori hampir sama, bahkan Fair (kualitas
terendah) memiliki median sedikit di atas Ideal. Dapat kita
lihat juga, bahwa rentang harga di setiap kategori sangat lebar. Fair
memiliki harga dari 3.000 hingga 18.000 dollar, sementara Ideal dari 500
hingga 18.000 dollar. Artinya, di setiap kategori ada berlian yang
sangat murah dan ada pula yang sangat mahal. Keberadaan outlier mahal di
kategori Fair kemungkinan besar disebabkan oleh faktor berat. Bisa jadi
berlian Fair yang mahal itu adalah berlian berukuran besar, sehingga
harganya terdongkrak meskipun potongannya biasa. Dengan demikian,
boxplot di atas menunjukkan bahwa kualitas potongan yang baik tidak
selalu dihargai lebih mahal dan variabel berat memberikan pengaruh lebih
besar terhadap harga berlian dibandingkan dengan variabel
cut.
Mengapa bubble plot dengan facet?
Bubble plot adalah pengembangan dari scatter plot yang memungkinkan kita
menampilkan tiga variabel sekaligus. Di sini, kita ingin melihat apakah
tingkat kejernihan (clarity) dan kedalaman
(depth) ikut memengaruhi harga pada berat yang sama. Namun,
karena jumlah data sangat banyak (54.000 titik), jika semua titik
digambar dalam satu plot, akan terjadi tumpang tindih parah sehingga
pola perbedaan antar tingkat kejernihan sulit diamati. Oleh karena itu,
kita memisahkan data berdasarkan tingkat kejernihan ke dalam panel-panel
kecil (facet). Dengan cara ini, setiap panel hanya menampilkan satu
tingkat clarity, sehingga hubungan antara berat dan harga
dapat dibandingkan antar tingkat kejernihan tanpa saling tumpang
tindih.
carat)price)depth), yakni semakin besar ukuran bubble, semakin dalam
berlian (depth besar), sebaliknya bubble kecil berarti depth kecil
(berlian lebih pipih).clarity), dari terendah (I1) hingga tertinggi (IF). Dengan
demikian, clarity ditunjukkan oleh pemisahan panel.ggplot(diamonds, aes(x = carat, y = price, size = depth)) +
geom_point(alpha = 0.2, color = "steelblue") +
scale_size_continuous(range = c(1, 4)) +
facet_wrap(~ clarity, ncol = 4) + # 8 panel untuk 8 tingkat clarity
labs(
title = "Pengaruh Kejernihan dan Kedalaman terhadap Hubungan Berat dan Harga",
subtitle = "Setiap panel menunjukkan tingkat kejernihan (clarity) yang berbeda.
Ukuran bubble menunjukkan kedalaman (depth).",
x = "Berat (carat)",
y = "Harga (USD)",
size = "Kedalaman (%)"
) +
theme_minimal() +
theme(strip.background = element_rect(fill = "#f0f0f0"))Makna Grafik:
Grafik ini terdiri dari delapan panel kecil yang masing-masing mewakili
satu tingkat kejernihan berlian, dari I1 (terendah) yang berada di pojok
kiri atas hingga IF (tertinggi) yang berada di pojok kanan atas. Dalam
setiap panel, sumbu mendatar menunjukkan berat berlian dalam satuan
carat, sedangkan sumbu tegak menunjukkan harga dalam dolar AS. Ukuran
bubble atau titik menggambarkan kedalaman berlian (‘depth’).
Secara umum, di semua panel terlihat pola yang sama. Semakin berat berlian, harganya cenderung naik. Hal ini terlihat dari sebaran titik yang bergerak ke kanan atas di setiap panel. Namun, ketika kita membandingkan antar panel, terlihat perbedaan dalam sebaran harga pada rentang berat yang sama.
Pada panel dengan kejernihan tinggi seperti IF, VVS1, dan VVS2, titik-titik tampak lebih banyak tersebar hingga ke area harga yang lebih tinggi, bahkan pada berat yang relatif kecil sekalipun. Misalnya, pada berat sekitar 1 carat, panel-panel ini menunjukkan titik-titik yang mencapai harga di atas 5.000 hingga 10.000 dollar dengan frekuensi yang cukup banyak.
Pada panel dengan kejernihan rendah seperti I1 dan SI2, sebaran titik lebih terkonsentrasi di area harga menengah ke bawah untuk berat yang sama. Namun perlu dicatat bahwa panel SI2 juga menunjukkan adanya titik-titik yang mencapai harga tinggi, terutama pada berat di atas 2 carat. Jadi, pada kejernihan rendah pun berlian besar tetap bisa mahal. Yang membedakan adalah pada kejernihan tinggi, berlian dengan harga mahal sudah mulai muncul bahkan sejak berat masih rendah. Dengan kata lain, kejernihan tinggi membuat berlian lebih mungkin dibanderol mahal meskipun ukurannya tidak terlalu besar.
Sementara itu, ukuran titik yang bervariasi menunjukkan perbedaan kedalaman antar berlian. Sebagian besar titik berukuran sedang, yang menandakan bahwa kebanyakan berlian memiliki kedalaman di kisaran ideal (60%). Tidak terlihat pola yang jelas bahwa ukuran titik yang lebih besar atau lebih kecil selalu berada di area harga tertentu. Hal ini menunjukkan bahwa kedalaman tidak memiliki pengaruh yang konsisten terhadap harga dibandingkan berat atau kejernihan.
Dengan menggunakan panel, kita bisa melihat dengan jelas bahwa pengaruh kejernihan terhadap harga merupakan faktor penting kedua setelah berat dalam menentukan harga berlian.
Mengapa hexbin plot?
Untuk melihat struktur kepadatan data secara lebih terstruktur, hexbin
plot adalah jalan yang sangat baik. Hexbin plot membagi bidang menjadi
ribuan sel berbentuk heksagon, lalu menghitung berapa banyak titik yang
jatuh di dalam setiap sel. Warna sel kemudian menunjukkan frekuensi atau
kepadatan data di area tersebut. Sel dengan jumlah titik yang banyak
diwarnai lebih gelap, sedangkan jika titiknya sedikit diwarnai lebih
terang. Dengan demikian, kita dapat melihat di mana konsentrasi data
tertinggi berada, atau pusat massa hubungan antara carat dan price.
ggplot(diamonds, aes(x = carat, y = price)) +
geom_hex(bins = 50) +
scale_fill_gradient(low = "lightblue", high = "darkblue", trans = "log") +
labs(
title = "Kepadatan Hubungan Berat dan Harga",
x = "Berat (carat)",
y = "Harga (USD)",
fill = "Jumlah\nBerlian"
) +
theme_minimal()Makna Grafik:
Warna biru tua pada hexbin plot di atas menunjukkan area dengan
konsentrasi data tertinggi, sedangkan warna biru muda menunjukkan area
yang jarang (konsentrasi lebih rendah).
Terlihat bahwa sebagian besar berlian terkumpul di wilayah berat kurang dari 1,5 carat dan harga di bawah 5.000 dollar. Ini berarti pasar didominasi oleh berlian berukuran kecil hingga sedang dengan harga terjangkau. Semakin ke kanan (berat bertambah) dan ke atas (harga naik), warna sel semakin terang, yang menandakan bahwa jumlah berlian semakin sedikit. Dengan kata lain, berlian besar dan mahal sangat jarang ditemukan.
Pola sebaran menunjukkan hubungan positif antara berat dan harga, namun dengan variasi yang besar. Tidak terlihat bentuk kurva yang jelas dari grafik di atas. Data cenderung memusat di sudut kiri bawah dan menyebar ke kanan atas. Hal ini mengindikasikan bahwa semakin berat berlian, harganya cenderung naik.
Dari keempat visualisasi yang telah dianalisis di atas, dapat ditarik
beberapa kesimpulan. Pertama, berat berlian (carat)
merupakan faktor paling dominan dalam menentukan harga. Scatter plot dan
hexbin plot sama-sama menunjukkan bahwa semakin berat berlian, harganya
cenderung naik. Namun, perlu dicatat bahwa kenaikan tersebut tidak
selalu linier dan bervariasi, terutama pada berlian berukuran besar yang
menunjukkan rentang harga yang lebih lebar.
Kedua, kualitas potongan (cut) tidak secara langsung
menentukan mahal atau murahnya suatu berlian. Boxplot memperlihatkan
bahwa median harga antar kategori potongan relatif sama, bahkan potongan
terendah (Fair) memiliki median sedikit di atas potongan
tertinggi (Ideal). Hal ini menegaskan bahwa faktor berat
lebih berpengaruh dibandingkan potongan, dan berlian besar dengan
potongan biasa pun bisa sangat mahal.
Ketiga, kejernihan (clarity) memberikan nilai tambah
yang cukup berarti. Dari bubble plot terlihat bahwa pada kejernihan
tinggi, berlian dengan harga mahal sudah mulai muncul bahkan sejak berat
masih rendah. Sementara pada kejernihan rendah, harga mahal baru
terlihat setelah berat mencapai ukuran besar. Dengan kata lain,
kejernihan tinggi membuat berlian lebih mungkin dibanderol mahal
meskipun ukurannya tidak terlalu besar.
Keempat, kedalaman (depth) tidak menunjukkan pola
pengaruh yang konsisten terhadap harga. Sebaran ukuran bubble relatif
merata dan tidak berkaitan erat dengan tinggi rendahnya harga. Ini
mengindikasikan bahwa kedalaman bukanlah faktor utama penentu harga.
Terakhir, hexbin plot mengonfirmasi bahwa sebagian besar berlian yang diperdagangkan berada di kisaran berat kecil hingga sedang dengan harga terjangkau, sedangkan berlian besar dan mahal sangat jarang ditemukan. Hal ini mencerminkan struktur pasar yang didominasi produk menengah ke bawah.
Secara praktis, pemahaman ini dapat membantu pelaku bisnis perhiasan dalam menentukan strategi harga, misalnya dengan memberikan bobot utama pada berat, namun tetap mempertimbangkan kejernihan sebagai faktor pembeda nilai. Analisis visual sederhana ini membuktikan bahwa eksplorasi data sebelum pemodelan statistik sangat penting untuk menghindari kesimpulan yang keliru.