1 Giới thiệu về bộ dữ liệu

  • Chọn bộ dữ liệu insurance nói về chi phí bảo hiểm y tế cá nhân theo từng độ tuổi ở khu vực Mỹ La Tinh
  • Gán bộ dữ liệu thành g để dễ thao tác
g <- read.csv('D:/insurance.csv',header = T )
  • Bộ dữ liệu bao gồm 1338 quan sát và 7 biến ứng với 7 cột
dim(g)
## [1] 1338    7
names(g)
## [1] "age"      "sex"      "bmi"      "children" "smoker"   "region"   "charges"
  • Age: Độ tuổi tham gia bảo hiểm y tế cá nhân (từ 18 đến 64 tuổi)
  • Sex: giới tính
  • bmi: Chỉ số khối cơ thể, cung cấp sự hiểu biết về cơ thể, cân nặng tương đối cao hay thấp so với chiều cao, chỉ số khách quan về trọng lượng cơ thể (kg/m^2) sử dụng tỷ lệ giữa chiều cao và cân nặng, lý tưởng nhất là 18,5 đến 24,9.
  • children: số con của người tham gia bảo hiểm
  • smoker: người tham gia có hút thuốc hay không
  • region: khu vực ở mỹ la tinh bao gồm đông bắc, đông nam, tây nam, tây bắc.
  • charges: Chi phí y tế cá nhân do bảo hiểm y tế thanh toán

2 vẽ biểu sử dụng một biến

2.1 Biểu đồ 1

  • Biểu đồ thể hiện số người tham gia bảo hiểm y tế theo giới tính
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
library("ggplot2")
g %>% group_by(sex) %>% summarise(n = n()) %>% 
  ggplot(aes(n,sex)) +
    geom_col(fill='pink') +
    labs(title = " Biểu đồ 1. thể hiện số người tham gia bảo hiểm y tế theo sex(giới tính) ") +
    geom_text(aes(label = n),vjust = 1, color = 'black') +
    labs(x = 'Số lượng', y = 'giới tính')

Nhận xét: - Nhìn trong biểu đồ dễ dàng nhận thấy có 676 người giới tính nam tham gia bảo hiểm y tế và có 662 người giới tính nữ tham gia bảo hiểm y tế - Cho thấy trong xã hội hầu hết dù là giới tính nào thì mọi người vẫn tham gia bảo hiểm y tế đầy đủ, số lượng người tham gia bảo hiểm y tế có giới tính nam và nữ xấp xỉ bằng nhau.

2.2 Biểu đồ 2

  • Biểu đồ thể hiện số người tham gia bảo hiểm y tế theo số con cái (children)
 g %>% group_by(children) %>% summarise(n = n()) %>%
  ggplot(aes(children,n)) +
    geom_col(fill='lightgreen') +
    geom_text(aes(label = n),vjust = 1, color = 'orange') +
    labs(x = 'số con cái', y = 'số lượng')

Nhận xét: - Kết quả cho thấy gia đình không có con chiếm đa số trong số lượng người tham gia bảo hiểm y tế - Có 574 người tham gia bảo hiểm y tế không có con, 324 người tham gia bảo hiểm y tế có 1 con, 240 người tham gia bảo hiểm y tế có 2 con, 157 người tham gia bảo hiểm y tế có 3 con, 25 người tham gia bảo hiểm y tế có 4 con, 18 người tham gia bảo hiểm y tế có 5 con - Như thế cho thấy người có càng nhiều con thì số lượng tham gia bảo hiểm sẽ giảm đi.

2.3 Biểu đồ 3

  • Biểu đồ thể hiện số lượng người tham gia bảo hiểm y tế theo khu vực (region)
g %>% group_by(region) %>% summarise(n = n()) %>%
  ggplot(aes(n,region)) +
    geom_col(fill='pink') +
    labs(title = " Biểu đồ 3. thể hiện số người tham gia bảo hiểm y tế theo region(khu vực) ") +
    geom_text(aes(label = n),vjust = 1, color = 'black') +
    labs(x = 'Số lượng', y = 'khu vực')

Nhận xét: - Kết quả cho hàng ứng với 325 người tham gia bảo hiểm y tế ở vùng southwest(Tây Nam), 364 người tham gia bảo hiểm y tế ở vùng southeast(đông nam), 325 người tham gia bảo hiểm y tế ở vùng northwest(tây bắc),324 người tham gia bảo hiểm y tế ở vùng northeast(tây nam)

2.4 Biểu đồ 4

  • Biểu đồ biểu thị mật độ của chỉ số bmi
g %>% ggplot(aes(x = bmi)) +
  geom_density(fill = 'lightyellow')

2.5 Biểu đồ 5

  • Biểu đồ số lượng chi phí tham gia baor hiểm y tế theo biến smoker
g %>% ggplot(aes(x = charges)) +
  geom_histogram(data = g %>% filter(smoker == 'no'), binwidth = 5000, fill = 'black') +
  geom_histogram(data = g %>% filter(smoker == 'yes'), binwidth = 5000, fill = 'white')

