Nhiệm vụ 3.1 yêu cầu thực hiện các thao tác đã học trên bộ dữ liệu population-and-demography
Bộ dư liệu cung cấp thông tin về Dân số và Nhân khẩu học của các quốc gia theo các năm và từng độ tuổi
Nguồn tham khảo của bộ dữ liệu : Data
population-and-demography là file csv, nên ta đọc từ file csv
Thao tác thực hiện : Ta gán bộ dữ liệu population-and-demography với tên là pp
library(csv)
pp <- read.csv("D:/UFM/2024- Kì 1/Ngôn Ngữ Lập Trình/population-and-demography.csv", header = T)
Bộ dữ liệu pp bao gồm 18288 obs (quan sát) và 24 variables (biến)
Có thể biết được số quan sát và số biến thông qua lệnh dim*, kết quả trả về gồm 2 giá trị số
Số 18288 đại diện cho tổng số quan sát
Số 24 đại diện cho tống số biến
dim(pp)
## [1] 18288 24
Độ dài của bộ dữ liệu pp là 24
Có thể biết được độ dài hay cũng có thể là số biến thông qua lệnh length, kết quả trả về giá trị số
length(pp)
## [1] 24
Các thông tin được biết như : số lỗ hỏng/ bỏ trống (n_missing), số trung bình (mean), độ lệch chuẩn (sd) ,… Có thể xem thêm các thông tin khác bên dưới :
library(skimr)
skim(pp)
Name | pp |
Number of rows | 18288 |
Number of columns | 24 |
_______________________ | |
Column type frequency: | |
character | 1 |
numeric | 23 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
Country.name | 0 | 1 | 4 | 59 | 0 | 254 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
Year | 0 | 1 | 1985.50 | 20.78 | 1950 | 1967.75 | 1985.5 | 2003.25 | 2021 | ▇▇▇▇▇ |
Population | 0 | 1 | 126470436.62 | 588851230.77 | 1363 | 291591.50 | 3833997.5 | 16785463.50 | 7909295000 | ▇▁▁▁▁ |
Population.of.children.under.the.age.of.1 | 0 | 1 | 3133496.86 | 14167006.03 | 25 | 6663.75 | 88352.0 | 463000.50 | 139783730 | ▇▁▁▁▁ |
Population.of.children.under.the.age.of.5 | 0 | 1 | 14825709.57 | 67384368.62 | 136 | 31995.25 | 423784.5 | 2160046.50 | 690360700 | ▇▁▁▁▁ |
Population.of.children.under.the.age.of.15 | 0 | 1 | 41095227.11 | 188416973.54 | 416 | 89541.50 | 1186121.5 | 5905944.75 | 2015023400 | ▇▁▁▁▁ |
Population.under.the.age.of.25 | 0 | 1 | 63762600.31 | 294251869.66 | 623 | 139541.50 | 1843099.5 | 9025129.75 | 3239281000 | ▇▁▁▁▁ |
Population.aged.15.to.64.years | 0 | 1 | 77429505.08 | 367651914.71 | 748 | 170263.50 | 2246772.0 | 9641250.00 | 5132999000 | ▇▁▁▁▁ |
Population.older.than.15.years | 0 | 1 | 85372101.76 | 404866940.61 | 849 | 186716.00 | 2482104.0 | 10354345.50 | 5893678600 | ▇▁▁▁▁ |
Population.older.than.18.years | 0 | 1 | 78196242.04 | 372017010.49 | 752 | 166417.50 | 2238130.5 | 9239904.00 | 5516283000 | ▇▁▁▁▁ |
Population.at.age.1 | 0 | 1 | 3011212.81 | 13661998.41 | 26 | 6473.75 | 85824.0 | 440787.50 | 138478740 | ▇▁▁▁▁ |
Population.aged.1.to.4.years | 0 | 1 | 11692212.72 | 53238243.89 | 101 | 25269.25 | 334454.0 | 1697850.75 | 550970400 | ▇▁▁▁▁ |
Population.aged.5.to.9.years | 0 | 1 | 13598575.21 | 62534310.11 | 138 | 29406.25 | 392220.5 | 1947260.75 | 683611800 | ▇▁▁▁▁ |
Population.aged.10.to.14.years | 0 | 1 | 12670942.28 | 58775457.46 | 73 | 27879.50 | 363895.5 | 1796754.00 | 659934300 | ▇▁▁▁▁ |
Population.aged.15.to.19.years | 0 | 1 | 11782258.92 | 55126036.18 | 110 | 26296.50 | 336969.5 | 1626210.75 | 623576060 | ▇▁▁▁▁ |
Population.aged.20.to.29.years | 0 | 1 | 20872880.04 | 98860990.50 | 158 | 45050.75 | 609723.5 | 2758738.50 | 1210493200 | ▇▁▁▁▁ |
Population.aged.30.to.39.years | 0 | 1 | 17158704.11 | 82404600.95 | 137 | 36608.25 | 486290.5 | 2113149.00 | 1165207300 | ▇▁▁▁▁ |
Population.aged.40.to.49.years | 0 | 1 | 13622138.99 | 66008221.21 | 119 | 27440.25 | 364712.5 | 1556334.00 | 976407200 | ▇▁▁▁▁ |
Population.aged.50.to.59.years | 0 | 1 | 10177069.11 | 49288480.77 | 95 | 19649.75 | 264781.5 | 1203386.00 | 851356900 | ▇▁▁▁▁ |
Population.aged.60.to.69.years | 0 | 1 | 6801756.84 | 32712918.99 | 64 | 12603.00 | 168417.5 | 845242.75 | 598067140 | ▇▁▁▁▁ |
Population.aged.70.to.79.years | 0 | 1 | 3618710.03 | 17491538.61 | 31 | 6221.00 | 81824.0 | 436710.00 | 330491170 | ▇▁▁▁▁ |
Population.aged.80.to.89.years | 0 | 1 | 1195799.30 | 6238308.33 | 6 | 1818.75 | 20269.5 | 133380.50 | 131835590 | ▇▁▁▁▁ |
Population.aged.90.to.99.years | 0 | 1 | 142784.38 | 853350.39 | 0 | 154.75 | 1468.5 | 12499.00 | 22223974 | ▇▁▁▁▁ |
Population.older.than.100.years | 0 | 1 | 3107.72 | 20951.57 | 0 | 0.00 | 13.0 | 163.00 | 593166 | ▇▁▁▁▁ |
Bộ dữ liệu pp có 24 biến và tên tương ứng
Có thể biết được tên của từng biến cụ thể thông qua lệnh names
names(pp)
## [1] "Country.name"
## [2] "Year"
## [3] "Population"
## [4] "Population.of.children.under.the.age.of.1"
## [5] "Population.of.children.under.the.age.of.5"
## [6] "Population.of.children.under.the.age.of.15"
## [7] "Population.under.the.age.of.25"
## [8] "Population.aged.15.to.64.years"
## [9] "Population.older.than.15.years"
## [10] "Population.older.than.18.years"
## [11] "Population.at.age.1"
## [12] "Population.aged.1.to.4.years"
## [13] "Population.aged.5.to.9.years"
## [14] "Population.aged.10.to.14.years"
## [15] "Population.aged.15.to.19.years"
## [16] "Population.aged.20.to.29.years"
## [17] "Population.aged.30.to.39.years"
## [18] "Population.aged.40.to.49.years"
## [19] "Population.aged.50.to.59.years"
## [20] "Population.aged.60.to.69.years"
## [21] "Population.aged.70.to.79.years"
## [22] "Population.aged.80.to.89.years"
## [23] "Population.aged.90.to.99.years"
## [24] "Population.older.than.100.years"
Với bộ dữ liệu pp, tên của các biến được đặt để người đọc của thể hiểu rõ về thông tin dân số cụ thể của từng độ tuổi, nhưng độ dài trong mỗi tên cũng gây khó khăn và mất thời gian trong việc rút trích dữ liệu
Thông qua lệnh names - giúp đổi tên các biến, từ đó dữ liệu trở nên ngắn gọn, dễ dàng thao tác và tiết kiệm thời gian
Với bộ dữ liệu pp ta tiến hành đổi :
names(pp) <- c('ten','year','popu','un1','un5','un15','un25','15to64','old15','old18','at1','a1to4','a5to9','a10to14','a15to19','a20to29','a30to39','a40to49','a50to59','a60to69','a70to79','a80to89','a90to99','old100')
names(pp)
## [1] "ten" "year" "popu" "un1" "un5" "un15" "un25"
## [8] "15to64" "old15" "old18" "at1" "a1to4" "a5to9" "a10to14"
## [15] "a15to19" "a20to29" "a30to39" "a40to49" "a50to59" "a60to69" "a70to79"
## [22] "a80to89" "a90to99" "old100"
Trong bộ dữ liệu pp, cung cấp rất nhiều thông tin của nhiều quốc gia và vùng lãnh thổ trên thế giới về dân số và nhân khẩu học của nước đó. Ta có thể tiến hành một trong số đó để tiến hành phân tích
Ta chọn 6 trong số các quốc gia và vùng lãnh thổ có trong bộ dữ liệu để phân tích, 6 quốc gia được chọn thuộc khu vực** East Asia - Đông Á ,trong đó gồm :
1. China - Trung Quốc
2. Hong Kong - Hồng Kong
3. Taiwan - Đài Loan
4. South Korea - Hàn Quốc
5. North Korea - Triều Tiên
6. Japan - Nhật Bản
Trong bộ dữ liệu pp cũng đã tổng hợp số liệu về tổng dân số cũng như số dân ở các độ tuổi khác nhau theo từng năm (bắt đầu từ năm 1950 - đến năm 2021) của các quốc gia và vùng lãnh thổ đã nêu trên
Ta tiến hành chọn 5 trong các mức độ tuổi đã có trong bộ dữ liệu, 5 mức độ tuổi gồm :
1. Population of children under the age of 15 - Dân số về trẻ em dưới 15 tuổi
2. Population aged 20 to 29 years - Dân số độ tuổi từ 20 - 29 tuổi
3. Population aged 50 to 59 years - Dân số độ tuổi từ 50 - 59 tuổi
4. Population aged 80 to 89 years - Dân số độ tuổi từ 80 - 89 tuổi
5. Population older than 100 years - Dân số trên 100 tuổi
Trung Quốc - quốc hiệu là Cộng hòa Nhân dân Trung Hoa là một quốc gia nằm ở khu vực Đông Á. Là một trong hai quốc gia tỷ dân và là quốc gia có số dân đông thứ 2 thế giới, nên ta sẽ phân tích nó ở phần tổng dân số - population
Trước tiên trong 18,288 quan sát có trong bộ dữ liệu, sẽ có rất nhiều quốc gia và vùng lãnh thổ khác nhau, hiện tại ta đang muốn phân tích về dân số của Trung Quốc
Ta tiến hành kiểm tra trong 18288 quan sát, có bao nhiêu quan sát của của Trung Quốc
CN <- pp
CN$ten.Coded <- ifelse(CN$ten == 'China', 'Trung Quốc', 'Nước khác')
table(CN$ten.Coded)
##
## Nước khác Trung Quốc
## 18216 72
Kết quả thu được có 72 quan sát là của Trung Quốc, 18,216 quan sát là của quốc gia khác trong bộ dữ liệu pp
Và không chỉ riêng Trung Quốc, mỗi quốc gia khác đều có số liệu tính trong 72 năm (1950-2021)
Thông tin cung cấp của bộ dữ liệu pp là của nhiều quốc gia, nên ta tiến hành lọc các thông tin/ quan sát của China - Trung Quốc để phân tích được thuận tiện hơn
Sau đó, ta tiếp tục tiến hành xem xét trong hơn 72 năm (1950-2021), với mệnh danh là đất nước tỷ dân - Trung Quốc đã có bao nhiêu năm có tổng số dân vượt quá 1 tỷ người
China <- CN[CN$ten == 'China',]
CN1 <- China
CN1$popu.Coded1 <- ifelse(CN1$popu >= 1000000000, 'More1B', 'Under1B')
table(CN1$popu.Coded1)
##
## More1B Under1B
## 40 32
Với dữ liệu đã lọc/ rút tríc từ dữ liệu gốc, ta có 1 bộ dữ liệu mang tên China - bao gồm 72 obs quan sát, 26 variables biến
Và trong 72 năm (1950-2021), Trung Quốc đã có 40 năm hơn 1 tỷ dân - More1B và 32 năm dưới 1 tỷ dân - Under1B
Đài Loan là đảo quốc và là một quốc gia có chủ quyền thuộc khu vực Đông Á
Hong Kong là một vùng đô thị đặc biệt, cũng như một trong hai đặc khu hành chính của Cộng hòa Nhân dân Trung Hoa (cùng với Ma Cao)
Dân số của Đài Loan - Taiwan và Hong Kong sẽ có phần khiêm tốn hơn so với đất nước tỷ dân Trung Quốc và cả trên thế giới. Mặc dù vậy, nhưng quốc gia và vùng lãnh thổ này lại có nền kinh tế không hề khiêm tốn như vậy
Với 2 quốc gia/vùng lãnh thổ đặc biệt này, ta sẽ tiến hành phân tích Dân số dưới 15 tuổi
TK <- pp
Taikong <- TK[TK$ten =='Taiwan' | TK$ten =='Hong Kong',]
table(cut(Taikong$un15,3))
##
## (5.89e+05,2.48e+06] (2.48e+06,4.36e+06] (4.36e+06,6.25e+06]
## 72 24 48
Taikong$un15.c <- cut(Taikong$un15,3, labels = c('Ít','Vừa','Nhiều'))
Đầu tiên ta tiến hành rút dữ liệu chỉ còn có biến của Đài Loan và Hong Kong, dữ liệu đó mang tên TaiKong
Sau đó ta dùng lệnh cut để chia thông tin dân số dưới 15 tuổi thành 3 khoảng, bao gồm :
Khoảng thứ nhất được gọi là Ít với dân số khoảng 500 ngàn người - đến hơn 2 triệu người
Khoảng thứ hai được gọi là Vừa với dân số khoảng 2 triệu người - đến hơn 4 triệu người
Khoảng thứ ba được gọi là Nhiều với dân số khoảng 4 triệu người - đến hơn 6 triệu người
Người ở đây là tổng dân số dưới 15 tuổi ở Hong Kong và Taiwan
table(Taikong$un15.c)
##
## Ít Vừa Nhiều
## 72 24 48
table(Taikong$un15.c,Taikong$ten)
##
## Hong Kong Taiwan
## Ít 72 0
## Vừa 0 24
## Nhiều 0 48
Sau đó ta tiến hành lập bảng tần số cho khoảng mà ta đã chia ở phía trên, và thu được kết quả :
Hong Kong có 72 năm có số dân dưới 15 tuổi rơi vào khoảng 500 ngàn người - đến hơn 2 triệu người
Đài Loan có 24 năm có số dân dưới 15 tuổi rơi vào khoảng 2 triệu người - đến hơn 4 triệu người và 48 năm có số dân dưới 15 tuổi rơi vào khoảng 4 triệu người - đến hơn 6 triệu người
Hàn Quốc là một quốc gia ở Đông Á, cấu thành nửa phía nam của bán đảo Triều Tiên và ngăn cách với Triều Tiên qua Khu phi quân sự vĩ tuyến 38
Triều Tiên là một quốc gia cũng ở Đông Á trên nửa phía Bắc của Bán đảo Triều Tiên, tách biệt với Hàn Quốc ở miền Nam
Hàn Quốc và Triều Tiên luôn là 2 quốc gia làm tốn không ít giấy mực của các tờ báo quốc tế không chỉ về mặt kinh tế, quân sự, dân số,….
Với bài phân tích hiện tại, ta sẽ phân tích về dân số của 2 quốc gia này với 2 độ tuổi :
Dân số từ 20 - 29 tuổi (Population aged 20 to 29 years)
Dân số từ 50 - 59 tuổi (Population aged 50 to 59 years)
KR <- pp
HanTrieu <- KR[KR$ten =='North Korea' | KR$ten =='South Korea',]
table(cut(HanTrieu$a20to29,3))
##
## (1.64e+06,4.1e+06] (4.1e+06,6.56e+06] (6.56e+06,9.02e+06]
## 72 28 44
HanTrieu$a20to29.c <- cut(HanTrieu$a20to29,3, labels = c('Còn ít','Trung bình','Nhiều'))
Ta dùng lệnh cut để chia thông tin Dân số từ 20 - 29 tuổi thành 3 khoảng, bao gồm :
Khoảng thứ nhất được gọi là Còn ít với dân số khoảng hơn 1 triệu ngàn người - đến hơn 4 triệu người
Khoảng thứ hai được gọi là Trung bình với dân số khoảng hơn 4 triệu người - đến hơn 6 triệu người
Khoảng thứ ba được gọi là Nhiều với dân số khoảng hơn 4 triệu người - đến hơn 9 triệu người
table(HanTrieu$a20to29.c,HanTrieu$ten)
##
## North Korea South Korea
## Còn ít 63 9
## Trung bình 9 19
## Nhiều 0 44
Sau đó ta tiến hành lập bảng tần số cho khoảng mà ta đã chia ở phía trên, và thu được kết quả :
Triều tiên - North Korea có :
63 năm có số dân từ 20-29 tuổi rơi vào khoảng Còn ít
9 năm có số dân từ 20-29 tuổi rơi vào khoảng Trung bình
Hàn Quốc - South Korea có :
9 năm có số dân từ 20-29 tuổi rơi vào khoảng Còn ít
19 năm có số dân từ 20-29 tuổi rơi vào khoảng Trung bình
44 năm có số dân từ 20-29 tuổi rơi vào khoảng Nhiều
Từ đó, ta có thể so sánh dễ dàng, số người trẻ ở Hàn Quốc nhiều hơn hẳn so với Triều Tiên
HanTrieu$a50to59.c <- cut(HanTrieu$a50to59,3)
table(cut(HanTrieu$a50to59,3))
##
## (5.51e+05,3.24e+06] (3.24e+06,5.91e+06] (5.91e+06,8.6e+06]
## 104 27 13
HanTrieu$a50to59.c <- cut(HanTrieu$a50to59,3, labels = c('Ít','Vừa','Đông'))
Với cách hiểu giống như độ tuổi 20-29, thì ở độ tuổi 50-59 cũng giống như vậy
Ta cũng dùng lệnh cut để chia thông tin Dân số từ 50 - 59 tuổi thành 3 khoảng Ít, Vừa, Đông
table(HanTrieu$a50to59.c,HanTrieu$ten)
##
## North Korea South Korea
## Ít 66 38
## Vừa 6 21
## Đông 0 13
Kết Quả ta có thể thấy như phía trên - ta phân tích và đưa ra so sánh tương tự như ở độ tuổi 20-29
Nhật Bản là một quốc gia và đảo quốc có chủ quyền nằm ở khu vực Đông Á
Nhật Bản nổi tiếng với tuổi thọ cao nhất thế giới, vì họ có bí quyết và chế độ ăn rất lành mạnh
Nên ta sẽ tiến hành phân tích Dân số của Nhật Bản trên 100 tuổi - Population older than 100 years
Ngoài ra ta cũng sẽ tiến hành so sánh Nhật Bản so với các nước trong khu vực Đông Á
Đấu tiên ta tiến hành rút dữ liệu của 6 quốc gia khu vực Đông Á đã nêu trên, với tên DongA gồm 432 quan sát và 24 biến
EA <- pp
DongA <- EA[EA$ten == 'China'| EA$ten == 'Hong Kong'| EA$ten == 'Taiwan'| EA$ten =='North Korea'| EA$ten =='South Korea'| EA$ten =='Japan',]
Sau đó ta lại tiến hành cut/chia số dân có tuổi trên 100 thành 4 khoảng
Khoảng thứ nhất : từ 0 - hơn 30 ngàn người
Khoảng thứ hai : từ 30 ngàn - hơn 60 ngàn người
Khoảng thứ ba : từ 60 ngàn - hơn 90 ngàn người
Khoảng thứ tư : từ 90 ngàn - 100 ngàn người
Khác với các bảng tần số phía trên, ta sẽ ghi số liệu người cụ thể thay vì là Ít Vừa Nhiều như các so sánh phía trên
DongA$old100.C <- cut(DongA$old100,4)
table(cut(DongA$old100,4))
##
## (-132,3.29e+04] (3.29e+04,6.59e+04] (6.59e+04,9.88e+04] (9.88e+04,1.32e+05]
## 411 9 6 6
DongA$old100.c <- cut(DongA$old100,4, labels = c('ít hơn 30k người','Từ 30k-60k người','Từ 60k-90k người','Từ 90k-100k người'))
table(DongA$old100.c,DongA$ten)
##
## China Hong Kong Japan North Korea South Korea Taiwan
## ít hơn 30k người 70 72 53 72 72 72
## Từ 30k-60k người 2 0 7 0 0 0
## Từ 60k-90k người 0 0 6 0 0 0
## Từ 90k-100k người 0 0 6 0 0 0
Kết quả cho ta thấy được sự khác biệt rõ rệt của Nhật Bản so với các nước còn lại
Trong khi nhật bản có tới 12 năm có số dân trên 100 tuổi từ 60 ngàn tới 100 ngàn người, thì các nước khác lại số năm lại bằng 0
Các nước khác như Hàn Quốc, Triều Tiên,… thì 72 năm, số dân trên 100 tuổi chỉ ít hơn 30 ngàn người
1. Mean - số trung bình hay là một điểm giữa của một tập hợp/ đối tượng được yêu cầu
2. Median - sô trung vị hay là một điểm trung tâm trong một danh sách được sắp xếp tăng hoặc giảm dần (nó khác trung bình ở chỗ nó chia đối tượng ra làm đôi và chưa chắc 2 bên đó sẽ cân bằng nhau)
3. Variance - phương sai là phép đo mức chênh lệch giữa các số liệu trong một tập dữ liệu được yêu cầu so với giá trị trung bình
4. Standard deviation - Sd - độ lệch chuẩn là độ lệch so với tiêu chuẩn, dữ liệu nào cũng sẽ có sai số nhất định. Nên nếu sự chênh lệch không đáng kể thì độ lệch chuẩn cũng như tính biến động ở mức thấp và ngược lại
5. Ngoài ra còn có đặc trưng khác : Max - giá trị lớn nhất, Min - giá trị nhỏ nhất, 1st Qu.,3rd Qu. - phân vị thứ 1, thứ 3,….
Ta sẽ đa số tiến hành tính toán 2 trong số các giá trị phía trên là Mean và Med
Ta tính các giá trị đặc trưng đo lường của tổng dân số của Trung Quốc trong 72 năm
Lệnh summary() như một bản tóm tắt các giá trị đặc trưng đã nêu bên trên về một đối tượng nào đó mà ta yêu cầu, ta có thể tính từng đặc trưng riêng hoặc có thể xem chỉ trong summary
Với lệnh summary(China$popu) - biểu thị các đặc trưng về tổng dân số của Trung Quốc trong 72 năm, ta có thể xem :
summary(China$popu)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.440e+08 7.755e+08 1.069e+09 1.036e+09 1.291e+09 1.426e+09
Kết quả có ý nghĩa như sau :
Min - Giá trị nhỏ nhất : Tổng dân số ít nhất của Trung Quốc từng ghi nhận trong 72 năm là khoảng 543 triệu người
1st Qu. - Phân vị thứ nhất :là con số chia tách dữ liệu thành 2 phần bằng nhau, trong đó 25% dữ liệu thấp hơn và 75% dữ liệu cao hơn số phân vị
Cụ thể - Số phân vị thứ nhất 775 triệu chia tách tổng dân số TQ lúc này làm 2, trong đó :
25% tổng dân số sẽ thấp hơn 775 triệu người
75% tổng dân số sẽ cao hơn 775 triệu
Median - Trung vị : là khoảng 1,06 tỷ, nó giống tứ phân vị thứ nhất nhưng khác ở chỗ chia tổng dân số làm 50%-50%
50% tổng dân số sẽ thấp hơn 1,06 tỷ
50% tổng dân số sẽ cao hơn 1,06 tỷ
Mean - Gía trị trung bình : là khoảng 1,03 tỷ, con số này là giá trị trung bình mỗi năm tổng dân số Trung Quốc là khoảng 1,03 tỷ người
3rd Qu. - Phân vị thứ ba : là 1.03 tỷ, nó giống tứ phân vị thứ nhất nhưng khác ở chỗ chia tổng dân số làm 75%-25%
75% tổng dân số sẽ thấp hơn 1.03 tỷ người
25% tổng dân số sẽ cao hơn 1,03 tỷ người
Max - Gía trị lớn nhất : ổng dân số đông nhất của Trung Quốc từng ghi nhận trong 72 năm là khoảng 1,4 tỷ người
Ta có thể xem tóm tắt trong bảng summary hoặc tính riêng bằng lệnh mean()
Lệnh mean() cho biết số trung bình của đối tượng được yêu cầu
Cụ thể tính trung bình tổng dân số của Trung Quốc trong 72 năm bằng lệnh mean(China$popu)
Kết quả thu được là : 1,035,531,645 người
Ý nghĩa : trung bình mỗi năm tổng dân số ghi nhận được của Trung Quốc là 1,035,531,645 người
mean(China$popu,na.rm = T)
## [1] 1035531645
Ta có thể xem tóm tắt trong bảng summary hoặc tính riêng bằng lệnh median()
Lệnh median() cho biết số trung vị của đối tượng được yêu cầu
Cụ thể tính trung vị của tổng dân số của Trung Quốc trong 72 năm bằng lệnh median(China$popu)
Kết quả thu được là : 1,069,005,250 người
Ý nghĩa : con số 1,069,005,250 chia tổng dân số Trung Quốc làm 2, một nửa sẽ trên 1 tỷ người và một nửa sẽ dưới 1 tỷ người đó
median(China$popu)
## [1] 1069005250
Ta sẽ tiến hành tính Tổng trung bình dân số của các quốc gia tại Đông Á đã nêu trên trong 72 năm
Cụ thể tính trung bình tổng dân số của 6 nước Đông Á trong 72 năm bằng lệnh mean(popu)
ten - là tên các quốc gia cụ thể
n - là số năm, kết quả của mỗi nước là 72, có nghĩa là tổng trung bình được tính trong 72 năm
meanofAE - là tên ta đặt cho lệnh mean(popu), có nghĩa là trung bình dân số của quốc gia Đông Á
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
trungbinhpp <- DongA %>% group_by(ten) %>% summarise(n = n(),meanofAE = mean(popu))
trungbinhpp
ten | n | meanofAE |
---|---|---|
China | 72 | 1035531645 |
Hong Kong | 72 | 5244305 |
Japan | 72 | 114649992 |
North Korea | 72 | 18871336 |
South Korea | 72 | 39063442 |
Taiwan | 72 | 18042708 |
Ta sẽ tiến hành tính Trung vị của các quốc gia tại Đông Á đã nêu trên trong 72 năm
Cụ thể tính trung vị dân số dưới 1 tuổi của 6 nước Đông Á bằng lệnh mmedian(un1)
ten - là tên các quốc gia cụ thể
trungviQG - là tên ta đặt cho lệnh med(un1)
Kết quả trả về có ý nghĩa : Ví dụ về Trung Quốc Trong tổng dân số dưới 1 tuổi của Trung Quốc, số trung vị là 20,224,508, chính là số chính giữa/ chia làm đôi tổng dân số 1 tuổi đó, nó không phải là trung bình mà chỉ là số ngăn giữa các giá trị (Các nước còn lại tương tự như vậy)
trungviQG <- DongA %>% group_by(ten) %>% summarise(medTQ = median(un1))
trungviQG
ten | medTQ |
---|---|
China | 20224508.0 |
Hong Kong | 74874.0 |
Japan | 1384374.0 |
North Korea | 377300.5 |
South Korea | 706925.0 |
Taiwan | 337925.5 |
Ta sẽ tiến hành tính trung bình tổng dân số của các quốc gia tại Đông Á - cụ thể là 6 nước đã nêu trên tại năm 2020
Lệnh mean() cho biết số trung bình của đối tượng được yêu cầu, ngoài ra ta có yêu cầu cụ thể về năm cho lệnh group_by(year=2020) là năm 2020
Kết quả thu được tổng dân số trong năm 2020 của 6 quốc gia là 205,233,905 người
trungbinhtheonam <- DongA %>% group_by(year=2020) %>% summarise(meankhoang = mean(popu))
trungbinhtheonam
year | meankhoang |
---|---|
2020 | 205233905 |
Ta sẽ tiến hành tính trung bình tổng dân số của 6 quốc gia đã nêu trên trong từ 1950-2021 :
trungbinhtheokhoang <- DongA %>% group_by(year) %>% summarise(meankhoang = mean(popu))
trungbinhtheokhoang
year | meankhoang |
---|---|
1950 | 111523889 |
1951 | 113330424 |
1952 | 115487059 |
1953 | 117882165 |
1954 | 120324402 |
1955 | 122927605 |
1956 | 125465595 |
1957 | 128129124 |
1958 | 130823203 |
1959 | 132630082 |
1960 | 133367761 |
1961 | 133948030 |
1962 | 135901298 |
1963 | 139525980 |
1964 | 143400374 |
1965 | 147045531 |
1966 | 150649717 |
1967 | 154096030 |
1968 | 157790397 |
1969 | 161761034 |
1970 | 165743713 |
1971 | 169677579 |
1972 | 173425295 |
1973 | 177048003 |
1974 | 180468460 |
1975 | 183532216 |
1976 | 186310668 |
1977 | 188886985 |
1978 | 191333705 |
1979 | 193864628 |
1980 | 196536614 |
1981 | 199348442 |
1982 | 202391107 |
1983 | 205345665 |
1984 | 208155882 |
1985 | 211140129 |
1986 | 214359524 |
1987 | 217834053 |
1988 | 221291835 |
1989 | 224650822 |
1990 | 228122472 |
1991 | 231166202 |
1992 | 233560285 |
1993 | 235759430 |
1994 | 237856521 |
1995 | 239842834 |
1996 | 241707585 |
1997 | 243470891 |
1998 | 245146352 |
1999 | 246735399 |
2000 | 248330759 |
2001 | 249919551 |
2002 | 251417565 |
2003 | 252862874 |
2004 | 254297235 |
2005 | 255734953 |
2006 | 257184909 |
2007 | 258673416 |
2008 | 260193585 |
2009 | 261758476 |
2010 | 263335304 |
2011 | 264895795 |
2012 | 266567429 |
2013 | 268251087 |
2014 | 269854200 |
2015 | 271355138 |
2016 | 272768927 |
2017 | 274182159 |
2018 | 275308012 |
2019 | 276081486 |
2020 | 276534858 |
2021 | 276610427 |
Trang web tham khảo của bộ dữ liệu : WHO DATA
Bộ dữ liệu gồm có : 50,640 obs - quan sát và 8 variables - biến
Nội dung của bộ dữ liệu về :
Nghĩa tiếng Việt : Dữ liệu toàn cầu về COVID-19 của Tổ chức Y tế Thế giới WHO
Chuỗi dữ liệu này cho biết các trường hợp ghi nhận mắc COVID-19 và trường hợp ghi nhận đã tử vong vì COVID-19 của các quốc gia
Thời gian được tính từ tháng 1/2020 đến ngày cập nhật mới nhất là tháng 1/2024
Mỗi quốc gia và vùng lãnh thổ đều có văn phòng khu vực của WHO phụ trách, ngày ghi nhận, số trường hợp mắc và tử vong,….
Lưu ý về bộ dữ liệu : số liệu được ghi nhận được tính theo từng ngày nhưng sẽ không cách đều nhau và có tổng là 211 ngày cho mỗi quốc gia (tính từ tháng 1/2020 - tháng 1/2024)
WHO-COVID-19-global-data là file csv, nên ta đọc bộ dữ liệu từ file csv
Ta tiến hành gán bộ dữ liệu gốc với tên mới là covid
Thao tác thực hiện :
library(csv)
covid <- read.csv('D:/UFM/WHO-COVID-19-global-data.csv', header = T)
Ta có thể biết thêm các thông tin bao quát của bộ dữ liệu covid phía dưới đây
library(skimr)
skim(covid)
Name | covid |
Number of rows | 50640 |
Number of columns | 8 |
_______________________ | |
Column type frequency: | |
character | 4 |
numeric | 4 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
Date_reported | 0 | 1 | 10 | 10 | 0 | 211 | 0 |
Country_code | 211 | 1 | 0 | 2 | 1266 | 234 | 0 |
Country | 0 | 1 | 0 | 70 | 1266 | 235 | 0 |
WHO_region | 0 | 1 | 0 | 5 | 5064 | 7 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
New_cases | 14112 | 0.72 | 21193.20 | 279846.40 | -65079 | 51 | 468 | 4492.75 | 40475477 | ▇▁▁▁▁ |
Cumulative_cases | 0 | 1.00 | 1588261.25 | 7146834.64 | 0 | 2698 | 38084 | 462250.25 | 103436829 | ▇▁▁▁▁ |
New_deaths | 26479 | 0.48 | 290.27 | 1233.71 | -3432 | 4 | 21 | 110.00 | 47687 | ▇▁▁▁▁ |
Cumulative_deaths | 0 | 1.00 | 18681.03 | 77848.56 | 0 | 20 | 410 | 6025.25 | 1161235 | ▇▁▁▁▁ |
Trong bộ dữ liệu covid, cung cấp rất nhiều thông tin của nhiều quốc gia và vùng lãnh thổ trên thế giới về việc ghi nhận ca của đại dịch COVID-19. Ta có thể tiến hành một trong số đó để tiến hành phân tích
Ta chọn 5 quốc gia trong số các quốc gia và vùng lãnh thổ để phân tích, trong đó gồm :
1. Viet Nam - Việt Nam
2. Cambodia - Campuchia
3. Thailand - Thái Lan
4. China - Trung Quốc
5. India - Ấn Dộ
Trong bộ dữ liệu covid, cũng đã tổng hợp số liệu về các ca mắc và tử vong ghi nhận theo ngày tháng năm của các quốc gia và vùng lãnh thổ
Ta tiến hành chọn trong các thông tin ghi nhận đó, bao gồm :
1. New_cases - Số trường hợp ghi nhận mắc covid (theo từng ngày riêng biệt, không tích lũy/ cộng dồn)
2. New_death - Sô trường hợp ghi nhận đã tử vong (theo từng ngày riêng biệt, không tích lũy/ cộng dồn)
3. Cumulative_cases - Số ca ghi nhận tích lũy mắc covid (có cộng dồn từng ngày)
4. Cumulative_deaths - Số trường hợp ghi nhận tích lũy đã tử vong vì covid (có cộng dồn từng ngày)
Trong bài phân tích về tình hình covid-19, ta sẽ phân tích trên 3 nước : Việt Nam - Thái Lan - Campuchia trước tiên
Ta tiến hành về Trường hợp ghi nhận mắc covid
Ta dùng lệnh cut để chia thông tin Trường hợp ghi nhận mắc covid thành 3 khoảng, bao gồm :
Khoảng thứ nhất với số trường hợp từ 0 ca mắc - đến 600 ngàn ca
Khoảng thứ hai với số trường hợp từ hơn 600 ngàn ca mắc - đến 1,2 triệu ca
Khoảng thứ ba với số trường hợp từ hơn 1,2 triệu ca mắc - đến hơn 1,8 triệu ca
CV <- covid
DD <- CV[CV$Country == 'Viet Nam' | CV$Country == 'Cambodia' | CV$Country == 'Thailand',]
table(cut(DD$New_cases,3))
##
## (-1.85e+03,6.15e+05] (6.15e+05,1.23e+06] (1.23e+06,1.85e+06]
## 568 3 2
DD$New_cases.c <- cut(DD$New_cases,3, labels = c('0_600kcases','600k_1,2Mcases','1,2_1,8Mcases'))
table(DD$Country,DD$New_cases.c)
##
## 0_600kcases 600k_1,2Mcases 1,2_1,8Mcases
## Cambodia 172 0 0
## Thailand 209 0 0
## Viet Nam 187 3 2
Sau đó ta tiến hành lập bảng bằng lệnh table cho khoảng mà ta đã chia ở phía trên
Các số trong bảng biểu hiện cho số ngày ghi nhận các ca mắc theo khoảng đã chia, số ca ghi nhận mỗi ngày của mỗi quốc gia là khác nhau - kết quả từ bảng cho thấy :
Việt Nam là nước ghi nhận số ca mắc nhiều nhất :
187 ngày ghi nhận từ 0 đến 600 ngàn ca
3 ngày ghi nhận từ 600 ngàn đến 1,2 triệu ca
2 ngày ghi nhận từ 1,2 triệu - 1,8 triệu ca
Thái Lan là nước đứng phía sau : 209 ngày ghi nhận với từ 0 - 600 ngàn ca mắc
Campuchia là nước có số ngày ghi nhận ca mắc covid ít nhất trong 3 nước - 172 ngày ghi nhận với từ 0 - 600 ngàn ca mắc
Một trong những quốc gia ghi nhận có số ca tử vong vì covid đứng đầu Ở Châu Á là Ấn Độ
Một trong những quốc gia khởi đầu cho đại dịch này chính là Trung Quốc
Ta sẽ tiến hành so sánh 5 quốc gia đã nêu trên về Trường hợp ghi nhận đã tử vong vì covid, để thấy được sự khác biệt
Ta dùng lệnh cut để chia thông tin Trường hợp ghi nhận đã tư vong vì covid thành 3 khoảng, bao gồm :
Khoảng thứ nhất với số trường hợp từ 0 - đến 15 ngàn trường hợp
Khoảng thứ hai với số trường hợp từ hơn 15 ngàn - đến 31 ngàn trường hợp
Khoảng thứ ba với số trường hợp từ hơn 31 ngàn - đến hơn 47 ngàn trường hợp
DD1 <- CV[CV$Country == 'Viet Nam' | CV$Country == 'Cambodia' | CV$Country == 'Thailand' | CV$Country == 'India' | CV$Country == 'China',]
table(cut(DD1$New_deaths,3))
##
## (-108,1.59e+04] (1.59e+04,3.18e+04] (3.18e+04,4.77e+04]
## 677 9 1
DD1$New_deaths.c <- cut(DD1$New_deaths,3, labels = c('0_15k','15k_31k','31k_47k'))
table(DD1$New_deaths.c,DD1$Country)
##
## Cambodia China India Thailand Viet Nam
## 0_15k 52 166 191 172 96
## 15k_31k 0 1 8 0 0
## 31k_47k 0 1 0 0 0
Sau đó ta tiến hành lập bảng bằng lệnh table cho khoảng mà ta đã chia ở phía trên
Các số tronh bảng biểu hiện cho số ngày ghi nhận các ca mắc theo khoảng đã chia, kết quả cho thấy :
Ấn Độ đứng đầu về số ngày ghi nhận ca tử vong, 191 ngày ghi nhận từ 0 đến 15 ngàn ca tử vong, 8 ngày ghi nhận từ 15 ngàn đến 31 ngàn ca tử vong
Lần lượt còn lại có thể theo dõi trong bảng theo cảnh hiểu như bản Trường hợp ghi nhận mắc covid
Kết quả của các phân tích về số ca ghi nhận / số ca tử vong đã giúp ta thấy được phần nào về đại dịch covid-19 của thế giới nói chung, và từng quốc gia nói riêng
Và tiếp theo, ta sẽ tính số trung bình, số trung vị, số phân vị… của các thông tin trên để có thể thấy được tổng quan hơn về các số liệu
Ta biểu thị các đặc trưng về số ca ghi nhận mắc covid ở Việt Nam trong bộ dữ liệu, ta có thể xem :
VN <- CV[CV$Country== 'Viet Nam',]
summary(VN$Cumulative_cases)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0 1504 1899575 5388552 11525914 11624000
Kết quả có ý nghĩa như sau :
Min - Gía trị nhỏ nhất : Số ca ghi nhận mắc covid ít nhất từng ghi nhận là 0 có ca nào
1st Qu. - Phân vị thứ nhất :là 1504 ca, số này chia tách tổng ca mắc lúc này làm 2, trong đó :
25% tổng số ca sẽ thấp hơn 1504 ca
75% tổng số ca sẽ cao hơn 1504 ca
Median - Trung vị : là 1,899,575 ca, nó giống tứ phân vị thứ nhất nhưng chia tổng số ca làm 50%-50%
50% tổng số ca sẽ thấp hơn 1,899,575 ca
50% tổng số ca sẽ cao hơn 1,899,575 ca
Mean - Gía trị trung bình : là 5,388,552 ca, con số có nghĩa số ca trung bình là 5,388,552 ca
3rd Qu. - Phân vị thứ ba : là 11,525,914 ca, nó giống tứ phân vị thứ nhất nhưng chia tổng dân số làm 75%-25%
75% tổng số ca sẽ thấp hơn 11,525,914 ca
25% tổng số ca sẽ cao hơn 11,525,914 ca
Max - Gía trị lớn nhất : Số ca ghi nhận mắc covid nhiều nhất từng ghi nhận là 11,624,000 ca
Ta tính trung bình số ca mắc/ tử vong covid-19 của Việt Nam
VN <- CV[CV$Country== 'Viet Nam',]
mean(VN$Cumulative_cases,na.rm = T)
## [1] 5388552
mean(VN$Cumulative_deaths,na.rm = T)
## [1] 23542.68
Kết quả thu được số trung bình như sau :
Trung bình Trường hợp ghi nhận tích lũy mắc covid là 5,388,552 người
Trung bình Trường hợp ghi nhận tích lũy tử vong mắc vì covid là 23,542 người
Ta tính số trung vị ca mắc/ tử vong covid-19 của Việt Nam
median(VN$Cumulative_cases)
## [1] 1899575
median(VN$Cumulative_deaths)
## [1] 34319
Kết quả thu được số trung vị như sau :
Trung vị Trường hợp ghi nhận tích lũy mắc covid là 1,899,575 người
Trung vị Trường hợp ghi nhận tích lũy tử vong mắc vì covid là 34,319 người
Ở các nhóm quốc gia, ta sẽ tiến hành tính cả Số trung bình và Sô trung vị của Trường hợp ghi nhận tích lũy mắc/ tử vong vì covid của 5 quốc gia đã phân tích phía trên
trungviQGGcase <- DD1 %>% group_by(Country) %>% summarise(meanQGGcase = mean(Cumulative_cases))
trungviQGGcase
Country | meanQGGcase |
---|---|
Cambodia | 83315.3 |
China | 27229276.3 |
India | 29253586.2 |
Thailand | 2429007.1 |
Viet Nam | 5388552.1 |
trungviQGGdeath <- DD1 %>% group_by(Country) %>% summarise(medQGGdeath = median(Cumulative_deaths))
trungviQGGdeath
Country | medQGGdeath |
---|---|
Cambodia | 3015 |
China | 5699 |
India | 483790 |
Thailand | 21825 |
Viet Nam | 34319 |
Kết quả thu được số trung vị như sau :
meanQGGcase : cho thấy số trung bình ghi nhận ca mắc covid tích lũy
medofQGGdeath : cho thấy số trung vị tử vong vì covid tích lũy