1 Giới Thiệu

1.1 Thông tin tổng quan về bộ dữ liệu

Nhiệm vụ số 5 tiến hành phân tích trên bộ dữ liệu “analysis-public-place-assaults-sexual-assaults-and-robberies-2015”.

Đây là bộ dữ liệu nói về công việc phân tích về các vụ tấn công tại các nơi công cộng, tấn công tình dục và vụ cướp năm 2015

library(csv)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(DT)
## Warning: package 'DT' was built under R version 4.3.3
library(flextable)
## Warning: package 'flextable' was built under R version 4.3.3
## 
## Attaching package: 'flextable'
## 
## The following object is masked from 'package:purrr':
## 
##     compose
a <- read.csv("C:\\Users\\Admin\\Downloads\\analysis-public-place-assaults-sexual-assaults-and-robberies-2015-csv.csv", header= T)
datatable(a)

Bộ dữ liệu gồm những biến sau:

  • Index: số thứ tự
  • Area unit 2013 code : mã của các khu vực năm 2013
  • Area unit 2013 label : tên khu vực năm 2013
  • Victimisations calendar year 2015: Danh sách nạn nhân năm 2015
  • Population mid point 2015: Dân số giữa năm 2015
  • Rate per 10000 population: Tỉ lệ trên mỗi 10,000 dân số
  • Rate ratio NZ average rate: Tỷ lệ tỉ số của tỉ lệ trung bình ở New Zealand
  • Urban area 2013 code : Mã vùng đô thị 2013
  • Urban area 2013 label : Tên vùng đô thị 2013
  • Urban area type: Loại hình đô thị
  • Territorial authority area 2013 code: Mã vùng chính quyền lãnh thổ 2013
  • Territorial authority area 2013 label: Tên vùng chính quyền lãnh thổ 2013
  • Region 2013 code: Mã vùng 2013
  • Region 2013 label: Tên vùng 2013

1.2 Thống Kê bộ dữ liệu

dim(a)
## [1] 2020   14

Dataset bao gồm 2020 obs. of 14 variables

names(a) <- c('i','ac','al','v','p','rp','ra','uc','ul','ut','tc','tl','rc','rl')
datatable(a)

Tên các biến của bộ dữ liệu sau khi tiến hành đổi tên là:

  • Index: ‘i’
  • Area unit 2013 code : ‘ac’
  • Area unit 2013 label : ‘al’
  • Victimisations calendar year 2015: ‘v’
  • Population mid point 2015: ‘p’
  • Rate per 10000 population: ‘rp’
  • Rate ratio NZ average rate: ‘ra’
  • Urban area 2013 code : ‘uc’
  • Urban area 2013 label : ‘ul’
  • Urban area type: ‘ut’
  • Territorial authority area 2013 code: ‘tc’
  • Territorial authority area 2013 label: ‘tl’
  • Region 2013 code: ‘rc’
  • Region 2013 label: ‘rl’

2 Phân tích dữ liệu bằng biểu đồ

2.1 Biểu đồ thể hiện số lượng các các nước theo từng loại hình đô thị loại hình đô thị

a %>% group_by(ut) %>% summarise(n = n()) %>%
  ggplot(aes(ut,n)) +
    geom_col(fill='yellow') +
    geom_text(aes(label = n),vjust = 1, color = 'red') +
    labs(x = 'Loại hình khu vực', y = 'Số lượng')

Theo biểu đồ thì ta thấy trục hoành(x) tương ứng là loại hình khu vực và trục tung (y) là số lượng của các loại hình khu vực. Và loại hình Main urban area chiếm sô lượng nhiều nhất

  • Main urban area có 1112 quốc gia
  • Minor urban area có 137 quốc gia
  • Rural area có 640 quốc gia
  • Secondary urban area có 131 quốc gia

2.2 Biểu đồ thể hiện số lượng của các loại hình đô thị được phân chia theo khu vực

a %>% group_by(ut,rl) %>% summarise(n=n()) %>%
  ggplot(aes(x = ut,y = n)) +
    geom_col(position = 'dodge') +
    facet_wrap(~rl) +
    geom_text(aes(label = n),vjust = 1, color = 'red') +
    labs(x = 'Loại hình khu vực', y = 'Số lượng')
## `summarise()` has grouped output by 'ut'. You can override using the `.groups`
## argument.