Nhận xét: - Kết quả cho thấy phần lớn người không hút thuốc chiếm tỷ lệ chi phí tham gia bảo hiểm y tế cao hơn người có hút thuốc với chi phí tham gia bảo hiểm y tế

2.6 Biểu đồ 6

  • Biểu đồ biểu thị mật độ chhi phí bao hiểm y tế theo tuổi
library("dplyr")
g %>% ggplot(aes(x = charges, fill = age)) +
  geom_density()
## Warning: The following aesthetics were dropped during statistical transformation: fill.
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?

2.7 Biểu đồ 7

  • Biểu đồ biểu thị mật độ cho phí bảo hiểm y tế theo giới tính
g %>% ggplot(aes(x = charges)) +
  geom_density(fill = 'green') +
  facet_wrap(~sex)

2.8 Biểu đồ 8

  • Biểu đồ thể hiện chỉ số khối cơ thể trung bình theo tuổi và giới tính
g %>% group_by(age,sex) %>% summarise(m = mean(bmi)) %>%
  ggplot(aes(x = age,y = m)) +
    geom_col(position = 'dodge') +
    facet_wrap(~sex) +
    geom_text(aes(label = round(m))) +
    labs(x = 'age', y = 'Số lượng')
## `summarise()` has grouped output by 'age'. You can override using the `.groups`
## argument.

Nhận xét: - Cột x thể hiện tuổi từ 18 đến 64 tuổi - Cột y thể hiện giá trị trung bình chỉ số khối cơ thể dựa vào cột x và giới tính - Kết quả cho thấy giá trị trung bình theo từng độ tuổi và theo từng giới tính biểu thị rõ ràng như trên, giúp dễ nhận biết để lấy số liệu

2.9 Biểu đồ 9

  • Biểu đồ thể hiện số lượng người tham gia bảo hiểm y tế dựa theo tuổi và khu vực
g %>% group_by(age,region) %>% summarise(n=n()) %>%
  ggplot(aes(x = age,y = n)) +
    geom_col(position = 'dodge') +
    facet_wrap(~region) +
    geom_text(aes(label = n),vjust = 1, color = 'white') +
    labs(x = 'Tuổi', y = 'Số lượng')
## `summarise()` has grouped output by 'age'. You can override using the `.groups`
## argument.

Nhận xét: - Cột x thể hiện tuổi của người tham gia bâỏ hiểm y tế
- Cột y thể hiện số lượng người tham gia bảo hiểm y tế - Mỗi đồ thị tượng trưng cho bốn 4 khu vực khác nhau - Từ kết quả trên cho thấy độ tuổi 18 tring 4 khu vực đều chiếm số lượng khá cao so với các độ tuổi khác.

2.10 Biểu đồ 10

  • Biểu đồ thể hiện tổng chỉ số khối cơ thể trung bình theo vùng
g2 <- g %>% group_by(region) %>% summarise(avg_price15= mean(bmi))

g2 %>% ggplot(aes(x = region, y = avg_price15))+
          geom_col(fill = 'green') +
          geom_text(aes(label = round(avg_price15)), vjust = 2, color ='white') +
          labs(title = 'Hình 2.16: Chi phí khối cơ thể trung bình theo vùng miền' , x = 'region', y = 'Average Price')

Nhận xétt: - Cột x thể hiện khu vực với 4 vùng northeast, northwest. Southeast, southwest. - Cột y thể hiện tổng chỉ số khối cơ thể trung bình

2.11 Biểu đồ 11

  • Biểu đồ thể hiện tổng chỉ số khối trung bình theo tuổi và giới tinh
g %>% group_by(age,sex) %>% summarise(m = mean(bmi)) %>%
  ggplot(aes(x = age,y = m)) +
    geom_col(position = 'dodge') +
    facet_wrap(~sex) +
    geom_text(aes(label= round(m)), vjust=2, color='red')+ 
  labs(x= 'tuổi', y= 'chỉ số khối cơ thể trung bình',title='Hình 23: Giá trị trung bình của bmi theo age và sex ')
## `summarise()` has grouped output by 'age'. You can override using the `.groups`
## argument.

- Cột x thể hiện tuổi của người tham gia bảo hiểm y tế từ 18 đến 64 tuổi - Cột y thể hiện chỉ số khối cơ thể trung bình theo tuổi và giới tính - Hai đồ thị tương ứng với hai giới tính nam và nữ

2.12 Biểu đồ 12

  • Biểu đồ thể hiện trung vị chi phí bảo hiểm y tế theo khu vực
g %>% group_by(region) %>% summarise(m= median(charges)) %>%
  ggplot(aes(x = region,y = m)) +
    geom_col(position = 'dodge') +
    geom_text(aes(label = round(m,2)), vjust = 2, color = 'white') +
    labs(x = 'vùng', y = 'Trung vị',title = "Hình 28: Biểu đồ trung vị chi phí bảo hiểm theo vùng")

Nhận xét: - Cột x thể hiện vùng với 4 vùng northeast, northwest, southeast, southwwest. - Cột y thể hiện trung vị chi phí bảo hiểm y tế - Kết quả thể hiện số lượng trung vị chi phí bảo hiểm y tế theo 4 vùng

