Central Tendency

Assignment ~ Week 6

Logo


1 Pengertian

Central Tendency adalah ukuran dari statistik yang mempresentasikan nilai tipikal atau sentral dari suatu kumpulan data. Ada tiga ukuran Central Tendency, antara lain adalah Mean, Median, dan Modus. Central Tendency berfungsi untuk membuat ringkasan dari informasi yang diterima dengan kompleks menjadi ringkasan singkat yang berfungsi untuk memudahkan mendeteksi pola, membaca grafik pola, mendeskripsikan distribusi, dan meletakkan dasar untuk analisa yang mendalam.

1.1 Mean (Rata-rata)

Mean jumlah semua nilai data dibagi dengan banyaknya data. cocok untuk data yang terdistribusi secara simetris dan tidak memiliki nilai ekstrem (outlier).

1.2 Median (Nilai Tengah)

Median adalah nilai yang berada tepat di tengah dataset yang telah diurutkan. Median tidak terpengaruh oleh outlier, sehingga menjadi ukuran yang lebih baik untuk data yang miring (skewed) atau memiliki outlier.

1.3 Modus (Mode)

Modus (Mode) Nilai yang paling sering muncul dalam dataset.

Aturan Kondisional (Conditional Rule) Sederhana:

  • Jika data numerik bersifat simetris dan tanpa outlier: Gunakan Mean. Median juga bisa digunakan karena nilainya akan sangat dekat dengan Mean.
  • Jika data numerik bersifat miring (skewed) atau memiliki outlier: Gunakan Median karena lebih robust (tahan) terhadap nilai ekstrem.
  • Jika data bersifat kategorikal: Gunakan Modus.

2 Data Mentah (Raw Data)

Data berikut adalah data mentah karena belum diolah, data berikut berisi tentang Customer Purchase Data. Terdapat data mentah yang meliputi hal berikut:

  • CustomerID → identitas pelanggan.
  • Age → usia pelanggan.
  • Gender → jenis kelamin pelanggan (M/F).
  • StoreLocation → lokasi toko (North, South, East, West).
  • ProductCategory → kategori produk yang dibeli.
  • TotalPurchase → total pembelian dalam satuan tertentu (misalnya dolar atau ribuan rupiah).
  • NumberOfVisits → jumlah kunjungan pelanggan ke toko.
  • FeedbackScore → penilaian pelanggan terhadap pengalaman belanja (skala 1–5).
# Simpan nama file
file_path <- "4 Central Tendency – Introduction to Statistics.csv"
data <- read_csv(file_path)

if ("...1" %in% names(data)) {
data <- data |> select(-...1)
}
datatable(
data,
caption = htmltools::tags$caption(
style = 'caption-side: top; text-align: center; font-weight: bold; font-size: 16px; color: #2C3E50;',
'Customer Purchase Data'
),
rownames = FALSE,
options = list(
pageLength = 10,
autoWidth = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
initComplete = JS(
"function(settings, json) {",
"$(this.api().table().header()).css({'background-color': '#2C3E50', 'color': '#fff'});",
"}"
)
)
)

3 Proses Pengolahan Data

3.1 KDE dan Histogram

Terdapat 2 gabungan plot yang memiliki fungsi untuk menganalisis bentuk distribusi data TotalPurchase dan membandingkan letak Mean dan Median.

  • Histogram: Berfungsi untuk menunjukkan frekuensi data dalam rentang (bins) tertentu. Ini memberikan gambaran kasar tentang di mana data paling banyak terkumpul.

  • KDE Plot (Garis Merah): Ini adalah versi yang diperhalus (smoothed) dari histogram. Fungsinya adalah untuk memperjelas bentuk distribusi data. Judul plot “Distribusi Bimodal”, yang berarti garis KDE ini kemungkinan besar menunjukkan dua puncak (modes), yang mengindikasikan ada dua kelompok pembelian yang dominan.

  • Garis Mean & Median: Fungsinya adalah untuk secara visual membandingkan kedua ukuran tendensi sentral. Jika data miring (skewed), garis Mean akan “tertarik” ke arah ekor (outlier), sementara Median akan tetap berada di tengah. Jika Mean dan Median berdekatan, data cenderung simetris.

mean_purchase <- mean(data$TotalPurchase, na.rm = TRUE)
median_purchase <- median(data$TotalPurchase, na.rm = TRUE)

hist_kde_plot <- ggplot(data, aes(x = TotalPurchase)) +
  geom_histogram(aes(y = ..density..), bins = 30, fill = "skyblue", color = "white", alpha = 0.7) +
  geom_density(color = "red", size = 1) +

  # Garis Mean dan Median
  geom_vline(xintercept = mean_purchase, color = "green", linetype = "dashed", size = 1) +
  geom_vline(xintercept = median_purchase, color = "orange", linetype = "solid", size = 1) +

  # Tambahkan teks keterangan di pojok kanan atas
  annotate("text", x = Inf, y = Inf, 
           label = "Mean = Hijau\nMedian = Orange\nKDE = Merah",
           hjust = 1.1, vjust = 1.5,   # Atur jarak dari tepi kanan atas
           color = "black", size = 4, fontface = "bold") +

  labs(
    title = "Histogram & KDE dari TotalPurchase (Distribusi Bimodal)",
    x = "Total Purchase",
    y = "Kepadatan (Density)"
  ) +
  theme_minimal()