Có tổng cộng là 17 biểu đồ nhỏ tương ứng với 17 khu vực và trên mỗi biểu đồ nhỏ ứng với trục hoành (x) là các loại hình đô thị và trục hoành y tương tứng và số lượng của chúng. Ta có thể quan sát thấy trên biểu đồ thì khu vực Auckland được xuất hiện nhiều nhất.

2.3 Biểu đồ thể hiện sô lượng nạn nhân của các vụ tấn công(đã được phân loại theo 3 mức độ)

a <- a %>% mutate(Victimisations = cut(a$v,3, label = c('Ít','trung bình','nhiều')))
a %>% ggplot(aes(x = Victimisations)) +
  geom_bar(fill = 'pink') +
  labs(x = 'Nạn Nhân', y = 'Số lượng')

Ta thấy trục hoành tương ứng là các mức độ số nạn nhân của các vụ tấn công và trục tung (y) là số lượng cụ thể. Theo như đồ thị thì số nạn nhân trong các vụ tấn công của các khu vực vào 2015 thì số lượng nạn nhân theo từng khu vực chiếm một mức độ khá í

2.4 Biều đồ histogram về số lượng nạn nhân

a %>% ggplot(aes(x = v)) +
  geom_histogram(binwidth = 10, fill = 'black', color = 'red') +
  labs(x = 'Nạn Nhân', y = 'Số lượng')

Ta thấy biểu đồ lệnh hẳn về bên trái có nghĩa là số lượng nạn nhân của các khu vực tương đối ít, trục hoành (x) tương ứng là số nạn nhân trải dài khoảng từ 0 đến hơn 400 nhưng chủ yếu nằm trong khoảng từ 0 đến 100 và trục tung (y) là số nạn nhân nằm trong khoảng đó cao nhất là 800

2.5 Biểu đồ histogram về số nạn nhân phân chia theo các loại hình đô thị

a %>% ggplot(aes(x = v)) +
  geom_histogram(binwidth = 20, fill = 'pink', color = 'white') +
  facet_wrap(~ut) +
  labs(x = 'Nạn Nhân', y = 'Số lượng')

Có 4 loại hình đô thị tương ứng với 4 biểu đồ tương ứng trục hoành (x) là các mức độ số nạn nhân của các vụ tấn công và trục tung (y) là số lượng cụ thể. Nhìn vào biểu đồ ta có thể thấy là số nạn nhân chủ yếu rơi vào khu vực Main urban area

2.6 Biểu đồ histogram thể hiện dân số của các khu vực giữa năm 2015

a %>% ggplot(aes(x = p)) +
  geom_histogram(binwidth = 500, fill = 'white', color = 'red') +
  labs(x = 'Dân số', y = 'Số lượng')

Theo đồ thị này thì trục hoành (x) tương ứng là dân số các khu vực, ở đây rơi vào khoảng từ 0-15000 và đa số các khu vực có số dân rơi vào khoảng từ 0-5000. Và trục hoành(y) là số lượng các khu vực có dân số như trên. Ở đây ta thấy cao nhất là có gần 300 khu vực có gần bằng số dân số

2.7 Biểu đồ thể hiện mật độ dân số của các khu vực

a %>% ggplot(aes(x = p)) +
  geom_density(fill = 'violet') +
  labs(x = 'Dân số', y = 'density')

Trục x thể hiện giá trị của biến p (Dân số).

Trục y thể hiện mật độ của các giá trị p.

Mật độ dân số khá cao từ khoảng từ 0-2500 và giảm dần về sau

2.8 Biểu đồ tròn thể hiện số lượng các vùng

a %>% group_by(rl) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = rl)) +
    geom_col(color = 'black') +
    coord_polar('y') +
    geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    theme_void()

Theo biểu đồ ta thấy có 17 phần được chia ra tương ứng với 17 vùng, và vùng có số lượng các khu vực nhỏ chiếm nhiều nhất là Auckland ( gồm 437 khu vực nhỏ khác). Vùng có số lượng các khu vực nhỏ chiếm ít nhất là Manawatu-Wanganui (gồm 24 khu vực nhỏ khác)

2.9 Biểu đồ phân tán 1

a %>% ggplot(aes(x = p, y = v)) +
  geom_point() +
  xlab('Dân số giữa năm 2015') + 
  ylab('Số nạn nhân của năm 2015')

Dựa vào vị trí và sự phân bố của các điểm dữ liệu, ta có thể xác định xu hướng mối liên hệ:

  • Tương quan dương: Các điểm dữ liệu đi lên từ trái sang phải, cho thấy số nạn nhân có xu hướng tăng khi dân số tăng.

  • Tương quan âm: Các điểm dữ liệu đi xuống từ trái sang phải, cho thấy số nạn nhân có xu hướng giảm khi dân số tăng.

  • Không tương quan: Các điểm dữ liệu phân bố ngẫu nhiên, không có xu hướng rõ ràng.

