Install dan load library

Beberapa library yang perlu diinstall sebagai berikut:

library(ggplot2)
library(readxl)
library(ggthemes)
library(gridExtra)

Input data

Data diinput dari Mircosoft Excel dengan syntax sebagai berikut:

setwd("C:/Users/User/Desktop/Project/ProSta")
data <- read_excel("data_kesehatan.xlsx")
head(data)
## # A tibble: 6 × 5
##    Umur `Jenis Kelamin` `Jumlah Anak` `Status Perokok` `Biaya Asuransi`
##   <dbl> <chr>                   <dbl> <chr>                       <dbl>
## 1    19 Wanita                      0 Ya                          16885
## 2    18 Pria                        1 Tidak                        1726
## 3    28 Pria                        3 Tidak                        4449
## 4    33 Pria                        0 Tidak                       21984
## 5    32 Pria                        0 Tidak                        3867
## 6    31 Wanita                      0 Tidak                        3757

Pie_chart

Dari data tersebut akan disajikan visualisasi data dalam bentuk Pie Chart. Berikut lampiran hasil visualisasi datanya:

pie_chart <- ggplot(data, aes(x = "", fill = `Jenis Kelamin`)) +
  geom_bar(width = 1) +
  coord_polar("y", start = 0) +
  theme_minimal() +
  labs(title = "Distribusi Jenis Kelamin") +
  theme(axis.text.x = element_blank())

pie_chart

Visualisasi tersebut menggambarkan distribusi jumlah pria dan wanita dalam dataset yang telah diinputkan. Dari visualisasi tersebut dapat dijelaskan bahwa jumlah jenis kelamin pria lebih banyak daripada jumlah jenis kelamin wanita sebagai faktor-faktor yang akan mempengaruhi biaya asuransi.

Bar Chart

Dari data tersebut akan disajikan visualisasi data dalam bentuk Bar Chart. Berikut lampiran hasil visualisasi datanya:

bar_chart <- ggplot(data, aes(x = `Status Perokok`, fill = `Status Perokok`)) +
  geom_bar() +
  theme_minimal() +
  labs(title = "Distribusi Status Perokok", x = "Status Perokok", y = "Frekuensi")

bar_chart

Visualisasi tersebut menggambarkan distribusi jumlah status perokok dalam dataset yang telah diinputkan. Dari visualisasi data tersebut dapat dijelaskan bahwa dari total seluruh individu dalam data, jumlah individu yang tidak merokok lebih banyak dibandingkan jumlah individu yang merokok.

Dot Plot

Dari data tersebut akan disajikan visualisasi data dalam bentuk Dot Plot. Berikut lampiran hasil visualisasi datanya:

dot_plot <- ggplot(data, aes(x = `Umur`, y = `Jumlah Anak`)) +
  geom_point(color = "navy", size = 2) +
  theme_minimal() +
  labs(title = "Dot Plot: Umur dan Jumlah Anak", x = "Umur", y = "Jumlah Anak")

dot_plot

Hasil visualisasi tersebut menggambarkan distribusi umur dan jumlah anak dari dataset yang telah diinputkan. Dari visualisasi data tersebut dapat dijelaskan bahwa sebagian besar individu yang tidak memiliki anak berada dikisaran umur 18-33 tahun.

1. Menghitung Rata-Rata (mean)

Berikut terlampir syntax untuk menghitung rata-rata (mean) jumlah anak dari responden:

mean(data$`Jumlah Anak`)
## [1] 0.64

2. Menghitung Median

Berikut terlampir syntax untuk menghitung median jumlah anak dari responden:

median(data$`Jumlah Anak`)
## [1] 0

3. Menghitung Modus

Berikut terlampir syntax untuk menghitung modus jumlah anak dari responden:

modus <- function(x) {
  uniqx <- unique(x)
  uniqx[which.max(tabulate(match(x, uniqx)))]
}

modus(data$`Jumlah Anak`)
## [1] 0

Menampilkan Ringkasan Data (Statistik 5 Serangkai)

Berikut terlampir syntax untuk menghitung Statistik 5 Serangkai pada variabel jumlah anak:

summary(data$`Jumlah Anak`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    0.00    0.00    0.64    1.00    3.00

Ukuran Penyebaran data

1. Menghitung Keragaman Data

Berikut terlampir syntax untuk menghitung keragaman data pada variabel jumlah anak:

var(data$`Jumlah Anak`)
## [1] 0.9066667

2. Menghitung Standar Deviasi dari Data

Berikut terlampir syntax untuk menghitung Standar Deviasi data pada variabel jumlah anak:

sd(data$`Jumlah Anak`)
## [1] 0.9521905

Density Plot

Dari data tersebut akan disajikan visualisasi data dalam bentuk Density Plot. Berikut lampiran hasil visualisasi datanya:

density_plot <- ggplot(data, aes(x = `Umur`,fill = "Umur")) +
  geom_density(alpha = 0.5) +
  theme_minimal() +
  labs(title = "Density Plot: Umur", x = "Umur", y = "Density")

density_plot

Hasil visualisasi tersebut menggambarkan distribusi umur dari dataset yang telah diinputkan. Dari visualisasi data tersebut dapat dijelaskan bahwa individu berumur 30 tahun dengan skala 0.029 merupakan responden terbanyak di antara umur 18-62 tahun.

Ukuran Pemusatan

1. Menghitung Rata-Rata (Mean)

Rata-rata umur nya adalah :

mean(data$Umur)
## [1] 35.72

2. Menghitung Median

Median dari umur adalah :

median(data$Umur)
## [1] 32

3. Menghitung Modus

Modus dari umur adalah :

modus <- function(x) {
  uniqx <- unique(x)
  uniqx[which.max(tabulate(match(x, uniqx)))]
}

modus(data$Umur)
## [1] 37

Menampilkan Ringkasan Data (Statistik 5 Serangkai)

Berikut adalah statistik 5 serangkai dari umur :

summary(data$Umur)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   18.00   25.00   32.00   35.72   46.00   62.00

Ukuran Penyebaran Data

1. Menghitung Keragaman Data

Berikut adalah keragaman data pada variabel umur :

var(data$Umur)
## [1] 205.8767

2. Menghitung Standar Devisiasi dari Data

Berikut adalah standar devisiasi pada variabel umur :

sd(data$Umur)
## [1] 14.3484

Histogram

Dari data tersebut akan disajikan visualisasi data dalam bentuk Histogram. Berikut lampiran hasil visualisasi datanya:

data$`Biaya Asuransi` <- as.numeric(as.character(data$`Biaya Asuransi`))
histogram <- ggplot(data, aes(x = `Biaya Asuransi`)) +
  geom_histogram(binwidth = 5000, fill = "skyblue", color = "black") +
  theme_minimal() +
  labs(title = "Histogram Biaya Asuransi", x = "Biaya Asuransi", y = "Frekuensi")

histogram

Dari hasil visualisasi data tersebut dapat dijelaskan bahwa jumlah biaya asuransi memiliki pentilan pada range 30000-40000 dan mayoritas membayar biaya asuransi pada range 1000-20000 dengan frekuensi tertinggi berada di bawah 10000.

1. Menghitung Rata-Rata (mean)

Berikut terlampir syntax untuk menghitung rata-rata (mean) biaya asuransi dari responden:

data$`Biaya Asuransi` <- as.numeric(as.character(data$`Biaya Asuransi`))
mean(data$`Biaya Asuransi`, na.rm = TRUE)
## [1] 12491.24

2. Menghitung Median

Berikut terlampir syntax untuk menghitung meidan biaya asuransi dari responden:

data$`Biaya Asuransi` <- as.numeric(as.character(data$`Biaya Asuransi`))
median(data$`Biaya Asuransi`,  na.rm = TRUE)
## [1] 7282

3. Menghitung Modus

Berikut terlampir syntax untuk menghitung modus biaya asuransi dari responden:

data$`Biaya Asuransi` <- as.numeric(as.character(data$`Biaya Asuransi`))
modus <- function(x) {
  uniqx <- unique(x)
  uniqx[which.max(tabulate(match(x, uniqx)))]
}

modus(data$`Biaya Asuransi`)
## [1] 16885

Menampilkan Ringkasan Data (Statistik 5 Serangkai)

Berikut terlampir syntax untuk menghitung Statistik 5 Serangkai pada variabel biaya asuransi:

data$`Biaya Asuransi` <- as.numeric(as.character(data$`Biaya Asuransi`))
summary(data$`Biaya Asuransi`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1137    3757    7282   12491   16885   39612

Ukuran Penyebaran data

1. Menghitung Keragaman Data

Berikut terlampir syntax untuk menghitung keragaman data pada variabel biaya asuransi:

data$`Biaya Asuransi` <- as.numeric(as.character(data$`Biaya Asuransi`))
var(data$`Biaya Asuransi`, na.rm = TRUE)
## [1] 152555278

2. Menghitung Standar Deviasi dari Data

Berikut terlampir syntax untuk menghitung Standar Deviasi data pada variabel biaya asuransi:

data$`Biaya Asuransi` <- as.numeric(as.character(data$`Biaya Asuransi`))
sd(data$`Biaya Asuransi`, na.rm = TRUE)
## [1] 12351.33