if (!requireNamespace("hexbin", quietly = TRUE)) install.packages("hexbin")
library(ggplot2)
library(dplyr)
library(scales)

data(diamonds, package = "ggplot2")

Ringkasan awal

Laporan ini menyajikan analisis eksplorasi data berlian (diamonds) yang bertujuan untuk memahami hubungan antara karakteristik fisik berlian (berat, potongan, warna, kejernihan) dengan harganya. Dengan menggunakan visualisasi data yang interaktif dan mudah dicerna, kita akan mengidentifikasi pola-pola utama yang dapat membantu calon pembeli, pelaku industri perhiasan, atau siapa pun yang tertarik dalam menentukan nilai suatu berlian. Analisis ini dilakukan dengan pendekatan yang sederhana namun tetap mendalam, sehingga hasilnya dapat langsung dimanfaatkan tanpa perlu latar belakang statistik yang kuat.

1. Konteks Data

Dataset diamonds (paket ggplot2) berisi data komersial tentang berlian yang sering dipakai sebagai dataset contoh pada analisis statistik dan machine learning. Data ini cocok dipakai untuk menjelaskan hubungan antara karakteristik fisik berlian dan harga.

Sumber: paket ggplot2 (dataset bawaan).

2. Data yang Digunakan

Dataset diamonds merupakan data bawaan dari paket ggplot2 di R. Data ini berisi informasi mengenai 53.940 berlian, mencakup :

Variabel Keterangan
carat Berat berlian dalam satuan karat. Semakin besar carat biasanya mempengaruhi harga.
cut Kategori kualitas potongan berlian (Fair, Good, Very Good, Premium, Ideal). Potongan mempengaruhi kilau dan nilai estetika.
color Kode warna berlian (D paling bagus hingga J paling berwarna).
clarity Tingkat kejernihan (inklusi/internal flaws).
depth Persentase kedalaman relatif terhadap ukuran (indikator proporsi potongan).
table Lebar bagian atas berlian (persentase).
price Harga dalam US dollar (variabel target analisis harga).
x, y, z Dimensi fisik berlian: panjang (x), lebar (y), tinggi (z) dalam mm.
head(diamonds, 10)
## # A tibble: 10 × 10
##    carat cut       color clarity depth table price     x     y     z
##    <dbl> <ord>     <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
##  1  0.23 Ideal     E     SI2      61.5    55   326  3.95  3.98  2.43
##  2  0.21 Premium   E     SI1      59.8    61   326  3.89  3.84  2.31
##  3  0.23 Good      E     VS1      56.9    65   327  4.05  4.07  2.31
##  4  0.29 Premium   I     VS2      62.4    58   334  4.2   4.23  2.63
##  5  0.31 Good      J     SI2      63.3    58   335  4.34  4.35  2.75
##  6  0.24 Very Good J     VVS2     62.8    57   336  3.94  3.96  2.48
##  7  0.24 Very Good I     VVS1     62.3    57   336  3.95  3.98  2.47
##  8  0.26 Very Good H     SI1      61.9    55   337  4.07  4.11  2.53
##  9  0.22 Fair      E     VS2      65.1    61   337  3.87  3.78  2.49
## 10  0.23 Very Good H     VS1      59.4    61   338  4     4.05  2.39

Data ini sangat cocok untuk mengeksplorasi hubungan multivariat dan menunjukkan bagaimana visualisasi dapat membantu mengungkap wawasan bisnis.

3. Rencana Analisis

Sebagai seorang data analyst yang menyajikan untuk pembaca umum, berikut pendekatan yang digunakan:

  1. Tampilkan ringkasan data agar pembaca mengenal bentuk data dan skala variabel.
  2. Gunakan visualisasi yang tahan data padat (karena dataset besar ~53.940 baris): geom_hex() dan stat_density_2d() untuk numerik vs numerik.
  3. Bandingkan distribusi harga menurut kategori dengan geom_violin() dan geom_boxplot(); tambahkan warna untuk memudahkan pembacaan.
  4. Sediakan penjelasan singkat untuk tiap grafik dan sisakan ruang interpretasi mendalam agar bisa disesuaikan dengan audiens akhir.

4. Pertanyaan Analisis

  1. Bagaimana kepadatan titik data pada kombinasi carat dan price?
    Tujuan: menemukan rentang carat yang paling umum dan hubungannya dengan rentang harga.

  2. Apakah pola kepadatan berbeda jika kita melihatnya melalui estimasi kepadatan 2D?
    Tujuan: menegaskan area konsentrasi data tanpa menampilkan titik per titik.

  3. Bagaimana sebaran harga (price) di setiap kategori cut?
    Tujuan: memahami variasi internal (mis. rentang, multimodality) pada setiap kategori potongan.

  4. Apakah median dan rentang harga berbeda antar kategori cut?
    Tujuan: memberi gambaran ringkas tentang perbedaan sentral dan dispersi antar kategori.

5. Visualisasi

Hubungan Berat dan Harga (Hexbin Plot)