2.10 Biểu đồ phân tán 2

a %>% ggplot(aes(x = v, y = p, color = ut)) +
  geom_point() +
  xlab('Số nạn nhân của năm 2015') +
  ylab('Dân số giữa năm 2015') 

Dựa vào vị trí và sự phân bố của các điểm dữ liệu, ta có thể xác định xu hướng mối liên hệ:

  • Tương quan dương: Các điểm dữ liệu đi lên từ trái sang phải, cho thấy số nạn nhân có xu hướng tăng khi dân số tăng.

  • Tương quan âm: Các điểm dữ liệu đi xuống từ trái sang phải, cho thấy số nạn nhân có xu hướng giảm khi dân số tăng.

  • Không tương quan: Các điểm dữ liệu phân bố ngẫu nhiên, không có xu hướng rõ ràng.

Mỗi màu sắc tượng ứng với mỗi khu vực

2.11 Biểu đồ phân tán 3

a %>% ggplot(aes(x = p, y = v, shape = ut)) +
  geom_point() +
  xlab('Dân số giữa năm 2015') + 
  ylab('Số nạn nhân của năm 2015')

Dựa vào vị trí và sự phân bố của các điểm dữ liệu, ta có thể xác định xu hướng mối liên hệ:

  • Tương quan dương: Các điểm dữ liệu đi lên từ trái sang phải, cho thấy số nạn nhân có xu hướng tăng khi dân số tăng.

  • Tương quan âm: Các điểm dữ liệu đi xuống từ trái sang phải, cho thấy số nạn nhân có xu hướng giảm khi dân số tăng.

  • Không tương quan: Các điểm dữ liệu phân bố ngẫu nhiên, không có xu hướng rõ ràng.

Mỗi chấm hình dáng tượng ứng với mỗi khu vực

2.12 Biểu đồ phân tán 4

a %>% ggplot(aes(x = p, y = v, size = ut)) +
  geom_point()
## Warning: Using size for a discrete variable is not advised.

Dựa vào vị trí và sự phân bố của các điểm dữ liệu, ta có thể xác định xu hướng mối liên hệ:

  • Tương quan dương: Các điểm dữ liệu đi lên từ trái sang phải, cho thấy số nạn nhân có xu hướng tăng khi dân số tăng.

  • Tương quan âm: Các điểm dữ liệu đi xuống từ trái sang phải, cho thấy số nạn nhân có xu hướng giảm khi dân số tăng.

  • Không tương quan: Các điểm dữ liệu phân bố ngẫu nhiên, không có xu hướng rõ ràng.

Chấm tròn từ bé đến lớn thể hiện các khu vực

2.13 Biểu đồ phân tán 5

a %>% ggplot(aes(x = p, y = v, alpha = uc)) +
  geom_point()

Dựa vào vị trí và sự phân bố của các điểm dữ liệu, ta có thể xác định xu hướng mối liên hệ:

  • Tương quan dương: Các điểm dữ liệu đi lên từ trái sang phải, cho thấy số nạn nhân có xu hướng tăng khi dân số tăng.

  • Tương quan âm: Các điểm dữ liệu đi xuống từ trái sang phải, cho thấy số nạn nhân có xu hướng giảm khi dân số tăng.

  • Không tương quan: Các điểm dữ liệu phân bố ngẫu nhiên, không có xu hướng rõ ràng.

Chấm tròn từ đậm đến nhạt thể hiện mã của từng khu vực

2.14 Biểu đồ phân tán có đường hồi quy tuyến tính

a %>% ggplot(aes(x = p, y = v)) +
  geom_point(color = 'pink') +
  geom_smooth(method = 'lm', color = 'black')
## `geom_smooth()` using formula = 'y ~ x'

  • Biểu đồ phân tán: Cho phép so sánh trực quan giữa các giá trị của dân số và nạn nhân
  • Đường hồi quy tuyến tính: Thể hiện xu hướng trung bình của dữ liệu. Đường này ước tính giá trị trung bình của nạn nhân (v) dự kiến dựa trên giá trị của dân số (p)
  • Đường xu thế tăng thể hiện dân số có xu hướng tăng dần theo số nạn nhân

2.15 Biểu đồ phân tán có đường hồi quy tuyến tính phân theo loại hình đô thị

