Import Library

# panggil library
library(flexdashboard)
library(dplyr)
library(tidyr)
library(ggpubr)
library(scales)
library(glue)
library(lubridate)
library(plotly)
library(ggplot2)

1 Introduction

Workflow Data Visualization Data visualisasi adalah ketika kita menampilkan data yang kita miliki kedalam bentuk gambar. Data visualisasi bisa terbagi menjadi dua jenis :

  1. Exploratory : Visualisasi untuk mengeksplor (explore) data agar mendapatkan insights yang baru
  2. Explanatory : Visualisasi untuk menjelaskan (explain) apa yang sudah ditemukan sebelumnya

Baik ketika kita ingin melakukan visualisasi dengan exploratory maupun explanatory, ada tahapan-tahapan yang sama yang tetap harus dijalankan yaitu :

  1. Ask the Question : Tentukan pertanyaan apa yang ingin dijawab dengan menggunakan visualisasi
  2. Data Preparation : Persiapkan data agar nantinya data bisa di visualisasikan
  3. Visualization : Mulai visualisasi data

Data yang akan digunakan adalah data dari sebuah perusahaan mobil mempunyai rencana untuk memasuki pasar baru dengan produk yang sudah ada (P1, P2, P3, P4, dan P5). Setelah melakukan riset pasar yang intensif, mereka menyimpulkan bahwa perilaku pasar baru serupa dengan pasar yang sudah ada.

Di pasar yang ada, tim penjualan telah mengklasifikasikan semua pelanggan menjadi 4 segmen (A, B, C, D). Kemudian, mereka melakukan penjangkauan dan komunikasi tersegmentasi untuk segmen pelanggan yang berbeda. Strategi ini berhasil dengan sangat baik bagi mereka. Mereka berencana menggunakan strategi yang sama untuk pasar baru dan telah mengidentifikasi 2627 pelanggan potensial baru.

2 Data Preparation

Data yang diimport adalah data cust_segment_test.csv yang berisi 8068 data. Simpan ke dalam object bernama *cust* Perhatikan data kamu apakah sudah sama folder dengan Project R

# read data .csv
cust <- read.csv("data_input/cust_segment_test.csv")
# melihat 6 data teratas
head(cust)
# melihat 6 data terbawah :
tail(cust)

3 Data Inspection

# melihat struktur tipe data
str(cust)
#> 'data.frame':    8068 obs. of  11 variables:
#>  $ ID             : int  462809 462643 466315 461735 462669 461319 460156 464347 465015 465176 ...
#>  $ Gender         : chr  "Male" "Female" "Female" "Male" ...
#>  $ Ever_Married   : chr  "No" "Yes" "Yes" "Yes" ...
#>  $ Age            : int  22 38 67 67 40 56 32 33 61 55 ...
#>  $ Graduated      : chr  "No" "Yes" "Yes" "Yes" ...
#>  $ Profession     : chr  "Healthcare" "Engineer" "Engineer" "Lawyer" ...
#>  $ Work_Experience: num  1 NA 1 0 NA 0 1 1 0 1 ...
#>  $ Spending_Score : chr  "Low" "Average" "Low" "High" ...
#>  $ Family_Size    : num  4 3 1 2 6 2 3 3 3 4 ...
#>  $ Var_1          : chr  "Cat_4" "Cat_4" "Cat_6" "Cat_6" ...
#>  $ Segmentation   : chr  "D" "A" "B" "B" ...
  • Deskripsi 11 Kolom:
    • ID : Unique ID
    • Gender : Jenis kelamin customers
    • ver_Married : Status pernikahan customers
    • Age : Umur customers
    • Graduated : Apakah customers lulus?
    • Profession : Profesi customers
    • Work_Experience : Pengalaman kerja (tahun)
    • Spending_Score : Skor pembelanjaan customers
    • Family_Size : Jumlah anggota keluarga customers (termasuk customers)
    • Var_1 : Kategori anonim untuk customers
    • Segmentation : (Target) Segmen customers