ggplot(diamonds, aes(carat, price)) +
  geom_hex(bins = 50) +
  scale_fill_gradient(low = "#BBDFFB", high = "#0B3D91", name = "count") +
  labs(
    title = "Kepadatan carat vs price (hexbin)",
    subtitle = "Area gelap menandakan frekuensi observasi yang tinggi",
    x = "Carat",
    y = "Price (USD)"
  ) +
  theme_minimal()

hexbin plot antara carat dan harga kembali menegaskan hubungan antara ukuran berlian dan harga, namun dengan tampilan yang lebih sesuai untuk jumlah data yang sangat besar. Setiap sel heksagon mewakili banyaknya berlian pada kombinasi ukuran dan harga tertentu. Dari grafik ini terlihat dengan jelas bahwa konsentrasi terbesar berlian berada pada carat kecil dan harga yang lebih rendah, sementara semakin besar ukuran berlian, jumlah berlian pada area tersebut semakin berkurang. Pola kenaikan harga seiring bertambahnya carat terlihat konsisten dan stabil di seluruh rentang data. Secara keseluruhan, keempat visualisasi ini memperlihatkan bahwa ukuran berlian memiliki hubungan yang kuat dengan harga, sedangkan kualitas potongan lebih berperan dalam membedakan karakter sebaran harga, tetapi tidak secara langsung menentukan apakah sebuah berlian pasti lebih mahal dibandingkan yang lain.

Estimasi Kepadatan 2D: Menegaskan Zona Konsentrasi

ggplot(diamonds, aes(carat, price)) +
  stat_density_2d(aes(fill = after_stat(level)), geom = "polygon", color = NA, bins = 8, alpha = 0.85) +
  scale_fill_gradient(low = "#BBDFFB", high = "#0B3D91", name = "density") +
  labs(
    title = "Estimasi kepadatan 2D carat vs price",
    subtitle = "Menunjukkan area-area konsentrasi data",
    x = "Carat",
    y = "Price (USD)"
  ) +
  theme_minimal()

grafik kepadatan dua dimensi antara carat dan harga memperlihatkan area dengan warna biru yang lebih gelap sebagai wilayah dengan jumlah berlian yang paling banyak. Dari grafik ini terlihat bahwa sebagian besar berlian berada pada ukuran carat yang relatif kecil dengan harga yang juga relatif lebih rendah. Seiring dengan bertambahnya ukuran berlian, harga cenderung meningkat, namun jumlah berlian pada ukuran yang besar menjadi semakin sedikit. Pola ini menunjukkan bahwa berlian berukuran kecil mendominasi data, sementara berlian berukuran besar dan mahal jumlahnya jauh lebih jarang.

Distribusi Harga Berdasarkan Kualitas Potongan (Violin Plot)

ggplot(diamonds, aes(x = cut, y = price)) +
  geom_violin(fill = "#BBDFFB", color = "#0B3D91", trim = FALSE) +
  labs(
    title = "Sebaran harga berdasarkan kualitas potongan (cut)",
    x = "Cut",
    y = "Price (USD)"
  ) +
  theme_minimal()

violin plot sebaran harga berdasarkan kualitas potongan, memberikan gambaran yang lebih rinci mengenai bagaimana harga tersebar pada setiap kategori cut. Lebar bentuk violin menunjukkan di kisaran harga mana berlian paling banyak ditemukan. Dari grafik ini dapat dilihat bahwa pada seluruh kategori potongan, kepadatan tertinggi berada pada harga rendah hingga menengah. Selain itu, bentuk ekor yang memanjang ke arah harga yang lebih tinggi menunjukkan adanya sebagian kecil berlian dengan harga yang sangat mahal pada setiap kategori cut. Temuan ini menegaskan bahwa meskipun kualitas potongan berbeda-beda, mayoritas berlian tetap terkonsentrasi pada harga yang relatif terjangkau.

Ringkasan Statistik Harga per Potongan (Boxplot)

ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
  geom_boxplot(alpha = 0.75, outlier.size = 0.6) +
  scale_fill_manual(values = c("lightblue","skyblue","steelblue","dodgerblue","darkblue")) +
  labs(
    title = "Perbandingan median dan rentang harga antar kategori cut",
    x = "Cut",
    y = "Price (USD)"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

boxplot distribusi harga berdasarkan kualitas potongan, menunjukkan bahwa setiap kategori potongan (Fair, Good, Very Good, Premium, dan Ideal) memiliki rentang harga yang sangat lebar. Hal ini berarti bahwa pada satu jenis potongan pun, harga berlian dapat sangat bervariasi, mulai dari harga rendah hingga sangat tinggi. Terlihat pula bahwa potongan dengan kualitas terbaik, yaitu Ideal, tidak selalu memiliki harga yang paling tinggi dibandingkan kategori lainnya. Dengan kata lain, kualitas potongan memang berpengaruh, tetapi bukan satu-satunya faktor yang menentukan mahal atau murahnya sebuah berlian.