a %>% ggplot(aes(x = p, y = v)) +
  geom_point(color = 'red') +
  geom_smooth(method = 'lm', color = 'black') +
  facet_wrap(~ut)
## `geom_smooth()` using formula = 'y ~ x'

Có 4 đồ thị tương ứng là 4 loại hình đô thị, ta có thể thấy là đối với loại hình Main urban area có đường xu thế dài hơn tương ứng khả năng ổn định cao và 4 biều đồ đường xu thế có xu hướng đi lên nghĩa là khi dân số tăng lên thì số nạn nhân cũng tăng lên

2.16 Đồ thị mật độ dân số được phân loại theo loại hình đô thị

a %>% ggplot(aes(x = p)) +
  geom_density(fill = 'pink') +
  facet_wrap(~ut)

Mật độ dân số phân chia theo 4 loại hình đô thị:

  • Ở loại hình Main urban area có mật độ dân số khá đồng đều từ khoảng 0-5000 và giảm dần về sau
  • Ở loại hình Minor urban area có mật độ dân số khá cao từ 0-2500 và giảm dần về sau
  • Ở loại hình Rural area có mật độ dân số rất cao từ 0-2500 và giảm dần về sau
  • Ở loại hình Secondary urban area có mật độ dân số khá cao từ 0-2500 và giảm dần về sau

2.17 Biểu đồ cột dùng để so sánh

a3 <- a %>% group_by(ut, rl) %>% summarise(n = n())
## `summarise()` has grouped output by 'ut'. You can override using the `.groups`
## argument.
a %>% ggplot(aes(x = rl, y = n)) +
  geom_col(data = a3 %>% filter(rl == 'Southland Region'), fill = 'blue') +
  geom_col(data = a3 %>% filter(rl == 'Auckland Region'), fill = 'red') +
  geom_col(data = a3 %>% filter(rl == 'Northland Region'), fill = 'green') +
  geom_col(data = a3 %>% filter(rl == 'Bay of Plenty Region'), fill = 'yellow') +
  labs(x = 'Vùng', y = 'Số Lượng')

Trục x (ngang) thể hiện các vùng (rl): “Southland Region”, “Auckland Region”, “Northland Region”, và “Bay of Plenty Region”.

Trục y (dọc) thể hiện số lượng (n).

Bốn hình cột được chồng lên nhau, thể hiện số lượng theo vùng, với:

  • Màu xanh: “Southland Region”
  • Màu đỏ: “Auckland Region”
  • Màu xanh lá: “Northland Region”
  • Màu vàng: “Bay of Plenty Region”

Theo đồ thị ta thấy vùng có sô lượng cao nhất là Auckland Region tương ứng với cột màu đỏ

2.18 Biểu đồ histogram kép

a %>% ggplot(aes(x = p, fill = ut)) +
  geom_histogram(binwidth = 500)

Tạo ra biểu đồ thể hiện tần suất xuất hiện của dân số và màu sắc các cột thể hiện sự phân bố của dân số theo loại hình đô thị. Có 4 loại hình đô thị tương ứng với 4 màu

2.19 Biểu đồ histogram kép dùng để so sánh

a %>% ggplot(aes(x = v)) +
  geom_histogram(data = a %>% filter(rl == 'Southland Region'), binwidth = 2, fill = 'blue') +
  geom_histogram(data = a %>% filter(rl == 'Northland Region'), binwidth = 2, fill = 'green') +
  geom_histogram(data = a %>% filter(rl == 'Bay of Plenty Region'), binwidth = 2, fill = 'red')

Lệnh này tạo ra một biểu đồ histogram kép (compound histogram) gồm ba histogram chồng lên nhau:

  • Histogram màu xanh dương thể hiện phân bố của biến v trong vùng “Southland Region”.
  • Histogram màu xanh lá thể hiện phân bố của biến v trong vùng “Northland Region”.
  • Histogram màu đỏ thể hiện phân bố của biến v trong vùng “Bay of Plenty Region”.

2.20 Biểu đồ so sánh

a %>% group_by(ut) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = ut)) +
    geom_col() +
    geom_text(aes(label = n),position = position_stack(vjust = .5))

Trục x được để trống vì nó không có ý nghĩa trong biểu đồ này. Biểu đồ tập trung vào việc so sánh số lượng giữa các nhóm.

Trục y thể hiện số lượng của các loại hình đô thị

Đồ thị dùng để so sánh giữa các loại hình đô thị với nhau hoặc với tổng số loại hình