2.13 Biểu đồ 13

  • Biểu đồ thể hiện mật độ chi phí bảo hiểm y tế theo giới tính
g %>% ggplot(aes(x = charges)) +
  geom_density(fill = 'green') +
  facet_wrap(~sex)

Nhận xét: - cột x thể hiện chi phí bảo hiểm y tế - Cột y thể hiện mật độ chi phí bảo hiểm y tế - Hai đồ thị tương ứng với 2 giới tính nam và nữ

2.14 Biểu đồ 14

  • Biểu đồ thể hiện mật độ chi phí bảo hiểm y tế dựa theo vùng
g %>% ggplot(aes(x = charges)) +
  geom_density(fill = 'lightpink') +
  facet_wrap(~region)

Nhận xét: - Cột x thể hiện chi phí bảo hiểm y tế - Cột y thể hiện mật độ chi phí bảo hiểm theo vùng
- 4 đồ thị tương đương với mỗi vùng khác nhau

2.15 Biểu đồ 15

  • Biểu đồ thể hiện trung vị chi phí bảo hiểm y tế theo giới tính
g %>% group_by(sex) %>% summarise(m= median(charges)) %>%
  ggplot(aes(x = sex,y = m)) +
    geom_col(position = 'dodge') +
    geom_text(aes(label = round(m,2)), vjust = 2, color = 'white') +
    labs(x = 'giới tính', y = 'Trung vị',title = "Hình 28: Biểu đồ trung vị chi phí bảo hiểm theo giới tính")

Nhận xét: - Cột x thể hiện giới tính tượng trưng cho hai cột - Cột y thể hiện trung vị chi phí bảo hiểm y tế - giữa hai cột không có sự chênh lệnh quá nhiều

2.16 Biểu đồ 16

  • Biểu đồ thể hiện chi phí y tế trung bình theo tuổi và giới tính
g %>% group_by(age,sex) %>% summarise(m = mean(charges)) %>%
  ggplot(aes(x = age,y = m)) +
    geom_col(position = 'dodge') +
    facet_wrap(~sex) +
    geom_text(aes(label= round(m)), vjust=2, color='red')+ 
  labs(x= 'Tuổi', y= 'chi phí trung bình',title='Hình 23: Giá trị trung bình của charges theo age và sex ')
## `summarise()` has grouped output by 'age'. You can override using the `.groups`
## argument.

Nhận xét: - Cột x thể hiện độ tuổi từ 18 đến 64 tuổi - Cột y thể hiện chi phí BHYT trung bình
- 2 đồ thị tương ứng với 2 giới tính
- Kết quả cho thấy số liệu cụ thể của từng độ tuổi và từng giới tính

2.17 Biểu đồ 17

  • Biểu đồ thể hiện chi phí y tế trung hình theo khu vực
g3 <- g %>% group_by(region) %>% summarise(avg_price15= mean(charges))

g3 %>% ggplot(aes(x = region, y = avg_price15))+
          geom_col(fill = 'green') +
          geom_text(aes(label = round(avg_price15)), vjust = 2, color ='white') +
          labs(title = 'Hình 2.16: Chi phí y tế trung bình theo bảo hiểm y tế theo vùng miền' , x = 'region', y = 'Average Price')

Nhận xét: - Cột x thể hiện khu vực với 4 khu vực khác nhau
- cột y thể hiện chi phí y tế trung bình theo mỗi vùng

2.18 Biểu đồ 18

  • Biểu đồ thể hiện số lượng người tham gia bảo hiểm y tế theo vùng
g %>% ggplot(aes(x = region)) +
    geom_bar() +
    labs(x = 'Loại', y = 'Số lượng') +
    coord_flip()

Nhận xét: - Kết quả cho thấy 4 cột ngang tương ứng với 4 vùng

2.19 Biểu đồ 19

  • Biểu đồ thể hiện số lượng người tham gia bảo hiểm y tế theo chỉ số khối cơ thể và vùng miền
g %>% group_by(bmi,region) %>% summarise(n=n()) %>%
  ggplot(aes(x = bmi,y = n)) +
    geom_col(position = 'dodge') +
    facet_wrap(~region) +
    geom_text(aes(label = n),vjust = 2, color = 'green') +
    labs(x = 'bmi', y = 'Số lượng')
## `summarise()` has grouped output by 'bmi'. You can override using the `.groups`
## argument.

Nhận xét: - Kết quả cho ra số liệu cụ thể cho mỗi bmi và 4 đồ thị tương ứng cho mỗi phòng

2.20 Biểu đồ 20

  • Biểu đồ thể hiện số lượng người tham gia bảo hiểm y tế theo chỉ số bmi phân theo vùng miền
g %>% ggplot(aes(x = bmi, fill = region)) +
  geom_histogram(binwidth = 1)

Nhận xét: - Cột x thể hiện chỉ số bmi - cột y thể hiện số lượng - Kết quả cho ra đồ thị phân theo 4 màu sắc tương đương 4 vùng theo chỉ bmi