Import Data

data_tugas_1 <- read.csv("data_tugas_1.csv")
head(data_tugas_1)
##     id_driver preferensi_merchant preferensi_transportasi     preferensi_pasar
## 1  8221198804      Sangat penting          Sangat penting       Sangat penting
## 2  8997785050      Sangat penting           Tidak penting Sangat tidak penting
## 3 81214595942              Netral                  Netral               Netral
## 4 81220265144      Sangat penting                 Penting       Sangat penting
## 5 81220900657      Sangat penting    Sangat tidak penting       Sangat penting
## 6 81221178667      Sangat penting                 Penting              Penting
##   usia status_nikah jml_motor jml_mobil jml_sepeda
## 1   39      Menikah         1         0          1
## 2   41      Menikah         1         0          0
## 3   46      Menikah         1         0          1
## 4   47      Menikah         1         0          0
## 5   40      Menikah         2         0          2
## 6   53      Menikah         1         0          1

Missing Data

recheck untuk mencari missing data kalau ada

is.na(data_tugas_1)
##       id_driver preferensi_merchant preferensi_transportasi preferensi_pasar
##  [1,]     FALSE               FALSE                   FALSE            FALSE
##  [2,]     FALSE               FALSE                   FALSE            FALSE
##  [3,]     FALSE               FALSE                   FALSE            FALSE
##  [4,]     FALSE               FALSE                   FALSE            FALSE
##  [5,]     FALSE               FALSE                   FALSE            FALSE
##  [6,]     FALSE               FALSE                   FALSE            FALSE
##  [7,]     FALSE               FALSE                   FALSE            FALSE
##  [8,]     FALSE               FALSE                   FALSE            FALSE
##  [9,]     FALSE               FALSE                   FALSE            FALSE
## [10,]     FALSE               FALSE                   FALSE            FALSE
## [11,]     FALSE               FALSE                   FALSE            FALSE
## [12,]     FALSE               FALSE                   FALSE            FALSE
## [13,]     FALSE               FALSE                   FALSE            FALSE
## [14,]     FALSE               FALSE                   FALSE            FALSE
## [15,]     FALSE               FALSE                   FALSE            FALSE
## [16,]     FALSE               FALSE                   FALSE            FALSE
## [17,]     FALSE               FALSE                   FALSE            FALSE
## [18,]     FALSE               FALSE                   FALSE            FALSE
## [19,]     FALSE               FALSE                   FALSE            FALSE
## [20,]     FALSE               FALSE                   FALSE            FALSE
## [21,]     FALSE               FALSE                   FALSE            FALSE
## [22,]     FALSE               FALSE                   FALSE            FALSE
## [23,]     FALSE               FALSE                   FALSE            FALSE
## [24,]     FALSE               FALSE                   FALSE            FALSE
## [25,]     FALSE               FALSE                   FALSE            FALSE
## [26,]     FALSE               FALSE                   FALSE            FALSE
## [27,]      TRUE               FALSE                   FALSE            FALSE
## [28,]     FALSE               FALSE                   FALSE            FALSE
## [29,]     FALSE               FALSE                   FALSE            FALSE
## [30,]     FALSE               FALSE                   FALSE            FALSE
## [31,]     FALSE               FALSE                   FALSE            FALSE
## [32,]     FALSE               FALSE                   FALSE            FALSE
## [33,]     FALSE               FALSE                   FALSE            FALSE
## [34,]     FALSE               FALSE                   FALSE            FALSE
## [35,]     FALSE               FALSE                   FALSE            FALSE
## [36,]     FALSE               FALSE                   FALSE            FALSE
## [37,]     FALSE               FALSE                   FALSE            FALSE
## [38,]     FALSE               FALSE                   FALSE            FALSE
## [39,]     FALSE               FALSE                   FALSE            FALSE
## [40,]     FALSE               FALSE                   FALSE            FALSE
## [41,]     FALSE               FALSE                   FALSE            FALSE
## [42,]     FALSE               FALSE                   FALSE            FALSE
## [43,]     FALSE               FALSE                   FALSE            FALSE
## [44,]     FALSE               FALSE                   FALSE            FALSE
## [45,]     FALSE               FALSE                   FALSE            FALSE
## [46,]     FALSE               FALSE                   FALSE            FALSE
## [47,]     FALSE               FALSE                   FALSE            FALSE
## [48,]     FALSE               FALSE                   FALSE            FALSE
## [49,]     FALSE               FALSE                   FALSE            FALSE
## [50,]     FALSE               FALSE                   FALSE            FALSE
## [51,]     FALSE               FALSE                   FALSE            FALSE
## [52,]     FALSE               FALSE                   FALSE            FALSE
## [53,]     FALSE               FALSE                   FALSE            FALSE
##        usia status_nikah jml_motor jml_mobil jml_sepeda
##  [1,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [2,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [3,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [4,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [5,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [6,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [7,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [8,] FALSE        FALSE     FALSE     FALSE      FALSE
##  [9,] FALSE        FALSE     FALSE     FALSE      FALSE
## [10,] FALSE        FALSE     FALSE     FALSE      FALSE
## [11,] FALSE        FALSE     FALSE     FALSE      FALSE
## [12,] FALSE        FALSE     FALSE     FALSE      FALSE
## [13,] FALSE        FALSE     FALSE     FALSE      FALSE
## [14,] FALSE        FALSE     FALSE     FALSE      FALSE
## [15,] FALSE        FALSE     FALSE     FALSE      FALSE
## [16,] FALSE        FALSE     FALSE     FALSE      FALSE
## [17,] FALSE        FALSE     FALSE     FALSE      FALSE
## [18,] FALSE        FALSE     FALSE     FALSE      FALSE
## [19,] FALSE        FALSE     FALSE     FALSE      FALSE
## [20,] FALSE        FALSE     FALSE     FALSE      FALSE
## [21,] FALSE        FALSE     FALSE     FALSE      FALSE
## [22,] FALSE        FALSE     FALSE     FALSE      FALSE
## [23,] FALSE        FALSE     FALSE     FALSE      FALSE
## [24,] FALSE        FALSE     FALSE     FALSE      FALSE
## [25,] FALSE        FALSE     FALSE     FALSE      FALSE
## [26,] FALSE        FALSE     FALSE     FALSE      FALSE
## [27,] FALSE        FALSE     FALSE     FALSE      FALSE
## [28,] FALSE        FALSE     FALSE     FALSE      FALSE
## [29,] FALSE        FALSE     FALSE     FALSE      FALSE
## [30,] FALSE        FALSE     FALSE     FALSE      FALSE
## [31,] FALSE        FALSE     FALSE     FALSE      FALSE
## [32,] FALSE        FALSE     FALSE     FALSE      FALSE
## [33,] FALSE        FALSE     FALSE     FALSE      FALSE
## [34,] FALSE        FALSE     FALSE     FALSE      FALSE
## [35,] FALSE        FALSE     FALSE     FALSE      FALSE
## [36,] FALSE        FALSE     FALSE     FALSE      FALSE
## [37,] FALSE        FALSE     FALSE     FALSE      FALSE
## [38,] FALSE        FALSE     FALSE     FALSE      FALSE
## [39,] FALSE        FALSE     FALSE     FALSE      FALSE
## [40,] FALSE        FALSE     FALSE     FALSE      FALSE
## [41,] FALSE        FALSE     FALSE     FALSE      FALSE
## [42,] FALSE        FALSE     FALSE     FALSE      FALSE
## [43,] FALSE        FALSE     FALSE     FALSE      FALSE
## [44,] FALSE        FALSE     FALSE     FALSE      FALSE
## [45,] FALSE        FALSE     FALSE     FALSE      FALSE
## [46,] FALSE        FALSE     FALSE     FALSE      FALSE
## [47,] FALSE        FALSE     FALSE     FALSE      FALSE
## [48,] FALSE        FALSE     FALSE     FALSE      FALSE
## [49,] FALSE        FALSE     FALSE     FALSE      FALSE
## [50,] FALSE        FALSE     FALSE     FALSE      FALSE
## [51,] FALSE        FALSE     FALSE     FALSE      FALSE
## [52,] FALSE        FALSE     FALSE     FALSE      FALSE
## [53,] FALSE        FALSE     FALSE     FALSE      FALSE