# Simpan plot
ggsave("r_histogram_kde_keterangan.png", plot = hist_kde_plot, width = 8, height = 5)
hist_kde_plot

3.2 Box Plot

Visualisasi ini menggunakan Box Plot untuk merangkum distribusi data TotalPurchase. Plot ini menampilkan ringkasan lima angka dari data (minimum, kuartil pertam / Q1, median / Q2, kuartil ketiga / Q3, dan maksimum). Fungsi utama Box Plot dalam analisis ini adalah:

  • Mengidentifikasi Outlier (Nilai Ekstrem): Ini adalah fungsi utamanya. Titik-titik data yang berada di luar “paar” (whiskers) plot (ditandai sebagai titik merah dalam kode Anda) dianggap sebagai outlier.

  • Melihat Sebaran Data: Kotak (box) itu sendiri mewakili Interquartile Range (IQR), yaitu 50% data di bagian tengah. Ini menunjukkan seberapa tersebar atau terpusatnya mayoritas data.

  • Mengetahui Median: Garis tebal di dalam kotak adalah Median (nilai tengah) dari TotalPurchase.

# Membuat Box Plot dengan ggplot2
ggplot(data, aes(x = "", y = TotalPurchase)) + # Gunakan x = "" untuk satu box plot
  geom_boxplot(fill = "lightgreen", color = "black", outlier.colour = "red") +
  labs(title = "Box Plot dari Total Pembelian (Vertikal)",
       y = "Total Pembelian",
       x = "") +  # kosongkan label sumbu x
  theme_minimal() +
  theme(axis.text.x = element_blank(),  # Sembunyikan teks di sumbu x
        axis.ticks.x = element_blank()) # Sembunyikan garis centang di sumbu x

3.3 Bar Chart

Visualisasi ini beralih dari data numerik ke data kategorikal.Menggunakan Bar Chart (Grafik Batang) untuk menghitung dan menampilkan jumlah data untuk setiap ProductCategory.

Fungsi utama dari Bar Chart ini adalah:

  • Membandingkan Frekuensi Kategori: Memudahkan kita untuk melihat secara visual kategori produk mana yang paling banyak dibeli dan mana yang paling sedikit.
  • Menemukan Modus (Mode): Karena data ini bersifat kategorikal, Bar Chart adalah cara terbaik untuk menemukan Modus (nilai yang paling sering muncul). Batang tertinggi pada grafik mewakili Modus dari ProductCategory.
  • Menampilkan Jumlah Pasti: Menambahkan label angka di atas setiap batang, yang berfungsi untuk menunjukkan jumlah pasti (count) dari setiap kategori tanpa perlu menerka-nerka dari sumbu Y.
# Membuat Bar Chart dengan ggplot2
ggplot(data, aes(x = fct_infreq(ProductCategory))) + # fct_infreq mengurutkan bar dari yang paling sering
  geom_bar(fill = "coral") +
  geom_text(stat='count', aes(label=..count..), vjust=-0.5) + # Menambahkan label jumlah di atas bar
  labs(title = "Jumlah Pembelian Berdasarkan Kategori Produk",
       x = "Kategori Produk",
       y = "Jumlah") +
  theme_minimal()

4 Kesimpulan dan Solusi

4.1 Kesimpulan

Berdasarkan seluruh hasil pengolahan data, kita dapat mengetahui distribusi pembelian (TotalPurchase) cenderung bimodal, menandakan terdapat dua kelompok pelanggan dengan tingkat pembelian berbeda. Mean lebih tinggi daripada Median, mengindikasikan kemungkinan adanya right skew — sebagian pelanggan memiliki pembelian sangat tinggi.

Terdapat beberapa outlier, yang mungkin berasal dari pembelian dalam jumlah besar atau pelanggan dengan perilaku belanja unik. Modus kategori produk menunjukkan preferensi dominan pelanggan — kategori ini bisa dianggap produk unggulan. Data menunjukkan adanya peluang untuk melakukan segmentasi pelanggan berdasarkan pola pembelian (misalnya pelanggan “rutin” vs “premium”).

4.2 Solusi dan Rekomendasi

Lakukan segmentasi pelanggan dengan cara pisahkan pelanggan berdasarkan rentang TotalPurchase (misalnya low spender, mid spender, high spender) agar strategi promosi lebih tepat sasaran dan lakukan analisis outlier lebih lanjut dengan menelusuri penyebab nilai pembelian ekstrem (apakah karena kesalahan input, promo besar, atau pelanggan khusus) sebelum digunakan untuk prediksi.

Gunakan median untuk pelaporan karena distribusi miring dan terdapat outlier, median lebih representatif untuk menggambarkan kecenderungan pembelian rata-rata pelanggan.

Fokuskan Strategi Penjualan pada Produk dengan Modus Tertinggi: Produk yang paling sering dibeli bisa dijadikan fokus kampanye promosi atau cross-selling.

Evaluasi Lokasi Toko (StoreLocation): Lakukan eksplorasi tambahan untuk melihat apakah distribusi pembelian berbeda antar wilayah — hal ini dapat membantu pengambilan keputusan logistik dan stok.