Nắm bắt sự thay đổi về dân số của China, Japan, Spain, Thailand, Vietnam trong 72 năm
Nắm bắt sự thay đổi về dân số Vietnam thông qua các đặc trưng đo lường
Biết được trung bình về dân số trong 72 năm của 5 quốc gia
Biết được các giá trị trung bình dân số độ tuổi từ 70 đến 79 của 5 quốc gia trong năm 2020
Biết được các giá trị trung bình về dân số trẻ em dưới 15 tuổi của 5 quốc gia ở năm 1970 và năm 1990
Sử dụng các phương pháp:
Mã hóa dữ liệu
Tạo bảng tần số
Tính toán các đặc trưng đo lường
Dữ liệu trong file population-and-demography.csv nói về Dân số và Nhân khẩu học của 254 quốc gia được phân tích trong 72 năm từ năm 1950 đến năm 2021
Có 18288 hàng tương ứng với 18288 quan sát
Có 24 cột tương ứng với 24 biến
Country name: Tên Quốc Gia
Year: Năm lấy số liệu
Population: Dân số
Population of children under the age of 1: Dân số trẻ em dưới 1 tuổi
Population of children under the age of 5: Dân số trẻ em dưới 5 tuổi
Population of children under the age of 15: Dân số trẻ em dưới 15 tuổi
Population under the age of 25: Dân số dưới 25 tuổi
Population aged 15 to 64 years: Dân số từ 15 đến 64 tuổi
Population older than 15 years: Dân số lớn hơn 15 tuổi
Population older than 18 years: Dân số lớn hơn 18 tuổi
Population at age 1: Dân số 1 tuổi
Population aged 1 to 4 years: Dân số từ 1 đến 4 tuổi
Population aged 5 to 9 years: Dân số từ 5 đến 9 tuổi
Population aged 10 to 14 years: Dân số từ 10 đến 14 tuổi
Population aged 15 to 19 years: Dân số từ 15 đến 19 tuổi
Population aged 20 to 29 years: Dân số từ 20 đến 29 tuổi
Population aged 30 to 39 years: Dân số từ 30 đến 39 tuổi
Population aged 40 to 49 years: Dân số từ 40 đến 49 tuổi
Population aged 50 to 59 years: Dân số từ 50 đến 59 tuổi
Population aged 60 to 69 years: Dân số từ 60 đến 69 tuổi
Population aged 70 to 79 years: Dân số từ 70 đến 79 tuổi
Population aged 80 to 89 years: Dân số từ 80 đến 89 tuổi
Population aged 90 to 99 years: Dân số từ 90 đến 99 tuổi
Population older than 100 years: Dân số lớn hơn 100 tuổi
p <- read.csv(file.choose(), header = T)
datatable(p)
names(p) <- c('cn','y','p','pcu1','pcu5','pcu15','pu25','p15to64','po15','po18','p1','p1to4','p5to9','p10to14','p15to19','p20to29','p30to39','p40to49','p50to59','p60to69','p70to79','p80to89','p90t90to99','po100')
datatable(p)
Trong R, đối tượng dữ liệu là một tập hợp các biến. Mỗi biến có một tên duy nhất. Câu lệnh này sẽ thay đổi tên của các biến trong đối tượng dữ liệu p thành các tên được liệt kê trong vector c(‘cn’,‘y’,‘p’,‘pcu1’,‘pcu5’,‘pcu15’,‘pu25’,‘p15to64’,‘po15’,‘po18’,‘p1’,‘p1to4’,‘p5to9’,‘p10to14’,‘p15to19’,‘p20to29’,‘p30to39’,‘p40to49’,‘p50to59’,‘p60to69’,‘p70to79’,‘p80to89’,‘p90t90to99’,‘po100’).
Chẳng hạn, tên dữ liệu được rút gọn như sau:
Country name được đổi tên thành cn: Tên Quốc Gia
Year được đổi tên thành y: Năm lấy số liệu
Population được đổi tên thành p: Dân số
Population of children under the age of 1 được đổi tên thành pcu1: Dân số trẻ em dưới 1 tuổi
Population of children under the age of 5 được đổi tên thành pcu5: Dân số trẻ em dưới 5 tuổi
Population of children under the age of 15 được đổi tên thành pcu15: Dân số trẻ em dưới 15 tuổi
Population under the age of 25 được đổi tên thành pu25: Dân số dưới 25 tuổi
Population aged 15 to 64 years được đổi tên thành p15to64: Dân số từ 15 đến 64 tuổi
Population older than 15 years được đổi tên thành po15: Dân số lớn hơn 15 tuổi
Population older than 18 years được đổi tên thành po18: Dân số lớn hơn 18 tuổi
Population at age 1 được đổi tên thành p1: Dân số 1 tuổi
Population aged 1 to 4 years được đổi tên thành p1to4: Dân số từ 1 đến 4 tuổi
Population aged 5 to 9 years được đổi tên thành p5to9: Dân số từ 5 đến 9 tuổi
Population aged 10 to 14 years được đổi tên thành p10to14: Dân số từ 10 đến 14 tuổi
Population aged 15 to 19 years được đổi tên thành p15to19: Dân số từ 15 đến 19 tuổi
Population aged 20 to 29 years được đổi tên thành p20to29: Dân số từ 20 đến 29 tuổi
Population aged 30 to 39 years được đổi tên thành p30to39: Dân số từ 30 đến 39 tuổi
Population aged 40 to 49 years được đổi tên thành p40to49: Dân số từ 40 đến 49 tuổi
Population aged 50 to 59 years được đổi tên thành p50to59: Dân số từ 50 đến 59 tuổi
Population aged 60 to 69 years được đổi tên thành p60to69: Dân số từ 60 đến 69 tuổi
Population aged 70 to 79 years được đổi tên thành p70to79: Dân số từ 70 đến 79 tuổi
Population aged 80 to 89 years được đổi tên thành p80to89: Dân số từ 80 đến 89 tuổi
Population aged 90 to 99 years được đổi tên thành p90to99: Dân số từ 90 đến 99 tuổi
Population older than 100 years được đổi tên thành po100: Dân số lớn hơn 100 tuổi
Thực hiện lọc 5 quốc gia cần phân tích, ở đây phân tích “China, Japan, Spain, Thailand, Vietnam”
Chọn 5 cột số liệu về các độ tuổi của dân số trong các năm, ở đây phân tích tổng dân số của 5 quốc gia (p), dân số trẻ em dưới 15 tuổi (pcu15), dân số dưới 25 tuổi (pu25), dân số từ 30 đến 39 tuổi (p30to39), dân số từ 70 đến 79 tuổi (p70to79)
Xóa bỏ các cột thừa chỉ giữ lại 7 cột cần lấy dữ liệu để phân tích và gán cho dữ liệu mới một object p1
p1 <- filter(p, cn == 'China' | cn == 'Japan' | cn == 'Spain' | cn == 'Thailand' | cn == 'Vietnam') %>% select(-c('pcu1','pcu5','p15to64','po15','po18','p1','p1to4','p5to9','p10to14','p15to19','p20to29','p40to49','p50to59','p60to69','p80to89','p90t90to99','po100'))
datatable(p1)
Qua bảng trên ta có thể thấy được, dân số của 5 nước trên hầu như tăng dần qua từng năm
Tiến hành in ra một bảng tần suất dựa trên các giá trị của biến cn trong đối tượng dữ liệu p1.
Bảng tần suất là một cách để hiển thị dữ liệu theo cách cho thấy số lần mỗi giá trị xuất hiện. Trong trường hợp này, bảng tần suất sẽ cho biết có bao nhiêu quan sát cho mỗi giá trị duy nhất có trong biến cn của p1. Điều này sẽ cung cấp cho bạn tổng quan về số lượng quan sát thuộc mỗi danh mục quốc gia.
table(p1$cn)
##
## China Japan Spain Thailand Vietnam
## 72 72 72 72 72
Tiến hành phân tích về dân số của Vietnam
Tạo một biến mới trong đối tượng dữ liệu p1 gọi là cn.Coded. Để biết được giá trị dữ liệu nào là của Vietnam. Giá trị của biến này sẽ được xác định bởi câu lệnh điều kiện sau:
p1$cn.Coded <- ifelse(p1$cn == 'Vietnam','Vietnam','other country')
datatable(p1)
p2 <- filter(p1, cn == 'Vietnam') %>% select (cn, p30to39)
datatable(p2)
p2$p30to39.Coded2 <- case_when(p2$p30to39 < 4000000 ~ 'mật độ dân số thấp', p2$p30to39 >= 4000000 & p2$p30to39 <= 10000000 ~ 'mật độ dân số trung bình', p2$p30to39 > 10000000 ~ 'mật độ dân số đông')
datatable(p2)
filter(p1, cn == 'Vietnam') %>%
select(cn, p30to39) %>%
summary(p1$p30to39)
## cn p30to39
## Length:72 Min. : 3480061
## Class :character 1st Qu.: 4313676
## Mode :character Median : 7073500
## Mean : 8300103
## 3rd Qu.:11843949
## Max. :15962702
Kết quả trả về cho thấy:
Min: cho thấy giá trị thấp nhất trong cột p30to39 của Việt Nam, là 3480061
1st Qu. (tứ phân vị thứ nhất): Giá trị này đại diện cho giá trị mà 25% các điểm dữ liệu trong cột p30to39 nằm dưới, cho thấy 25% dân số Việt Nam thuộc nhóm tuổi 30-39 có giá trị thấp hơn 4313676
Median: Đây là giá trị trung bình của cột p30to39, cho thấy một nửa dân số Việt Nam thuộc nhóm tuổi 30-39 có giá trị thấp hơn và một nửa có giá trị cao hơn 7073500
Mean: Đây là giá trị trung bình của cột p30to39, trong trường hợp này là 8300103
3rd Qu. (tứ phân vị thứ ba): Giá trị này đại diện cho giá trị mà 75% các điểm dữ liệu trong cột p30to39 nằm dưới, cho thấy 75% dân số Việt Nam thuộc nhóm tuổi 30-39 có giá trị thấp hơn 11843949
Max (tối đa): Giá trị này cho thấy giá trị cao nhất trong cột p30to39 cho Việt Nam, là 15962702
Tạo một bản sao của dữ liệu p1 và gán nó vào một biến mới có tên p3. Ở dữ liệu p3 này, chỉ có số liệu dân số ở độ tuổi dưới 25 của Vietnam.
p3 <- filter(p1, cn == 'Vietnam') %>% select (cn, pu25)
datatable(p3)
sum(p3$pu25)
## [1] 2235306052
mean(p3$pu25, rm.na = T)
## [1] 31045917
Xử lý giá trị thiếu bằng câu lệnh: rm.na = T: Tùy chọn này được truyền cho hàm mean để chỉ định rằng bất kỳ giá trị thiếu nào (được biểu thị là NA) nên được loại bỏ trước khi tính trung bình. Điều này đảm bảo rằng chỉ các điểm dữ liệu hợp lệ được sử dụng trong tính toán.
Độ dài của cột số liệu dân số của Vietnam ở độ tuổi dưới 25 trong 72 năm:
length(p3$pu25)
## [1] 72
Kết quả trả về là 72 tương ứng với 72 năm phân tích về dân số của Vietnam.
Phương sai về dân số của Vietnam ở độ tuổi dưới 25 trong 72 năm:
var(p3$pu25)
## [1] 8.330077e+13
sd(p3$pu25)
## [1] 9126926
median(p3$pu25)
## [1] 35466660
Kết quả trả về cho thấy một nửa dân số Việt Nam thuộc nhóm tuổi dưới 25 có giá trị thấp hơn và một nửa có giá trị cao hơn 35466660
Tứ phân vị về dân số của Vietnam ở độ tuổi dưới 25 trong 72 năm:
quantile(p3$pu25, probs = c(.25,.5,.75))
## 25% 50% 75%
## 23610692 35466660 38246840
Kết quả trả về cho thấy:
1st Qu. (tứ phân vị thứ nhất): Giá trị này đại diện cho giá trị mà 25% các điểm dữ liệu trong cột pu25 nằm dưới, cho thấy 25% dân số Việt Nam thuộc nhóm tuổi dưới 25 có giá trị thấp hơn 23610692
Median: Đây là giá trị trung bình của cột pu25, cho thấy một nửa dân số Việt Nam thuộc nhóm tuổi dưới 25 có giá trị thấp hơn và một nửa có giá trị cao hơn 35466660
3rd Qu. (tứ phân vị thứ ba): Giá trị này đại diện cho giá trị mà 75% các điểm dữ liệu trong cột pu25 nằm dưới, cho thấy 75% dân số Việt Nam thuộc nhóm tuổi dưới 25 có giá trị thấp hơn 38246840
VNTL <- p1 %>%
filter(cn == 'China' | cn == 'Japan' | cn == 'Spain' | cn == 'Thailand' | cn == 'Vietnam') %>%
group_by(cn, p) %>%
summarise(mean_of_p = mean(p), .groups = 'drop')
datatable(VNTL)
mean(VNTL$mean_of_p)
## [1] 259598624
t1 <- p1 %>%
filter(y == '2020') %>%
group_by(cn, y, p70to79) %>%
summarise(mean_of_p70to79 = mean(p70to79), .groups = 'drop')
datatable(t1)
mean(t1$mean_of_p70to79)
## [1] 20633026
nam <- p1 %>%
filter(y == '1970' | y == '1990') %>%
group_by(cn, y, pcu15) %>%
summarise(mean_of_pcu15 = mean(pcu15), .groups = 'drop')
datatable(nam)
mean(nam$mean_of_pcu15)
## [1] 80977349
Nắm bắt sự thay đổi về GDP của China, France, Italy, Mexico trong 57 năm từ năm 1960 đến năm 2016
Nắm bắt sự thay đổi về GDP của China thông qua các đặc trưng đo lường
Biết được trung bình về GDP trong 57 năm của 4 quốc gia
Biết được các giá trị trung bình về GDP của 4 quốc gia trong năm 1980
Biết được các giá trị trung bình về GDP của 4 quốc gia ở năm 2010 và năm 2012
Sử dụng các phương pháp:
Mã hóa dữ liệu
Tạo bảng tần số
Tính toán các đặc trưng đo lường
Dữ liệu trong file gdp4country.xlsx nói về GDP của 4 quốc gia được phân tích trong 57 năm từ năm 1960 đến năm 2016
Có 228 hàng tương ứng với 228 quan sát
Có 4 cột tương ứng với 4 biến
Country name: Tên Quốc Gia
Country Code: Mã quốc gia
Year: Năm lấy số liệu
Value: Giá trị GDP
library(xlsx)
gdp <- read.xlsx(file.choose(), sheetIndex = 1, header = T)
datatable(gdp)
Qua bảng trên ta có thể thấy được, GDP của 4 nước trên hầu như tăng dần qua từng năm (nhưng cũng có 1 vài năm GDP giảm)
Tiến hành in ra một bảng tần suất dựa trên các giá trị của biến Country.Name trong đối tượng dữ liệu gdp.
table(gdp$Country.Name)
##
## China France Italy Mexico
## 57 57 57 57
Tiến hành phân tích về GDP của China
Tạo một biến mới trong đối tượng dữ liệu gdp gọi là China.Coded. Để biết được giá trị dữ liệu nào là của China. Giá trị của biến này sẽ được xác định bởi câu lệnh điều kiện sau:
gdp$China.Coded <- ifelse(gdp$Country.Name == 'China','China','other country')
datatable(gdp)
library(dplyr)
gdp.China <- filter(gdp, Country.Name == 'China') %>% select (Country.Name, Value)
datatable(gdp.China)
gdp.China$Value.China <- case_when(gdp.China$Value < 200000000000 ~ 'chỉ số gdp ở mức thấp', gdp.China$Value >= 200000000000 & gdp.China$Value <= 1000000000000 ~ 'chỉ số gdp ở mức trung bình', gdp.China$Value > 1000000000000 ~ 'chỉ số gdp ở mức cao')
datatable(gdp.China)
filter(gdp, Country.Name == 'China') %>%
select(Country.Name, Value) %>%
summary(gdp$Value)
## Country.Name Value
## Length:57 Min. :4.721e+10
## Class :character 1st Qu.:1.442e+11
## Mode :character Median :3.124e+11
## Mean :1.791e+12
## 3rd Qu.:1.471e+12
## Max. :1.120e+13
Kết quả trả về cho thấy:
Min: cho thấy giá trị thấp nhất về GDP của China, là 4.721e+10
1st Qu. (tứ phân vị thứ nhất): cho thấy 25% GDP của China có giá trị thấp hơn 1.442e+11
Median: cho thấy một nửa GDP của China có giá trị thấp hơn và một nửa có giá trị cao hơn 3.124e+11
Mean: Đây là giá trị trung bình về GDP của China là 1.791e+12
3rd Qu. (tứ phân vị thứ ba): cho thấy 75% GDP của China có giá trị thấp hơn 1.471e+12
Max (tối đa): Giá trị này cho thấy giá trị cao nhất về GDP của China, là 1.120e+13
Từ dữ liệu gdp.China đã được tạo ở trên, ta tiến hành tính các đặc trưng đo lường về GDP của China
Tổng GDP của China từ năm 1960 đến năm 2016:
sum(gdp.China$Value)
## [1] 1.020587e+14
length(gdp.China$Value)
## [1] 57
Kết quả trả về là 57 tương ứng với 57 năm phân tích về GDP của China.
Phương sai về GDP của China từ năm 1960 đến năm 2016:
var(gdp.China$Value)
## [1] 9.396759e+24
sd(gdp.China$Value)
## [1] 3.065413e+12
tb.gdp <- gdp %>%
group_by(Country.Name, Value) %>%
summarise(mean_of_Value = mean(Value), .groups = 'drop')
datatable(tb.gdp)
mean(tb.gdp$mean_of_Value)
## [1] 1.072052e+12
tb.y <- gdp %>%
filter(Year == '1980') %>%
group_by(Country.Name, Year, Value) %>%
summarise(mean_of_Value = mean(Value), .groups = 'drop')
datatable(tb.y)
mean(tb.y$mean_of_Value)
## [1] 391178461702
tb.2y <- gdp %>%
filter(Year == '2010' | Year == '2012') %>%
group_by(Country.Name, Year, Value) %>%
summarise(mean_of_Value = mean(Value), .groups = 'drop')
datatable(tb.2y)
mean(tb.2y$mean_of_Value)
## [1] 3.303129e+12