# mengecek variable yang bisa dijadikan factor
unique(cust$Segmentation)
#> [1] "D" "A" "B" "C"

4 Data Wrangling

📜 From Glossary: Data Wrangling adalah serangkaian proses yang dilakukan untuk membersihkan/merapikan data mentah/awal, sering disebut sebagai data preparation/data cleansing/data pre-processing

4.1 Manipulasi Data

# mengubah tipe data sesuai dengan kebutuhan
cust <- cust %>% 
  mutate (
    Gender = as.factor(Gender),
    Ever_Married = as.factor(Ever_Married),
    Graduated = as.factor(Graduated),
    Profession = as.factor(Profession),
    Spending_Score = as.factor(Spending_Score),
    Var_1 = as.factor(Var_1),
    Segmentation = as.factor(Segmentation),
    Family_Size = as.integer(Family_Size)
    )

head(cust)
# mengecek missing value
colSums(is.na(cust))
#>              ID          Gender    Ever_Married             Age       Graduated 
#>               0               0               0               0               0 
#>      Profession Work_Experience  Spending_Score     Family_Size           Var_1 
#>               0             829               0             335               0 
#>    Segmentation 
#>               0
# buat variabel baru dengan nama "cust_clean" dengan menghapus missing value
cust_clean <- drop_na(cust)
head(cust_clean)

5 Data Explanation

summary(cust_clean)
#>        ID            Gender     Ever_Married      Age        Graduated 
#>  Min.   :458982   Female:3142      : 107     Min.   :18.00      :  60  
#>  1st Qu.:461339   Male  :3827   No :2806     1st Qu.:31.00   No :2539  
#>  Median :463604                 Yes:4056     Median :41.00   Yes:4370  
#>  Mean   :463533                              Mean   :43.47             
#>  3rd Qu.:465774                              3rd Qu.:53.00             
#>  Max.   :467974                              Max.   :89.00             
#>                                                                        
#>          Profession   Work_Experience  Spending_Score  Family_Size   
#>  Artist       :2247   Min.   : 0.000   Average:1741   Min.   :1.000  
#>  Healthcare   :1129   1st Qu.: 0.000   High   :1048   1st Qu.:2.000  
#>  Entertainment: 829   Median : 1.000   Low    :4180   Median :3.000  
#>  Engineer     : 606   Mean   : 2.633                  Mean   :2.844  
#>  Doctor       : 605   3rd Qu.: 4.000                  3rd Qu.:4.000  
#>  Executive    : 518   Max.   :14.000                  Max.   :9.000  
#>  (Other)      :1035                                                  
#>      Var_1      Segmentation
#>  Cat_6  :4592   A:1693      
#>  Cat_4  : 905   B:1632      
#>  Cat_3  : 681   C:1779      
#>  Cat_2  : 377   D:1865      
#>  Cat_7  : 173               
#>  Cat_1  : 107               
#>  (Other): 134

📜 Summary :

  1. Lebih banyak customers laki-laki dengan jumlah 3,827 orang, dibandingkan customers perempuan yang berjumlah 3142 orang
  2. Untuk di bagian kolom Age umur terendah adalah 18 tahun, dan umur tertinggi di umur 89 tahun
  3. Profesi terbanyak untuk promosi mobil adalah di kalangan Artist
  4. Pengalaman kerja terlama ada di 14 tahun, dan yang terendah belum bekerja, dan rata-rata minimal 1 tahun pengalaman kerja
  5. Jumlah keluarga tertinggi berjumlah 9 orang, dan rata-rata berkeluarga sekitar 3 orang (Suami, Istri, dan Anak)
cust_clean %>%
  filter(Profession == "Artist" & Segmentation == "A")
aggregate(Age~Profession, cust_clean, mean)
aggregate(Family_Size~Profession, cust_clean, var)
barplot(table(cust_clean$Profession),

main="Profession Count of 10 Customers",
xlab="Profession",
ylab="Count",
border="red",
col="blue",
density=3
)