Jumlah total missing data.

sum(is.na(data_tugas_1))
## [1] 1

Menghapus data yang memiliki nilai NA.

data_tugas_bersih <- na.omit(data_tugas_1)

Deteksi Outlier Usia

boxplot digunakan untuk mencari outlier

boxplot(data_tugas_bersih$usia)

Dari grafik terlihat terdapat nilai usia yang sangat besar sehingga bisa kita anggap sebagai outlier.


IQR

IQR(data_tugas_bersih$usia)
## [1] 17.25
Q1 <- quantile(data_tugas_bersih$usia, 0.25)
Q3 <- quantile(data_tugas_bersih$usia, 0.75)
batas_bawah <- Q1 - 1.5 * IQR(data_tugas_bersih$usia)
batas_atas <- Q3 + 1.5 * IQR(data_tugas_bersih$usia)

Menghapus Outlier

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data_clean <- data_tugas_bersih %>%
  filter(usia >= batas_bawah & usia <= batas_atas)

Melihat kembali boxplot setelah outlier dihapus.

boxplot(data_clean$usia)


Kategorisasi Usia

Usia produktif adalah 15–64 tahun.

data_usia_produktif <- data_clean %>%
  filter(usia >= 15, usia <= 64)

Usia non produktif adalah 0–14 dan lebih dari 64 tahun.

