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:
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à:
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
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.
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á í
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
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
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ố
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
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)
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.
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
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
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
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
a %>% ggplot(aes(x = p, y = v)) +
geom_point(color = 'pink') +
geom_smooth(method = 'lm', color = 'black')
## `geom_smooth()` using formula = 'y ~ x'
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
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ị:
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:
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 đỏ
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
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:
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