data_usia_non_produktif <- data_clean %>%
  filter(usia < 15 | usia > 64)

Summary Statistik

Ringkasan statistik untuk usia produktif.

summary_usia <- data_usia_produktif %>%
  summarise(
    mean = mean(usia),
    std_dev = sd(usia),
    min = min(usia),
    max = max(usia),
    IQR = IQR(usia)
  )

summary_usia
##    mean std_dev min max  IQR
## 1 39.92 9.33031  24  57 15.5

Statistik Kendaraan

Jumlah mobil.

summary_jmlh_mobil <- data_usia_produktif %>%
  summarise(
    mean = mean(jml_mobil),
    median = median(jml_mobil),
    std_dev = sd(jml_mobil)
  )

summary_jmlh_mobil
##   mean median   std_dev
## 1 0.04      0 0.1979487

Jumlah motor.

summary_jmlh_motor <- data_usia_produktif %>%
  summarise(
    mean = mean(jml_motor),
    median = median(jml_motor),
    std_dev = sd(jml_motor)
  )

summary_jmlh_motor
##   mean median   std_dev
## 1 1.14      1 0.4522055

Jumlah sepeda.

summary_jmlh_sepeda <- data_usia_produktif %>%
  summarise(
    mean = mean(jml_sepeda),
    median = median(jml_sepeda),
    std_dev = sd(jml_sepeda)
  )

summary_jmlh_sepeda
##   mean median   std_dev
## 1 0.42      0 0.6091144

Visualisasi Histogram

Histogram Jumlah Mobil

library(ggplot2)

ggplot(data_usia_produktif, aes(x = jml_mobil)) +
  geom_histogram(color = "white", fill = "steelblue", binwidth = 1)


Histogram Jumlah Motor

ggplot(data_usia_produktif, aes(x = jml_motor)) +
  geom_histogram(color = "white", fill = "steelblue", binwidth = 1)


Histogram Jumlah Sepeda

ggplot(data_usia_produktif, aes(x = jml_sepeda)) +
  geom_histogram(color = "white", fill = "steelblue", binwidth = 1)


Berdasarkan analisis data:

  • saya pakai missing value menggunakan na.omit() untuk membersihkan data
  • metode IQR saya pakai untuk menghapus outlier pada variabel usia
  • ada dua kategori data yaitu usia produktif dan non produktif