1 BÀI TẬP TUẦN 7

library(rvest)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter()         masks stats::filter()
## ✖ readr::guess_encoding() masks rvest::guess_encoding()
## ✖ dplyr::lag()            masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyr)
library(xml2)
library(stringr)

1.1 Scrape dữ liệu

Thực hiện việc scrape dữ liệu

Dân số Việt Nam (năm 2023 ước tính và lịch sử)

Trong năm 2023, dân số của Việt Nam dự kiến sẽ tăng 745.096 người và đạt 100.059.299 người vào đầu năm 2024. Gia tăng dân số tự nhiên được dự báo là dương vì số lượng sinh sẽ nhiều hơn số người chết đến 737.733 người. Nếu tình trạng di cư vẫn ở mức độ như năm trước, dân số sẽ tăng 7.363 người. Điều đó có nghĩa là số người chuyển đến Việt Nam để định cư sẽ chiếm ưu thế so với số người rời khỏi đất nước này để định cư ở một nước khác. Theo ước tính của chúng tôi, tỷ lệ thay đổi dân số hàng ngày của Việt Nam vào năm 2023 sẽ như sau: 3.887 trẻ em được sinh ra trung bình mỗi ngày 1.866 người chết trung bình mỗi ngày 20 người di cư trung bình mỗi ngày Dân số Việt Nam sẽ tăng trung bình 2.041 người mỗi ngày trong năm 2023.

Nhân khẩu Việt Nam 2022 Tính đến ngày 31 tháng 12 năm 2022, dân số Việt Nam ước tính là 99.329.145 người, tăng 784.706 người so với dân số 98.564.407 người năm trước. Năm 2022, tỷ lệ gia tăng dân số tự nhiên là dương vì số người sinh nhiều hơn số người chết đến 879.634 người. Do tình trạng di cư dân số giảm -94.928 người. Tỷ lệ giới tính trong tổng dân số là 0,997 (997 nam trên 1.000 nữ) thấp hơn tỷ lệ giới tính toàn cầu. Tỷ lệ giới tính toàn cầu trên thế giới năm 2022 khoảng 1.017 nam trên 1.000 nữ. Dưới đây là những số liệu chính về dân số ở Việt Nam trong năm 2022: 1.523.859 trẻ được sinh ra 644.225 người chết Gia tăng dân số tự nhiên: 879.634 người Di cư: -94.928 người 49.589.964 nam giới tính đến ngày 31 tháng 12 năm 2022 49.739.181 nữ giới tính đến ngày 31 tháng 12 năm 2022.

url <- "https://danso.org/viet-nam/"
web <- read_html(url)
tables <- web %>% html_table(fill = TRUE)
data_table <- tables[[1]]
print(data_table)
## # A tibble: 18 × 13
##      Năm `Dân số` `% thay đổi` `Thay đổi` `Di cư` `Tuổi trung bình`
##    <int>    <int>        <dbl>      <int>   <int>             <dbl>
##  1  2020 97338579         0.91     876473  -80000              32.5
##  2  2019 96462106         0.96     916144  -80000              30.9
##  3  2018 95545962         1        945314  -80000              30.9
##  4  2017 94600648         1.03     960226  -80000              30.9
##  5  2016 93640422         1.04     963346  -80000              30.9
##  6  2015 92677076         1.05     941885  -80000              30.5
##  7  2010 87967651         0.97     826998 -159994              28.5
##  8  2005 83832661         0.96     784450 -130200              26.4
##  9  2000 79910412         1.3      999990  -43200              24.2
## 10  1995 74910461         1.96    1384320  -78847              22.3
## 11  1990 67988862         2.23    1418428  -66465              21.1
## 12  1985 60896721         2.33    1322975  -65513              20  
## 13  1980 54281846         2.19    1112731 -171779              19.1
## 14  1975 48718189         2.34    1062679       0              18.3
## 15  1970 43404793         2.77    1109168       0              18.2
## 16  1965 37858951         2.99    1037782       0              19.2
## 17  1960 32670039         3.02     904519       0              21.9
## 18  1955 28147443         2.56     667508       0              23.6
## # ℹ 7 more variables: `Tỷ lệ \t\tsinh` <dbl>, `Mật độ` <int>,
## #   `% dân thành thị` <dbl>, `Dân thành thị` <int>, `% thế giới` <dbl>,
## #   `Thế giới` <dbl>, Hạng <int>

Bảng thống kê trên bao gồm các Năm, Dân số, % thay đổi, Thay đổi, Di cư, Tuổi trung bình, Tỷ lệ sinh Mật độ, % dân thành thị, Dân thành thị, % thế giới, Thế giới, Hạng từ năm 1955 đến 2020

1.1.1 Một số thống kê cơ bản

table(data_table$`Dân số`)
## 
## 28147443 32670039 37858951 43404793 48718189 54281846 60896721 67988862 
##        1        1        1        1        1        1        1        1 
## 74910461 79910412 83832661 87967651 92677076 93640422 94600648 95545962 
##        1        1        1        1        1        1        1        1 
## 96462106 97338579 
##        1        1

Nhìn vào dân sô cập nhật có thể nhận thấy dân số cao nhất là 97338579 và cập nhật có dân số thấp nhất là 28147443.

tyletd <- data_table$'% thay đổi'[data_table$'% thay đổi'>= 1]
tyletd
##  [1] 1.00 1.03 1.04 1.05 1.30 1.96 2.23 2.33 2.19 2.34 2.77 2.99 3.02 2.56
td <- data_table$`Thay đổi`[data_table$`Thay đổi`>=1000000]
td
## [1] 1384320 1418428 1322975 1112731 1062679 1109168 1037782

Nhận xét: qua 2 câu lệnh trên ta thấy được % thay đổi theo dân số lớn hơn 1 chiếm 14 quan số và thay đổi theo dân số lớn hơn 1 triệu chiếm 7 quan sát.

summary(data_table, na.omit = TRUE)
##       Năm           Dân số           % thay đổi       Thay đổi      
##  Min.   :1955   Min.   :28147443   Min.   :0.910   Min.   : 667508  
##  1st Qu.:1976   1st Qu.:50109103   1st Qu.:1.008   1st Qu.: 907425  
##  Median :1998   Median :77410436   Median :1.630   Median : 961786  
##  Mean   :1994   Mean   :70602935   Mean   :1.756   Mean   :1013052  
##  3rd Qu.:2016   3rd Qu.:93399586   3rd Qu.:2.337   3rd Qu.:1097546  
##  Max.   :2020   Max.   :97338579   Max.   :3.020   Max.   :1418428  
##      Di cư         Tuổi trung bình   Tỷ lệ \t\tsinh     Mật độ     
##  Min.   :-171779   Min.   :18.20   Min.   :1.920    Min.   : 91.0  
##  1st Qu.: -80000   1st Qu.:20.27   1st Qu.:1.980    1st Qu.:161.5  
##  Median : -79424   Median :23.90   Median :2.740    Median :250.0  
##  Mean   : -66444   Mean   :24.97   Mean   :3.666    Mean   :227.7  
##  3rd Qu.: -10800   3rd Qu.:30.80   3rd Qu.:5.475    3rd Qu.:301.2  
##  Max.   :      0   Max.   :32.50   Max.   :6.460    Max.   :314.0  
##  % dân thành thị Dân thành thị        % thế giới       Thế giới        
##  Min.   :13.10   Min.   : 3685807   Min.   :1.020   Min.   :2.773e+09  
##  1st Qu.:18.93   1st Qu.: 9480602   1st Qu.:1.198   1st Qu.:4.174e+09  
##  Median :23.40   Median :18118580   Median :1.250   Median :5.944e+09  
##  Mean   :25.61   Mean   :19953377   Mean   :1.222   Mean   :5.695e+09  
##  3rd Qu.:34.70   3rd Qu.:32385682   3rd Qu.:1.260   3rd Qu.:7.443e+09  
##  Max.   :37.70   Max.   :36727248   Max.   :1.300   Max.   :7.795e+09  
##       Hạng      
##  Min.   :13.00  
##  1st Qu.:13.00  
##  Median :15.00  
##  Mean   :14.94  
##  3rd Qu.:16.50  
##  Max.   :18.00

Từ kết quả trên ta có:

Đối với dân số, từ năm 1980 đến 2020: Dân số nhiều nhất là 97338579 người, dân số ít nhất là 28147443 người, dân số đạt mức trung bình là 70602935 người.

Đối với Mật độ dân số từ năm 1980 đến năm 2020: Mật độ dân số cao nhất là 314, thấp nhất là 91, đạt mức trung bình là 227.7

Đối với tuổi trung bình từ năm 1980 đến 2020: tuổi trung bình cao nhất là 32.5, thấp nhất là 18.2, đạt mức trung bình là 24.97

1.1.2 Một số tính toán cơ bản

mean(data_table$`Dân số`)
## [1] 70602935
mean(data_table$`Mật độ`)
## [1] 227.6667
mean(data_table$`Tuổi trung bình`)
## [1] 24.96667
summary(data_table)
##       Năm           Dân số           % thay đổi       Thay đổi      
##  Min.   :1955   Min.   :28147443   Min.   :0.910   Min.   : 667508  
##  1st Qu.:1976   1st Qu.:50109103   1st Qu.:1.008   1st Qu.: 907425  
##  Median :1998   Median :77410436   Median :1.630   Median : 961786  
##  Mean   :1994   Mean   :70602935   Mean   :1.756   Mean   :1013052  
##  3rd Qu.:2016   3rd Qu.:93399586   3rd Qu.:2.337   3rd Qu.:1097546  
##  Max.   :2020   Max.   :97338579   Max.   :3.020   Max.   :1418428  
##      Di cư         Tuổi trung bình   Tỷ lệ \t\tsinh     Mật độ     
##  Min.   :-171779   Min.   :18.20   Min.   :1.920    Min.   : 91.0  
##  1st Qu.: -80000   1st Qu.:20.27   1st Qu.:1.980    1st Qu.:161.5  
##  Median : -79424   Median :23.90   Median :2.740    Median :250.0  
##  Mean   : -66444   Mean   :24.97   Mean   :3.666    Mean   :227.7  
##  3rd Qu.: -10800   3rd Qu.:30.80   3rd Qu.:5.475    3rd Qu.:301.2  
##  Max.   :      0   Max.   :32.50   Max.   :6.460    Max.   :314.0  
##  % dân thành thị Dân thành thị        % thế giới       Thế giới        
##  Min.   :13.10   Min.   : 3685807   Min.   :1.020   Min.   :2.773e+09  
##  1st Qu.:18.93   1st Qu.: 9480602   1st Qu.:1.198   1st Qu.:4.174e+09  
##  Median :23.40   Median :18118580   Median :1.250   Median :5.944e+09  
##  Mean   :25.61   Mean   :19953377   Mean   :1.222   Mean   :5.695e+09  
##  3rd Qu.:34.70   3rd Qu.:32385682   3rd Qu.:1.260   3rd Qu.:7.443e+09  
##  Max.   :37.70   Max.   :36727248   Max.   :1.300   Max.   :7.795e+09  
##       Hạng      
##  Min.   :13.00  
##  1st Qu.:13.00  
##  Median :15.00  
##  Mean   :14.94  
##  3rd Qu.:16.50  
##  Max.   :18.00
mean(data_table$`Tỷ lệ      sinh`, na.rm = TRUE)
## [1] 3.666111

1.2 Viết Function

Viết hàm dùng để giải phương trình bậc 2:

solve_2 = function(a,b,c){
  if(a==0){
    if(b==0 & c==0 ){
      print("Phương trình vô số nghiệm")
    }
    if(b==0 & c != 0 ){
      print("Phương trình vô nghiệm")
    }
    else {
      print("Phương trình có nghiệm:")
      print(-c/b)
    }
  }
  else{
    delta = b^2-4*a*c
    if(delta <0){
      print("Phương trình vô nghiệm")
    }
     else if(delta == 0){
      x = -b/(2*a)
      print("Phương trình có nghiệm kép x = ")
      print(x)
    }
    else if(delta > 0 ){
      x1 = (-b + sqrt(delta))/(2*a)
      x2 = (-b - sqrt(delta))/(2*a)
      print("Phương trình có 2 nghiệm phân biệt:")
      print(x1)
      print(x2)
    }
  }
}
solve_2(100,-99,-199)
## [1] "Phương trình có 2 nghiệm phân biệt:"
## [1] 1.99
## [1] -1
solve_2(225,-1080,1296)
## [1] "Phương trình có nghiệm kép x = "
## [1] 2.4

Chúng ta đã tạo một function có tên là tinh_toan_phuong_trinh_bac_3 (tức là “tính toán phương trình bậc 3” trong tiếng Việt). Function này nhận đầu vào là các hệ số của phương trình bậc 3 (a, b, c, d) và thực hiện tính toán.

Đầu tiên, function kiểm tra xem a có khác 0 hay không. Nếu a bằng 0, function sẽ ngừng và thông báo lỗi.

Sau đó, function tính delta (delta0) và giá trị liên quan (delta1, C). Công thức tính delta được sử dụng dựa trên công thức của phương trình bậc 3.

Cuối cùng, function tính nghiệm x1 dựa trên các giá trị đã tính toán và trả về kết quả.

Bạn có thể sử dụng function này trong RStudio bằng cách gọi tinh_toan_phuong_trinh_bac_3(a, b, c, d), với a, b, c, d là các hệ số của phương trình bậc 3 bạn muốn tính toán.

tinh_toan_phuong_trinh_bac_3 <- function(a, b, c, d) {
  # Kiểm tra a khác 0
  if (a == 0) {
    stop("Lỗi: a phải khác 0")
  }
  
  # Tính delta và các giá trị liên quan
  delta0 <- b^2 - 3*a*c
  delta1 <- 2*b^3 - 9*a*b*c + 27*a^2*d
  C <- ((delta1 + sqrt(delta1^2 - 4*delta0^3))/2)^0.3333
  
  # Tính nghiệm
  x1 <- (-1/(3*a)) * (b + C + (delta0/C))
  
  # Trả về kết quả
  return(x1)
}
tinh_toan_phuong_trinh_bac_3(3,6,9,12)
## [1] -1.650179
tinh_toan_phuong_trinh_bac_3(1,-1,-2,1)
## Warning in sqrt(delta1^2 - 4 * delta0^3): NaNs produced
## [1] NaN

1.3 Tìm hiểu 10 indicators

Dân số Việt Nam từ năm 1955 - 2020. Dưới đây bao gồm các dữ liệu đo lường sau:

Năm, Dân số, % thay đổi, Thay đổi, Di cư, Tuổi trung bình, Tỷ lệ sinh Mật độ, % dân thành thị, Dân thành thị, % thế giới, Thế giới, Hạng.

Package WDI trong R đề cập đến một gói phần mềm R được sử dụng để truy cập và sử dụng dữ liệu World Development indicators (WDI) từ Ngân hàng Thế giới.

Gói WDI trong R chứa các chức năng cho phép người dùng tải xuống và truy vấn các chỉ số WDI một cách dễ dàng từ dữ liệu WDI đã được thu thập và tổ chức sẵn. Điều này cho phép người dùng thực hiện phân tích và trực quan hóa dữ liệu WDI một cách thuận tiện trực tiếp trong môi trường R.

Để sử dụng gói WDI trong R, bạn cần cài đặt gói này bằng cách chạy lệnh install.packages(“WDI”). Sau đó, bạn có thể gọi gói WDI vào phiên làm việc R bằng cách sử dụng lệnh library(WDI).

Gói WDI trong R cung cấp các hàm như WDIsearch() để tìm kiếm thông tin về chỉ số WDI, WDIconc() để tải dữ liệu WDI và WDI() để truy vấn dữ liệu từ WDI. Bạn có thể tìm hiểu thêm về các hàm và cách sử dụng chúng trong tài liệu và ví dụ được cung cấp bởi gói WDI.

1.3.1 indicators dân số ở Việt Nam

Truy xuất dữ liệu dân số của Việt Nam từ 1980 đến 2020, indicator = “SP.POP.TOTL”, Chuyển đổi dữ liệu thành khung dữ liệu df , in kết quả ra và vẽ biểu đồ thể hiện dân số Việt Nam theo thời gian từ năm 1980 - 2020.

Sau đó in kết quả ra màn hình

Bạn có thể chuyển đổi nó thành khung dữ liệu

Sau đó vẽ biểu đồ

# Gọi các gói cần thiết
library(dplyr)
library(WDI)

# Lấy dữ liệu
population_data <- WDI(country = "VN", indicator = c("SP.POP.TOTL"), start = 1980, end = 2020)
print(population_data)
##    country iso2c iso3c year SP.POP.TOTL
## 1  Vietnam    VN   VNM 2020    96648685
## 2  Vietnam    VN   VNM 2019    95776716
## 3  Vietnam    VN   VNM 2018    94914330
## 4  Vietnam    VN   VNM 2017    94033048
## 5  Vietnam    VN   VNM 2016    93126529
## 6  Vietnam    VN   VNM 2015    92191398
## 7  Vietnam    VN   VNM 2014    91235504
## 8  Vietnam    VN   VNM 2013    90267739
## 9  Vietnam    VN   VNM 2012    89301326
## 10 Vietnam    VN   VNM 2011    88349117
## 11 Vietnam    VN   VNM 2010    87411012
## 12 Vietnam    VN   VNM 2009    86482923
## 13 Vietnam    VN   VNM 2008    85597241
## 14 Vietnam    VN   VNM 2007    84762269
## 15 Vietnam    VN   VNM 2006    83951800
## 16 Vietnam    VN   VNM 2005    83142095
## 17 Vietnam    VN   VNM 2004    82311227
## 18 Vietnam    VN   VNM 2003    81475825
## 19 Vietnam    VN   VNM 2002    80642308
## 20 Vietnam    VN   VNM 2001    79817777
## 21 Vietnam    VN   VNM 2000    79001142
## 22 Vietnam    VN   VNM 1999    78123713
## 23 Vietnam    VN   VNM 1998    77128424
## 24 Vietnam    VN   VNM 1997    76058603
## 25 Vietnam    VN   VNM 1996    74946448
## 26 Vietnam    VN   VNM 1995    73759110
## 27 Vietnam    VN   VNM 1994    72501087
## 28 Vietnam    VN   VNM 1993    71176405
## 29 Vietnam    VN   VNM 1992    69788747
## 30 Vietnam    VN   VNM 1991    68358820
## 31 Vietnam    VN   VNM 1990    66912613
## 32 Vietnam    VN   VNM 1989    65466361
## 33 Vietnam    VN   VNM 1988    64037514
## 34 Vietnam    VN   VNM 1987    62630787
## 35 Vietnam    VN   VNM 1986    61221107
## 36 Vietnam    VN   VNM 1985    59811313
## 37 Vietnam    VN   VNM 1984    58406863
## 38 Vietnam    VN   VNM 1983    57011444
## 39 Vietnam    VN   VNM 1982    55632153
## 40 Vietnam    VN   VNM 1981    54280394
## 41 Vietnam    VN   VNM 1980    52968270
df <- as.data.frame(population_data)
print(df)
##    country iso2c iso3c year SP.POP.TOTL
## 1  Vietnam    VN   VNM 2020    96648685
## 2  Vietnam    VN   VNM 2019    95776716
## 3  Vietnam    VN   VNM 2018    94914330
## 4  Vietnam    VN   VNM 2017    94033048
## 5  Vietnam    VN   VNM 2016    93126529
## 6  Vietnam    VN   VNM 2015    92191398
## 7  Vietnam    VN   VNM 2014    91235504
## 8  Vietnam    VN   VNM 2013    90267739
## 9  Vietnam    VN   VNM 2012    89301326
## 10 Vietnam    VN   VNM 2011    88349117
## 11 Vietnam    VN   VNM 2010    87411012
## 12 Vietnam    VN   VNM 2009    86482923
## 13 Vietnam    VN   VNM 2008    85597241
## 14 Vietnam    VN   VNM 2007    84762269
## 15 Vietnam    VN   VNM 2006    83951800
## 16 Vietnam    VN   VNM 2005    83142095
## 17 Vietnam    VN   VNM 2004    82311227
## 18 Vietnam    VN   VNM 2003    81475825
## 19 Vietnam    VN   VNM 2002    80642308
## 20 Vietnam    VN   VNM 2001    79817777
## 21 Vietnam    VN   VNM 2000    79001142
## 22 Vietnam    VN   VNM 1999    78123713
## 23 Vietnam    VN   VNM 1998    77128424
## 24 Vietnam    VN   VNM 1997    76058603
## 25 Vietnam    VN   VNM 1996    74946448
## 26 Vietnam    VN   VNM 1995    73759110
## 27 Vietnam    VN   VNM 1994    72501087
## 28 Vietnam    VN   VNM 1993    71176405
## 29 Vietnam    VN   VNM 1992    69788747
## 30 Vietnam    VN   VNM 1991    68358820
## 31 Vietnam    VN   VNM 1990    66912613
## 32 Vietnam    VN   VNM 1989    65466361
## 33 Vietnam    VN   VNM 1988    64037514
## 34 Vietnam    VN   VNM 1987    62630787
## 35 Vietnam    VN   VNM 1986    61221107
## 36 Vietnam    VN   VNM 1985    59811313
## 37 Vietnam    VN   VNM 1984    58406863
## 38 Vietnam    VN   VNM 1983    57011444
## 39 Vietnam    VN   VNM 1982    55632153
## 40 Vietnam    VN   VNM 1981    54280394
## 41 Vietnam    VN   VNM 1980    52968270

1.3.1.1 Đồ thị trực quan hóa

ggplot(df, aes(x = df$year, y = df$SP.POP.TOTL)) +
  geom_line() +
  labs(x = "Year", y = "Population", title = "Population of VN over Time") +
  theme_bw()

Nhận xét: Dân số của Việt Nam tăng dần theo thời gian từ năm 1980 - 2020, dựa vào biểu đồ thì chúng ta có thể thấy dân số Việt Nam tăng liên tục từ năm 1980 đến 2020

1.3.2 Tuổi thọ trung bình của dân số Việt Nam

indicator của Tuổi thọ trung bình của dân số Việt Nam = “SP.DYN.LE00.IN”

Chỉ số “SP.DYN.LE00.IN” trong gói dữ liệu WDI đo lường tuổi thọ trung bình của con người tại một quốc gia cụ thể. Ý nghĩa của chỉ số này là đánh giá tuổi thọ trung bình (số năm dự kiến mà một người được sống) của dân số trong một quốc gia.

Tuổi thọ trung bình (Life Expectancy) là một chỉ số quan trọng trong đánh giá sức khỏe và phát triển đời sống con người trong một quốc gia. Nó phản ánh mức độ chăm sóc y tế, tiến bộ y tế, điều kiện sống, và các yếu tố khác có thể ảnh hưởng đến tuổi thọ của dân số.

Dữ liệu về tuổi thọ trung bình được sử dụng để so sánh mức độ phát triển và chất lượng cuộc sống giữa các quốc gia khác nhau. Nó cũng là một trong những chỉ số quan trọng được sử dụng khi đánh giá hiệu quả của các chính sách y tế và xã hội, và để theo dõi xu hướng và thay đổi về tuổi thọ trung bình trong thời gian.

age <- WDI(indicator = "SP.DYN.LE00.IN", country = "VN",extra = TRUE, start = 1980, end = 2020)
print(age)
##    country iso2c iso3c year SP.DYN.LE00.IN status lastupdated
## 1  Vietnam    VN   VNM 2020         75.378         2023-06-29
## 2  Vietnam    VN   VNM 2019         74.093         2023-06-29
## 3  Vietnam    VN   VNM 2018         73.976         2023-06-29
## 4  Vietnam    VN   VNM 2017         73.963         2023-06-29
## 5  Vietnam    VN   VNM 2016         73.938         2023-06-29
## 6  Vietnam    VN   VNM 2015         73.876         2023-06-29
## 7  Vietnam    VN   VNM 2014         73.855         2023-06-29
## 8  Vietnam    VN   VNM 2013         73.775         2023-06-29
## 9  Vietnam    VN   VNM 2012         73.704         2023-06-29
## 10 Vietnam    VN   VNM 2011         73.692         2023-06-29
## 11 Vietnam    VN   VNM 2010         73.513         2023-06-29
## 12 Vietnam    VN   VNM 2009         73.498         2023-06-29
## 13 Vietnam    VN   VNM 2008         73.411         2023-06-29
## 14 Vietnam    VN   VNM 2007         73.436         2023-06-29
## 15 Vietnam    VN   VNM 2006         73.319         2023-06-29
## 16 Vietnam    VN   VNM 2005         73.271         2023-06-29
## 17 Vietnam    VN   VNM 2004         73.135         2023-06-29
## 18 Vietnam    VN   VNM 2003         72.980         2023-06-29
## 19 Vietnam    VN   VNM 2002         72.801         2023-06-29
## 20 Vietnam    VN   VNM 2001         72.647         2023-06-29
## 21 Vietnam    VN   VNM 2000         72.462         2023-06-29
## 22 Vietnam    VN   VNM 1999         72.317         2023-06-29
## 23 Vietnam    VN   VNM 1998         72.107         2023-06-29
## 24 Vietnam    VN   VNM 1997         71.802         2023-06-29
## 25 Vietnam    VN   VNM 1996         71.510         2023-06-29
## 26 Vietnam    VN   VNM 1995         71.384         2023-06-29
## 27 Vietnam    VN   VNM 1994         70.759         2023-06-29
## 28 Vietnam    VN   VNM 1993         70.621         2023-06-29
## 29 Vietnam    VN   VNM 1992         69.958         2023-06-29
## 30 Vietnam    VN   VNM 1991         69.849         2023-06-29
## 31 Vietnam    VN   VNM 1990         69.213         2023-06-29
## 32 Vietnam    VN   VNM 1989         69.076         2023-06-29
## 33 Vietnam    VN   VNM 1988         68.469         2023-06-29
## 34 Vietnam    VN   VNM 1987         68.392         2023-06-29
## 35 Vietnam    VN   VNM 1986         68.013         2023-06-29
## 36 Vietnam    VN   VNM 1985         67.601         2023-06-29
## 37 Vietnam    VN   VNM 1984         67.305         2023-06-29
## 38 Vietnam    VN   VNM 1983         67.148         2023-06-29
## 39 Vietnam    VN   VNM 1982         67.106         2023-06-29
## 40 Vietnam    VN   VNM 1981         66.645         2023-06-29
## 41 Vietnam    VN   VNM 1980         66.195         2023-06-29
##                 region capital longitude latitude              income lending
## 1  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 2  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 3  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 4  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 5  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 6  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 7  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 8  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 9  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 10 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 11 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 12 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 13 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 14 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 15 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 16 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 17 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 18 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 19 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 20 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 21 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 22 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 23 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 24 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 25 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 26 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 27 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 28 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 29 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 30 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 31 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 32 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 33 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 34 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 35 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 36 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 37 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 38 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 39 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 40 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 41 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
df <- as.data.frame(age)
print(df)
##    country iso2c iso3c year SP.DYN.LE00.IN status lastupdated
## 1  Vietnam    VN   VNM 2020         75.378         2023-06-29
## 2  Vietnam    VN   VNM 2019         74.093         2023-06-29
## 3  Vietnam    VN   VNM 2018         73.976         2023-06-29
## 4  Vietnam    VN   VNM 2017         73.963         2023-06-29
## 5  Vietnam    VN   VNM 2016         73.938         2023-06-29
## 6  Vietnam    VN   VNM 2015         73.876         2023-06-29
## 7  Vietnam    VN   VNM 2014         73.855         2023-06-29
## 8  Vietnam    VN   VNM 2013         73.775         2023-06-29
## 9  Vietnam    VN   VNM 2012         73.704         2023-06-29
## 10 Vietnam    VN   VNM 2011         73.692         2023-06-29
## 11 Vietnam    VN   VNM 2010         73.513         2023-06-29
## 12 Vietnam    VN   VNM 2009         73.498         2023-06-29
## 13 Vietnam    VN   VNM 2008         73.411         2023-06-29
## 14 Vietnam    VN   VNM 2007         73.436         2023-06-29
## 15 Vietnam    VN   VNM 2006         73.319         2023-06-29
## 16 Vietnam    VN   VNM 2005         73.271         2023-06-29
## 17 Vietnam    VN   VNM 2004         73.135         2023-06-29
## 18 Vietnam    VN   VNM 2003         72.980         2023-06-29
## 19 Vietnam    VN   VNM 2002         72.801         2023-06-29
## 20 Vietnam    VN   VNM 2001         72.647         2023-06-29
## 21 Vietnam    VN   VNM 2000         72.462         2023-06-29
## 22 Vietnam    VN   VNM 1999         72.317         2023-06-29
## 23 Vietnam    VN   VNM 1998         72.107         2023-06-29
## 24 Vietnam    VN   VNM 1997         71.802         2023-06-29
## 25 Vietnam    VN   VNM 1996         71.510         2023-06-29
## 26 Vietnam    VN   VNM 1995         71.384         2023-06-29
## 27 Vietnam    VN   VNM 1994         70.759         2023-06-29
## 28 Vietnam    VN   VNM 1993         70.621         2023-06-29
## 29 Vietnam    VN   VNM 1992         69.958         2023-06-29
## 30 Vietnam    VN   VNM 1991         69.849         2023-06-29
## 31 Vietnam    VN   VNM 1990         69.213         2023-06-29
## 32 Vietnam    VN   VNM 1989         69.076         2023-06-29
## 33 Vietnam    VN   VNM 1988         68.469         2023-06-29
## 34 Vietnam    VN   VNM 1987         68.392         2023-06-29
## 35 Vietnam    VN   VNM 1986         68.013         2023-06-29
## 36 Vietnam    VN   VNM 1985         67.601         2023-06-29
## 37 Vietnam    VN   VNM 1984         67.305         2023-06-29
## 38 Vietnam    VN   VNM 1983         67.148         2023-06-29
## 39 Vietnam    VN   VNM 1982         67.106         2023-06-29
## 40 Vietnam    VN   VNM 1981         66.645         2023-06-29
## 41 Vietnam    VN   VNM 1980         66.195         2023-06-29
##                 region capital longitude latitude              income lending
## 1  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 2  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 3  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 4  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 5  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 6  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 7  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 8  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 9  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 10 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 11 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 12 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 13 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 14 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 15 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 16 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 17 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 18 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 19 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 20 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 21 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 22 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 23 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 24 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 25 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 26 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 27 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 28 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 29 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 30 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 31 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 32 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 33 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 34 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 35 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 36 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 37 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 38 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 39 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 40 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 41 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD

1.3.2.1 Đồ thị trực quan hóa

ggplot(df, aes(x = year, y = SP.DYN.LE00.IN)) +
  geom_line(color="red") +
  labs(x = "year", y = "Tuổi thọ trung bình", title = "Tuổi thọ trung bình của dân số Việt Nam từ năm 1980-2020") +
  theme_bw()

Nhận xét: Tuổi thọ trung bình của Việt Nam từ năm 2012 đến 2019 là 74, nhưng đến năm 2020 thì độ tuổi đạt cột mốc cao nhất.

1.3.3 Di cư của nước Việt Nam

mig <- WDI(indicator = "SM.POP.NETM", country = 'VN', extra = TRUE, start = 1980, end = 2020)
print(mig)
##    country iso2c iso3c year SM.POP.NETM status lastupdated              region
## 1  Vietnam    VN   VNM 2020       -2016         2023-06-29 East Asia & Pacific
## 2  Vietnam    VN   VNM 2019       -4028         2023-06-29 East Asia & Pacific
## 3  Vietnam    VN   VNM 2018       -3080         2023-06-29 East Asia & Pacific
## 4  Vietnam    VN   VNM 2017       -3847         2023-06-29 East Asia & Pacific
## 5  Vietnam    VN   VNM 2016       -4432         2023-06-29 East Asia & Pacific
## 6  Vietnam    VN   VNM 2015       -4761         2023-06-29 East Asia & Pacific
## 7  Vietnam    VN   VNM 2014       -4875         2023-06-29 East Asia & Pacific
## 8  Vietnam    VN   VNM 2013       -4786         2023-06-29 East Asia & Pacific
## 9  Vietnam    VN   VNM 2012       -4545         2023-06-29 East Asia & Pacific
## 10 Vietnam    VN   VNM 2011       -4378         2023-06-29 East Asia & Pacific
## 11 Vietnam    VN   VNM 2010       -4382         2023-06-29 East Asia & Pacific
## 12 Vietnam    VN   VNM 2009      -18546         2023-06-29 East Asia & Pacific
## 13 Vietnam    VN   VNM 2008     -101560         2023-06-29 East Asia & Pacific
## 14 Vietnam    VN   VNM 2007     -119471         2023-06-29 East Asia & Pacific
## 15 Vietnam    VN   VNM 2006     -131559         2023-06-29 East Asia & Pacific
## 16 Vietnam    VN   VNM 2005     -144080         2023-06-29 East Asia & Pacific
## 17 Vietnam    VN   VNM 2004     -150349         2023-06-29 East Asia & Pacific
## 18 Vietnam    VN   VNM 2003     -153880         2023-06-29 East Asia & Pacific
## 19 Vietnam    VN   VNM 2002     -159577         2023-06-29 East Asia & Pacific
## 20 Vietnam    VN   VNM 2001     -162571         2023-06-29 East Asia & Pacific
## 21 Vietnam    VN   VNM 2000     -150955         2023-06-29 East Asia & Pacific
## 22 Vietnam    VN   VNM 1999      -31169         2023-06-29 East Asia & Pacific
## 23 Vietnam    VN   VNM 1998       72370         2023-06-29 East Asia & Pacific
## 24 Vietnam    VN   VNM 1997       52526         2023-06-29 East Asia & Pacific
## 25 Vietnam    VN   VNM 1996       50794         2023-06-29 East Asia & Pacific
## 26 Vietnam    VN   VNM 1995       43672         2023-06-29 East Asia & Pacific
## 27 Vietnam    VN   VNM 1994       -2891         2023-06-29 East Asia & Pacific
## 28 Vietnam    VN   VNM 1993       -5426         2023-06-29 East Asia & Pacific
## 29 Vietnam    VN   VNM 1992       -5664         2023-06-29 East Asia & Pacific
## 30 Vietnam    VN   VNM 1991        -824         2023-06-29 East Asia & Pacific
## 31 Vietnam    VN   VNM 1990      -10252         2023-06-29 East Asia & Pacific
## 32 Vietnam    VN   VNM 1989       -6835         2023-06-29 East Asia & Pacific
## 33 Vietnam    VN   VNM 1988      -45612         2023-06-29 East Asia & Pacific
## 34 Vietnam    VN   VNM 1987      -56261         2023-06-29 East Asia & Pacific
## 35 Vietnam    VN   VNM 1986      -58879         2023-06-29 East Asia & Pacific
## 36 Vietnam    VN   VNM 1985      -56107         2023-06-29 East Asia & Pacific
## 37 Vietnam    VN   VNM 1984      -54728         2023-06-29 East Asia & Pacific
## 38 Vietnam    VN   VNM 1983      -57271         2023-06-29 East Asia & Pacific
## 39 Vietnam    VN   VNM 1982      -58798         2023-06-29 East Asia & Pacific
## 40 Vietnam    VN   VNM 1981      -57715         2023-06-29 East Asia & Pacific
## 41 Vietnam    VN   VNM 1980      -52498         2023-06-29 East Asia & Pacific
##    capital longitude latitude              income lending
## 1    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 2    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 3    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 4    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 5    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 6    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 7    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 8    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 9    Hanoi   105.825  21.0069 Lower middle income    IBRD
## 10   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 11   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 12   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 13   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 14   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 15   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 16   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 17   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 18   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 19   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 20   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 21   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 22   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 23   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 24   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 25   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 26   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 27   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 28   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 29   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 30   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 31   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 32   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 33   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 34   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 35   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 36   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 37   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 38   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 39   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 40   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 41   Hanoi   105.825  21.0069 Lower middle income    IBRD

1.3.3.1 Đồ thị trực quan hóa

d <- data.frame(mig)
ggplot(d, aes(x = mig$year, y =mig$ SM.POP.NETM)) +
  geom_line(color="blue") +
  labs(x = "year", y = "Di cư", title = "Di cư của Việt Nam từ năm 1980-2020") +
  theme_bw()
## Warning: Use of `mig$year` is discouraged.
## ℹ Use `year` instead.
## Warning: Use of `mig$SM.POP.NETM` is discouraged.
## ℹ Use `SM.POP.NETM` instead.

Nhận xét: di cư của Việt Nam có xu hướng từ năm 1985 đến năm 1997 và năm 2001 đến năm 2008, có xu hướng giảm từ 1987 đến năm 2001, ổn định từ năm 1980 đến 1985 và năm 2008 đến năm 2020.

1.3.4 Tỷ lệ dân số đô thị

Chỉ số “SP.URB.TOTL.IN.ZS” trong WDI đại diện cho tỷ lệ dân số đô thị trên tổng dân số trong một quốc gia hoặc khu vực cụ thể. Ý nghĩa của SP.URB.TOTL.IN.ZS là đo lường và hiểu mức độ đô thị hóa của một quốc gia và phân tích xu hướng và sự thay đổi về mặt đô thị hóa theo thời gian.

đothi <- WDI(indicator = "SP.URB.TOTL.IN.ZS", country = 'VN', extra = TRUE, start = 1980, end = 2020)
print(đothi)
##    country iso2c iso3c year SP.URB.TOTL.IN.ZS status lastupdated
## 1  Vietnam    VN   VNM 2020            37.340         2023-06-29
## 2  Vietnam    VN   VNM 2019            36.628         2023-06-29
## 3  Vietnam    VN   VNM 2018            35.919         2023-06-29
## 4  Vietnam    VN   VNM 2017            35.213         2023-06-29
## 5  Vietnam    VN   VNM 2016            34.510         2023-06-29
## 6  Vietnam    VN   VNM 2015            33.809         2023-06-29
## 7  Vietnam    VN   VNM 2014            33.115         2023-06-29
## 8  Vietnam    VN   VNM 2013            32.429         2023-06-29
## 9  Vietnam    VN   VNM 2012            31.752         2023-06-29
## 10 Vietnam    VN   VNM 2011            31.080         2023-06-29
## 11 Vietnam    VN   VNM 2010            30.417         2023-06-29
## 12 Vietnam    VN   VNM 2009            29.762         2023-06-29
## 13 Vietnam    VN   VNM 2008            29.128         2023-06-29
## 14 Vietnam    VN   VNM 2007            28.504         2023-06-29
## 15 Vietnam    VN   VNM 2006            27.888         2023-06-29
## 16 Vietnam    VN   VNM 2005            27.281         2023-06-29
## 17 Vietnam    VN   VNM 2004            26.683         2023-06-29
## 18 Vietnam    VN   VNM 2003            26.092         2023-06-29
## 19 Vietnam    VN   VNM 2002            25.511         2023-06-29
## 20 Vietnam    VN   VNM 2001            24.937         2023-06-29
## 21 Vietnam    VN   VNM 2000            24.374         2023-06-29
## 22 Vietnam    VN   VNM 1999            23.817         2023-06-29
## 23 Vietnam    VN   VNM 1998            23.371         2023-06-29
## 24 Vietnam    VN   VNM 1997            22.965         2023-06-29
## 25 Vietnam    VN   VNM 1996            22.563         2023-06-29
## 26 Vietnam    VN   VNM 1995            22.166         2023-06-29
## 27 Vietnam    VN   VNM 1994            21.774         2023-06-29
## 28 Vietnam    VN   VNM 1993            21.387         2023-06-29
## 29 Vietnam    VN   VNM 1992            21.006         2023-06-29
## 30 Vietnam    VN   VNM 1991            20.629         2023-06-29
## 31 Vietnam    VN   VNM 1990            20.257         2023-06-29
## 32 Vietnam    VN   VNM 1989            19.891         2023-06-29
## 33 Vietnam    VN   VNM 1988            19.752         2023-06-29
## 34 Vietnam    VN   VNM 1987            19.688         2023-06-29
## 35 Vietnam    VN   VNM 1986            19.625         2023-06-29
## 36 Vietnam    VN   VNM 1985            19.561         2023-06-29
## 37 Vietnam    VN   VNM 1984            19.498         2023-06-29
## 38 Vietnam    VN   VNM 1983            19.435         2023-06-29
## 39 Vietnam    VN   VNM 1982            19.372         2023-06-29
## 40 Vietnam    VN   VNM 1981            19.309         2023-06-29
## 41 Vietnam    VN   VNM 1980            19.247         2023-06-29
##                 region capital longitude latitude              income lending
## 1  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 2  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 3  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 4  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 5  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 6  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 7  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 8  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 9  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 10 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 11 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 12 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 13 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 14 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 15 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 16 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 17 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 18 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 19 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 20 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 21 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 22 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 23 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 24 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 25 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 26 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 27 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 28 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 29 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 30 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 31 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 32 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 33 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 34 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 35 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 36 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 37 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 38 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 39 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 40 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 41 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD

1.3.4.1 Đồ thị trực quan hóa

dt <- data.frame(đothi)
ggplot(dt, aes(x = đothi$year, y =đothi$SP.URB.TOTL.IN.ZS )) +
  geom_line(color="yellow") +
  labs(x = "year", y = "Tỷ lệ thành thị", title = "Tỷ lệ thành thị của Việt Nam từ năm 1980-2020") +
  theme_bw()
## Warning: Use of `đothi$year` is discouraged.
## ℹ Use `year` instead.
## Warning: Use of `đothi$SP.URB.TOTL.IN.ZS` is discouraged.
## ℹ Use `SP.URB.TOTL.IN.ZS` instead.

Nhận xét: tỷ lệ thành thị của Việt Nam từ năm 1980-2020 có xu hướng tăng từ 18 lên trên 40

1.3.5 Tỷ lệ sinh của Việt Nam

wdi_data <- WDI(indicator = "SP.DYN.CBRT.IN", country = "VN", extra = TRUE, start = 1980, end = 2020)
print(wdi_data)
##    country iso2c iso3c year SP.DYN.CBRT.IN status lastupdated
## 1  Vietnam    VN   VNM 2020         15.400         2023-06-29
## 2  Vietnam    VN   VNM 2019         15.663         2023-06-29
## 3  Vietnam    VN   VNM 2018         15.873         2023-06-29
## 4  Vietnam    VN   VNM 2017         16.100         2023-06-29
## 5  Vietnam    VN   VNM 2016         16.438         2023-06-29
## 6  Vietnam    VN   VNM 2015         16.787         2023-06-29
## 7  Vietnam    VN   VNM 2014         16.981         2023-06-29
## 8  Vietnam    VN   VNM 2013         17.152         2023-06-29
## 9  Vietnam    VN   VNM 2012         17.078         2023-06-29
## 10 Vietnam    VN   VNM 2011         16.929         2023-06-29
## 11 Vietnam    VN   VNM 2010         16.906         2023-06-29
## 12 Vietnam    VN   VNM 2009         17.016         2023-06-29
## 13 Vietnam    VN   VNM 2008         17.143         2023-06-29
## 14 Vietnam    VN   VNM 2007         17.072         2023-06-29
## 15 Vietnam    VN   VNM 2006         16.995         2023-06-29
## 16 Vietnam    VN   VNM 2005         17.465         2023-06-29
## 17 Vietnam    VN   VNM 2004         17.862         2023-06-29
## 18 Vietnam    VN   VNM 2003         17.879         2023-06-29
## 19 Vietnam    VN   VNM 2002         18.142         2023-06-29
## 20 Vietnam    VN   VNM 2001         17.969         2023-06-29
## 21 Vietnam    VN   VNM 2000         18.046         2023-06-29
## 22 Vietnam    VN   VNM 1999         18.080         2023-06-29
## 23 Vietnam    VN   VNM 1998         18.525         2023-06-29
## 24 Vietnam    VN   VNM 1997         19.372         2023-06-29
## 25 Vietnam    VN   VNM 1996         20.457         2023-06-29
## 26 Vietnam    VN   VNM 1995         22.065         2023-06-29
## 27 Vietnam    VN   VNM 1994         23.913         2023-06-29
## 28 Vietnam    VN   VNM 1993         25.508         2023-06-29
## 29 Vietnam    VN   VNM 1992         26.773         2023-06-29
## 30 Vietnam    VN   VNM 1991         27.790         2023-06-29
## 31 Vietnam    VN   VNM 1990         28.508         2023-06-29
## 32 Vietnam    VN   VNM 1989         29.146         2023-06-29
## 33 Vietnam    VN   VNM 1988         29.811         2023-06-29
## 34 Vietnam    VN   VNM 1987         30.543         2023-06-29
## 35 Vietnam    VN   VNM 1986         31.378         2023-06-29
## 36 Vietnam    VN   VNM 1985         32.006         2023-06-29
## 37 Vietnam    VN   VNM 1984         32.607         2023-06-29
## 38 Vietnam    VN   VNM 1983         33.107         2023-06-29
## 39 Vietnam    VN   VNM 1982         33.417         2023-06-29
## 40 Vietnam    VN   VNM 1981         33.573         2023-06-29
## 41 Vietnam    VN   VNM 1980         33.454         2023-06-29
##                 region capital longitude latitude              income lending
## 1  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 2  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 3  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 4  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 5  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 6  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 7  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 8  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 9  East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 10 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 11 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 12 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 13 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 14 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 15 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 16 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 17 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 18 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 19 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 20 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 21 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 22 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 23 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 24 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 25 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 26 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 27 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 28 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 29 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 30 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 31 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 32 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 33 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 34 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 35 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 36 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 37 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 38 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 39 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 40 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD
## 41 East Asia & Pacific   Hanoi   105.825  21.0069 Lower middle income    IBRD

1.3.5.1 Trực quan hóa dữ liệu

ds <- data.frame(wdi_data)
ggplot(ds, aes(x = wdi_data$year, y =wdi_data$SP.DYN.CBRT.IN )) +
  geom_line(color="red") +
  labs(x = "year", y = "Tỷ lệ sinh", title = "Tỷ lệ sinh của Việt Nam từ năm 1980-2020") +
  theme_bw()
## Warning: Use of `wdi_data$year` is discouraged.
## ℹ Use `year` instead.
## Warning: Use of `wdi_data$SP.DYN.CBRT.IN` is discouraged.
## ℹ Use `SP.DYN.CBRT.IN` instead.

Nhận xét: Tỷ lệ sinh của Việt Nam từ năm 1980 - 2020, có xu hướng giảm qua các năm là giảm từ 38 xuống còn 16%.

1.3.6 Xuất khẩu hàng hóa của Việt Nam

hh <- WDI(country = "VN", indicator = "TX.VAL.MRCH.RS.ZS", start = 1980, end = 2020)
print(hh)
##    country iso2c iso3c year TX.VAL.MRCH.RS.ZS
## 1  Vietnam    VN   VNM 2020      7.901667e-03
## 2  Vietnam    VN   VNM 2019     -1.355230e-04
## 3  Vietnam    VN   VNM 2018      1.683195e-04
## 4  Vietnam    VN   VNM 2017      9.240217e-03
## 5  Vietnam    VN   VNM 2016      1.044589e-02
## 6  Vietnam    VN   VNM 2015      9.544519e-03
## 7  Vietnam    VN   VNM 2014     -1.957456e-04
## 8  Vietnam    VN   VNM 2013     -4.621844e-05
## 9  Vietnam    VN   VNM 2012      2.362096e-05
## 10 Vietnam    VN   VNM 2011      0.000000e+00
## 11 Vietnam    VN   VNM 2010      0.000000e+00
## 12 Vietnam    VN   VNM 2009      4.882853e+00
## 13 Vietnam    VN   VNM 2008      2.432358e+00
## 14 Vietnam    VN   VNM 2007      1.911204e+00
## 15 Vietnam    VN   VNM 2006      1.893079e+00
## 16 Vietnam    VN   VNM 2005      1.986346e+00
## 17 Vietnam    VN   VNM 2004      1.188331e+00
## 18 Vietnam    VN   VNM 2003      9.411559e-01
## 19 Vietnam    VN   VNM 2002      1.352475e+00
## 20 Vietnam    VN   VNM 2001      2.864737e+00
## 21 Vietnam    VN   VNM 2000      6.575096e-01
## 22 Vietnam    VN   VNM 1999      1.091344e+00
## 23 Vietnam    VN   VNM 1998      5.970785e-02
## 24 Vietnam    VN   VNM 1997      5.594242e+00
## 25 Vietnam    VN   VNM 1996      9.355089e+00
## 26 Vietnam    VN   VNM 1995      9.229092e+00
## 27 Vietnam    VN   VNM 1994      9.360042e+00
## 28 Vietnam    VN   VNM 1993      1.047147e+01
## 29 Vietnam    VN   VNM 1992      1.982466e+01
## 30 Vietnam    VN   VNM 1991      1.939771e+01
## 31 Vietnam    VN   VNM 1990      4.800096e+01
## 32 Vietnam    VN   VNM 1989      6.886835e+01
## 33 Vietnam    VN   VNM 1988      6.565376e+01
## 34 Vietnam    VN   VNM 1987      6.626711e+01
## 35 Vietnam    VN   VNM 1986      6.443197e+01
## 36 Vietnam    VN   VNM 1985      6.685434e+01
## 37 Vietnam    VN   VNM 1984      6.715689e+00
## 38 Vietnam    VN   VNM 1983      2.311030e+00
## 39 Vietnam    VN   VNM 1982      1.116972e-01
## 40 Vietnam    VN   VNM 1981      2.571337e-02
## 41 Vietnam    VN   VNM 1980                NA

1.3.6.1 Trực quan hóa dữ liệu

xk <- as.data.frame(hh)
ggplot(xk, aes(x = year, y = TX.VAL.MRCH.RS.ZS)) +
  geom_line() +
  labs(x = "Year", y = "Xuất khẩu hàng hóa", title = "Xuất khẩu hàng hóa của nước Việt Nam  1980-2020") +
  theme_bw()
## Warning: Removed 1 row containing missing values (`geom_line()`).

Nhận xét: xuất khẩu hàng hóa có xu hướng tăng từ năm 1980 đến 1985 (tăng từ 0 lên 68), có xu hướng giảm mạnh từ năm 1990 đến 1998 (giảm từ 69 xuống còn 0), đạt trạng bình ổn ở năm 1985 - 1990 (64 - 69) và ở năm 1998 - 2020

1.3.7 Tỷ lệ chi tiêu cho giáo dục tiểu học ở Việt Nam

gd1 <- WDI(country = "VN", indicator = "SE.XPD.PRIM.ZS", start = 1980, end = 2020)
print(gd1)
##    country iso2c iso3c year SE.XPD.PRIM.ZS
## 1  Vietnam    VN   VNM 2020             NA
## 2  Vietnam    VN   VNM 2019             NA
## 3  Vietnam    VN   VNM 2018             NA
## 4  Vietnam    VN   VNM 2017             NA
## 5  Vietnam    VN   VNM 2016             NA
## 6  Vietnam    VN   VNM 2015             NA
## 7  Vietnam    VN   VNM 2014             NA
## 8  Vietnam    VN   VNM 2013       29.68927
## 9  Vietnam    VN   VNM 2012       29.80566
## 10 Vietnam    VN   VNM 2011       28.97733
## 11 Vietnam    VN   VNM 2010       30.01547
## 12 Vietnam    VN   VNM 2009       30.93658
## 13 Vietnam    VN   VNM 2008       29.38257
## 14 Vietnam    VN   VNM 2007             NA
## 15 Vietnam    VN   VNM 2006             NA
## 16 Vietnam    VN   VNM 2005             NA
## 17 Vietnam    VN   VNM 2004             NA
## 18 Vietnam    VN   VNM 2003             NA
## 19 Vietnam    VN   VNM 2002             NA
## 20 Vietnam    VN   VNM 2001             NA
## 21 Vietnam    VN   VNM 2000             NA
## 22 Vietnam    VN   VNM 1999             NA
## 23 Vietnam    VN   VNM 1998             NA
## 24 Vietnam    VN   VNM 1997             NA
## 25 Vietnam    VN   VNM 1996             NA
## 26 Vietnam    VN   VNM 1995             NA
## 27 Vietnam    VN   VNM 1994             NA
## 28 Vietnam    VN   VNM 1993             NA
## 29 Vietnam    VN   VNM 1992             NA
## 30 Vietnam    VN   VNM 1991             NA
## 31 Vietnam    VN   VNM 1990             NA
## 32 Vietnam    VN   VNM 1989             NA
## 33 Vietnam    VN   VNM 1988             NA
## 34 Vietnam    VN   VNM 1987             NA
## 35 Vietnam    VN   VNM 1986             NA
## 36 Vietnam    VN   VNM 1985             NA
## 37 Vietnam    VN   VNM 1984             NA
## 38 Vietnam    VN   VNM 1983             NA
## 39 Vietnam    VN   VNM 1982             NA
## 40 Vietnam    VN   VNM 1981             NA
## 41 Vietnam    VN   VNM 1980             NA

1.3.7.1 Trực quan hóa dữ liệu

ct1 <- as.data.frame(gd1)
ggplot(ct1, aes(x = year, y = SE.XPD.PRIM.ZS)) +
  geom_line() +
  labs(x = "Year", y = "Tỷ lệ chi tiêu cho giáo dục tiểu học", title = "Tỷ lệ chi tiêu cho giáo dục tiểu học của nước Việt Nam  1980-2020") +
  theme_bw()
## Warning: Removed 35 rows containing missing values (`geom_line()`).

Nhận xét: Tỷ lệ chi tiêu cho giáo dục tiểu học tăng từ năm 2008 - 2009 (tăng từ 29.4 lên gần 31) và năm 2011 - 2012 (tăng từ 29 lên 29.8), có xu hướng giảm từ năm 2009 - 2011 (giảm từ 31 xuống còn 29) và năm 2012 - 2013 (giảm từ 29.8 trở xuống). Mấy năm khác không nằm trong khoảng xét này.

1.3.8 Khí thải CO2 gây ra bởi sự đốt cháy nhiên liệu hóa thạch và sản xuất xi măng ở Việt Nam

th1 <- WDI(country = "VN", indicator = "EN.ATM.CO2E.KT", start = 1980, end = 2020)
print(th1)
##    country iso2c iso3c year EN.ATM.CO2E.KT
## 1  Vietnam    VN   VNM 2020       355323.1
## 2  Vietnam    VN   VNM 2019       341716.8
## 3  Vietnam    VN   VNM 2018       286139.3
## 4  Vietnam    VN   VNM 2017       229877.4
## 5  Vietnam    VN   VNM 2016       222028.5
## 6  Vietnam    VN   VNM 2015       201513.3
## 7  Vietnam    VN   VNM 2014       180698.8
## 8  Vietnam    VN   VNM 2013       164297.4
## 9  Vietnam    VN   VNM 2012       155522.8
## 10 Vietnam    VN   VNM 2011       155973.3
## 11 Vietnam    VN   VNM 2010       151413.5
## 12 Vietnam    VN   VNM 2009       132290.0
## 13 Vietnam    VN   VNM 2008       117585.1
## 14 Vietnam    VN   VNM 2007       105137.4
## 15 Vietnam    VN   VNM 2006        94869.7
## 16 Vietnam    VN   VNM 2005        92368.6
## 17 Vietnam    VN   VNM 2004        85051.8
## 18 Vietnam    VN   VNM 2003        70903.7
## 19 Vietnam    VN   VNM 2002        66495.8
## 20 Vietnam    VN   VNM 2001        56722.4
## 21 Vietnam    VN   VNM 2000        51207.7
## 22 Vietnam    VN   VNM 1999        46412.8
## 23 Vietnam    VN   VNM 1998        45473.9
## 24 Vietnam    VN   VNM 1997        40842.9
## 25 Vietnam    VN   VNM 1996        35033.5
## 26 Vietnam    VN   VNM 1995        31401.0
## 27 Vietnam    VN   VNM 1994        26682.3
## 28 Vietnam    VN   VNM 1993        24244.9
## 29 Vietnam    VN   VNM 1992        20812.9
## 30 Vietnam    VN   VNM 1991        19796.6
## 31 Vietnam    VN   VNM 1990        19327.9
## 32 Vietnam    VN   VNM 1989             NA
## 33 Vietnam    VN   VNM 1988             NA
## 34 Vietnam    VN   VNM 1987             NA
## 35 Vietnam    VN   VNM 1986             NA
## 36 Vietnam    VN   VNM 1985             NA
## 37 Vietnam    VN   VNM 1984             NA
## 38 Vietnam    VN   VNM 1983             NA
## 39 Vietnam    VN   VNM 1982             NA
## 40 Vietnam    VN   VNM 1981             NA
## 41 Vietnam    VN   VNM 1980             NA

1.3.8.1 Trực quan hóa dữ liệu

tk <- as.data.frame(th1)
ggplot(tk, aes(x = year, y = EN.ATM.CO2E.KT)) +
  geom_line() +
  labs(x = "Year", y = "khí thải CO2", title = "khí thải CO2 của nước Việt Nam  1980-2020") +
  theme_bw()
## Warning: Removed 10 rows containing missing values (`geom_line()`).

Nhận xét: Khí thải CO2 gây ra bởi sự đốt cháy nhiên liệu hóa thạch và sản xuất xi măng ở Việt Nam có xu hướng tăng qua các năm từ năm 1990 đến năm 2020 và trở về sau.

1.3.9 Phần trăm của lực lượng lao động có trình độ học vấn cao ở Việt Nam

ll1 <- WDI(country = "VN", indicator = "SL.TLF.ADVN.ZS", start = 1980, end = 2020)
print(ll1)
##    country iso2c iso3c year SL.TLF.ADVN.ZS
## 1  Vietnam    VN   VNM 2020          88.12
## 2  Vietnam    VN   VNM 2019          87.72
## 3  Vietnam    VN   VNM 2018          87.65
## 4  Vietnam    VN   VNM 2017          87.64
## 5  Vietnam    VN   VNM 2016          87.53
## 6  Vietnam    VN   VNM 2015          87.74
## 7  Vietnam    VN   VNM 2014          87.78
## 8  Vietnam    VN   VNM 2013          87.27
## 9  Vietnam    VN   VNM 2012          87.12
## 10 Vietnam    VN   VNM 2011          86.75
## 11 Vietnam    VN   VNM 2010          86.67
## 12 Vietnam    VN   VNM 2009             NA
## 13 Vietnam    VN   VNM 2008             NA
## 14 Vietnam    VN   VNM 2007             NA
## 15 Vietnam    VN   VNM 2006             NA
## 16 Vietnam    VN   VNM 2005             NA
## 17 Vietnam    VN   VNM 2004             NA
## 18 Vietnam    VN   VNM 2003             NA
## 19 Vietnam    VN   VNM 2002             NA
## 20 Vietnam    VN   VNM 2001             NA
## 21 Vietnam    VN   VNM 2000             NA
## 22 Vietnam    VN   VNM 1999             NA
## 23 Vietnam    VN   VNM 1998             NA
## 24 Vietnam    VN   VNM 1997             NA
## 25 Vietnam    VN   VNM 1996             NA
## 26 Vietnam    VN   VNM 1995             NA
## 27 Vietnam    VN   VNM 1994             NA
## 28 Vietnam    VN   VNM 1993             NA
## 29 Vietnam    VN   VNM 1992             NA
## 30 Vietnam    VN   VNM 1991             NA
## 31 Vietnam    VN   VNM 1990             NA
## 32 Vietnam    VN   VNM 1989             NA
## 33 Vietnam    VN   VNM 1988             NA
## 34 Vietnam    VN   VNM 1987             NA
## 35 Vietnam    VN   VNM 1986             NA
## 36 Vietnam    VN   VNM 1985             NA
## 37 Vietnam    VN   VNM 1984             NA
## 38 Vietnam    VN   VNM 1983             NA
## 39 Vietnam    VN   VNM 1982             NA
## 40 Vietnam    VN   VNM 1981             NA
## 41 Vietnam    VN   VNM 1980             NA

1.3.9.1 Trực quan hóa dữ liệu

tt2 <- as.data.frame(ll1)
ggplot(tt2, aes(x = year, y = SL.TLF.ADVN.ZS)) +
  geom_line() +
  labs(x = "Year", y = "Phần trăm của lực lượng lao động có trình độ học vấn cao", title = "Phần trăm của lực lượng lao động có trình độ học vấn cao của nước Việt Nam  1980-2020") +
  theme_bw()
## Warning: Removed 30 rows containing missing values (`geom_line()`).

Nhận xét: Phần trăm của lực lượng lao động có trình độ học vấn cao ở Việt Nam tăng từ năm 2010 đến 2013 (tăng từ 86.6 lên 87.8) và từ năm 2015 đến 2020 (tăng từ 87.5 đến 88.3), giảm từ năm 2013 đến 2015 (giảm từ 87.8 xuống còn 87.5)

1.3.10 GDP bình quân trên đầu người ở Việt Nam

bq1 <- WDI(country = "VN", indicator = "NY.GDP.PCAP.CD", start = 1980, end = 2020)
print(bq1)
##    country iso2c iso3c year NY.GDP.PCAP.CD
## 1  Vietnam    VN   VNM 2020     3586.34730
## 2  Vietnam    VN   VNM 2019     3491.09128
## 3  Vietnam    VN   VNM 2018     3267.22501
## 4  Vietnam    VN   VNM 2017     2992.07175
## 5  Vietnam    VN   VNM 2016     2760.71710
## 6  Vietnam    VN   VNM 2015     2595.23498
## 7  Vietnam    VN   VNM 2014     2558.77892
## 8  Vietnam    VN   VNM 2013     2367.49954
## 9  Vietnam    VN   VNM 2012     2190.23228
## 10 Vietnam    VN   VNM 2011     1953.55698
## 11 Vietnam    VN   VNM 2010     1684.01167
## 12 Vietnam    VN   VNM 2009     1225.84501
## 13 Vietnam    VN   VNM 2008     1158.10163
## 14 Vietnam    VN   VNM 2007      913.31233
## 15 Vietnam    VN   VNM 2006      790.59252
## 16 Vietnam    VN   VNM 2005      693.18984
## 17 Vietnam    VN   VNM 2004      551.90351
## 18 Vietnam    VN   VNM 2003      485.45091
## 19 Vietnam    VN   VNM 2002      434.81029
## 20 Vietnam    VN   VNM 2001      409.49773
## 21 Vietnam    VN   VNM 2000      394.58314
## 22 Vietnam    VN   VNM 1999      367.15688
## 23 Vietnam    VN   VNM 1998      352.78307
## 24 Vietnam    VN   VNM 1997      352.93444
## 25 Vietnam    VN   VNM 1996      329.00119
## 26 Vietnam    VN   VNM 1995      281.13360
## 27 Vietnam    VN   VNM 1994      224.63709
## 28 Vietnam    VN   VNM 1993      185.18712
## 29 Vietnam    VN   VNM 1992      141.38369
## 30 Vietnam    VN   VNM 1991      140.63100
## 31 Vietnam    VN   VNM 1990       96.71930
## 32 Vietnam    VN   VNM 1989       96.13036
## 33 Vietnam    VN   VNM 1988      397.01436
## 34 Vietnam    VN   VNM 1987      585.30494
## 35 Vietnam    VN   VNM 1986      430.18850
## 36 Vietnam    VN   VNM 1985      235.65254
## 37 Vietnam    VN   VNM 1984             NA
## 38 Vietnam    VN   VNM 1983             NA
## 39 Vietnam    VN   VNM 1982             NA
## 40 Vietnam    VN   VNM 1981             NA
## 41 Vietnam    VN   VNM 1980             NA

1.3.10.1 Trực quan hóa dữ liệu

bd <- as.data.frame(bq1)
ggplot(bd, aes(x = year, y = NY.GDP.PCAP.CD)) +
  geom_line() +
  labs(x = "Year", y = "GDP bình quân trên đầu người", title = "GDP bình quân trên đầu người của nước Việt Nam  1980-2020") +
  theme_bw()
## Warning: Removed 5 rows containing missing values (`geom_line()`).

Nhận xét: GDP bình quân trên đầu người ở Việt Nam có xu hướng tăng từ năm 1988 đến năm 2020 (tăng từ 100 đến 3600)

2 BÀI TẬP TUẦN 4

2.1 Thực hành trên lớp

library(AER)
## Loading required package: car
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:purrr':
## 
##     some
## Loading required package: lmtest
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival
library(tidyverse)
library(corrplot)
## corrplot 0.92 loaded
library(ggplot2)
data("Prestige")
pres <- Prestige
head(pres)
##                     education income women prestige census type
## gov.administrators      13.11  12351 11.16     68.8   1113 prof
## general.managers        12.26  25879  4.02     69.1   1130 prof
## accountants             12.77   9271 15.70     63.4   1171 prof
## purchasing.officers     11.42   8865  9.11     56.8   1175 prof
## chemists                14.62   8403 11.68     73.5   2111 prof
## physicists              15.64  11030  5.13     77.6   2113 prof
names(pres) <- c("e","i","w","p","c","t" )

2.1.1 Câu lệnh table

table(pres$i,pres$t)
##        
##         bc prof wc
##   611    0    0  0
##   918    0    0  0
##   1656   1    0  0
##   1890   1    0  0
##   2370   1    0  0
##   2448   0    0  1
##   2594   0    0  1
##   2847   1    0  0
##   2901   0    0  1
##   3000   1    0  0
##   3016   0    0  1
##   3116   1    0  0
##   3148   0    0  1
##   3161   0    0  1
##   3472   1    0  0
##   3485   2    0  0
##   3582   1    0  0
##   3617   1    0  0
##   3643   0    0  0
##   3739   0    0  1
##   3910   1    0  0
##   3930   1    0  0
##   3942   1    0  0
##   4036   0    0  1
##   4075   0    0  1
##   4199   1    0  0
##   4224   1    0  0
##   4330   0    0  1
##   4348   0    0  1
##   4443   1    0  0
##   4549   1    0  0
##   4614   0    1  0
##   4686   0    1  0
##   4696   1    0  0
##   4741   0    0  1
##   4753   1    0  0
##   4761   0    0  1
##   5052   0    0  1
##   5092   0    1  0
##   5134   2    0  0
##   5180   0    0  1
##   5299   1    0  0
##   5449   1    0  0
##   5511   0    0  1
##   5562   1    0  0
##   5648   0    1  0
##   5795   1    0  0
##   5811   1    0  0
##   5902   0    1  0
##   5959   1    0  0
##   6112   0    1  0
##   6197   0    1  0
##   6259   0    0  1
##   6336   0    1  0
##   6462   1    0  0
##   6477   1    0  0
##   6565   1    0  0
##   6573   1    0  0
##   6686   1    0  0
##   6860   1    0  0
##   6928   1    0  0
##   6992   0    0  1
##   7059   0    1  0
##   7147   1    0  0
##   7405   0    1  0
##   7482   0    0  1
##   7562   0    0  1
##   7716   1    0  0
##   7869   1    0  0
##   7956   0    0  1
##   8034   0    1  0
##   8043   1    0  0
##   8049   0    1  0
##   8131   0    0  1
##   8206   0    0  0
##   8258   0    1  0
##   8316   1    0  0
##   8403   0    1  0
##   8425   0    1  0
##   8780   0    0  1
##   8845   1    0  0
##   8865   0    1  0
##   8880   1    0  0
##   8891   1    0  0
##   8895   1    0  0
##   9271   0    1  0
##   9593   0    1  0
##   10432  0    1  0
##   11023  0    1  0
##   11030  0    1  0
##   11377  0    1  0
##   12351  0    1  0
##   12480  0    1  0
##   14032  0    1  0
##   14163  0    1  0
##   14558  0    1  0
##   17498  0    1  0
##   19263  0    1  0
##   25308  0    1  0
##   25879  0    1  0

Giải thích: trong bảng tần số trên, những người lao động chân tay nhóm bc có mức thu nhập trung bình thấp nhất là 1656 nghìn đô và cao nhất là 8895 nghìn đô; những người quản lý, kĩ thuật thuộc nhóm prof có mức thu nhập trung bình thấp nhất là 4614 nghìn đô và cao nhất là 25879 nghìn đô, những người thuộc nhóm cổ áo trắng (wc) có mức thu nhập trung bình thấp nhất là 2446 nghìn đô và cao nhất là 8780 nghìn đô. Như vậy, ta thấy được những người nhóm bc có mức thu nhập thấp nhât và những người nhóm prof có mức thu nhập cao nhất trong 3 nhóm

table(pres$t)
## 
##   bc prof   wc 
##   44   31   23
table(pres$t)/sum(table(pres$t))
## 
##        bc      prof        wc 
## 0.4489796 0.3163265 0.2346939

Giải thích: từ 2 bảng trên cho ta thấy trong nhóm người lao động chân tay (bc) có 44 người chiếm 44,90%; đây là nhóm chiếm nhiều nhất trong tổng số khảo sát của người Canada, nhóm người về quản lý và kĩ thuật (prof) có 31 người chiếm 31,63%, nhóm chiếm vị trí trung bình và ổn định; nhóm người lao động trí óc (wc) có 23 người chiếm 23,47%, là nhóm chiếm ít nhất trong số khảo sát.

2.1.2 Câu lệnh dim

Lấy ra dòng có mức thu nhập của biến income > 8000 và điểm uy tín của Pineo-Porter cho nghề nghiệp của biến prestige >33.3

it8 <- pres[pres$i>8000|pres$p>33.3,]
dim(it8)
## [1] 79  6

Nhận xét: số người có mức thu nhập trung bình lớn hơn 8000 chiếm 79 người, số người có điểm uy tín của Pineo-Porter cho nghề nghiệp lớn hơn 33.3 chiếm 6 người

2.1.3 Tính toán các biến

pres$loge <- log(pres$e)
pres$e
##   [1] 13.11 12.26 12.77 11.42 14.62 15.64 15.09 15.44 14.52 14.64 12.39 12.30
##  [13] 13.83 14.44 14.36 14.21 15.77 14.15 15.22 14.50 15.97 13.62 15.08 15.96
##  [25] 15.94 14.71 12.46  9.45 13.62 15.21 12.79 11.09 12.71 11.44 11.59 11.49
##  [37] 11.32 10.64 11.36  9.17 12.09 11.04  9.22 10.07 10.51 11.20 11.13 11.43
##  [49] 11.00  9.84 11.13 10.05  9.62  9.93 11.60 11.09 11.03  9.47 10.93  7.74
##  [61]  8.50 10.57  9.46  7.33  7.11  7.58  6.84  8.60  8.88  7.54  7.64  7.64
##  [73]  7.42  6.69  6.74 10.09  8.81  8.40  7.92  8.43  8.78  8.76 10.29  6.38
##  [85]  8.10 10.10  6.67  9.05  9.93  8.24  6.92  6.60  7.81  8.33  7.52 12.27
##  [97]  8.49  7.58  7.93  8.37 10.00  8.55
pres$logi <- log(pres$i)
pres$i
##   [1] 12351 25879  9271  8865  8403 11030  8258 14163 11377 11023  5902  7059
##  [13]  8425  8049  7405  6336 19263  6112  9593  4686 12480  5648  8034 25308
##  [25] 14558 17498  4614  3485  5092 10432  5180  6197  7562  8206  4036  3148
##  [37]  4348  2448  4330  4761  3016  2901  5511  3739  3161  4741  5052  6259
##  [49]  4075  7482  8780  2594   918  2370  8131  6992  7956  8895  8891  3116
##  [61]  3930  7869   611  3000  3472  3582  3643  1656  6860  4199  5134  5134
##  [73]  1890  4443  3485  8043  6686  6565  6477  5811  6573  3942  5449  2847
##  [85]  5795  7716  4696  8316  7147  8880  5299  5959  4549  6928  3910 14032
##  [97]  8845  5562  4224  4753  6462  3617
summary(pres$i)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     611    4106    5930    6798    8187   25879
  • Khi thực hiện dòng lệnh summary(pres$i) ta thu được giá trị nhỏ nhất của mức thu nhập là 611, giá trị lớn nhất của mức thu nhập là 25879, mức thu nhập trung bình là 6798, có 25% có mức thu nhập nhỏ hơn 4106, có 50% có mức thu nhập dưới 5930 và 75% có mức thu nhập nhỏ hơn 8187 (đơn vị: nghìn đô)
mean(pres$w)
## [1] 28.97902
sum(pres$i)
## [1] 693386
var(pres$e)
## [1] 7.444408
  • Mức trung bình cho người đương nhiệm là phụ nữ 28.97902
  • Tổng mức lương trung bình là 693386
  • 7.444408 là độ phân tán của trình độ
aggregate(pres$i,list(pres$e),FUN='sd')
##    Group.1         x
## 1     6.38        NA
## 2     6.60        NA
## 3     6.67        NA
## 4     6.69        NA
## 5     6.74        NA
## 6     6.84        NA
## 7     6.92        NA
## 8     7.11        NA
## 9     7.33        NA
## 10    7.42        NA
## 11    7.52        NA
## 12    7.54        NA
## 13    7.58 1400.0714
## 14    7.64    0.0000
## 15    7.74        NA
## 16    7.81        NA
## 17    7.92        NA
## 18    7.93        NA
## 19    8.10        NA
## 20    8.24        NA
## 21    8.33        NA
## 22    8.37        NA
## 23    8.40        NA
## 24    8.43        NA
## 25    8.49        NA
## 26    8.50        NA
## 27    8.55        NA
## 28    8.60        NA
## 29    8.76        NA
## 30    8.78        NA
## 31    8.81        NA
## 32    8.88        NA
## 33    9.05        NA
## 34    9.17        NA
## 35    9.22        NA
## 36    9.45        NA
## 37    9.46        NA
## 38    9.47        NA
## 39    9.62        NA
## 40    9.84        NA
## 41    9.93 3377.8491
## 42   10.00        NA
## 43   10.05        NA
## 44   10.07        NA
## 45   10.09        NA
## 46   10.10        NA
## 47   10.29        NA
## 48   10.51        NA
## 49   10.57        NA
## 50   10.64        NA
## 51   10.93        NA
## 52   11.00        NA
## 53   11.03        NA
## 54   11.04        NA
## 55   11.09  562.1499
## 56   11.13 2636.0941
## 57   11.20        NA
## 58   11.32        NA
## 59   11.36        NA
## 60   11.42        NA
## 61   11.43        NA
## 62   11.44        NA
## 63   11.49        NA
## 64   11.59        NA
## 65   11.60        NA
## 66   12.09        NA
## 67   12.26        NA
## 68   12.27        NA
## 69   12.30        NA
## 70   12.39        NA
## 71   12.46        NA
## 72   12.71        NA
## 73   12.77        NA
## 74   12.79        NA
## 75   13.11        NA
## 76   13.62  393.1514
## 77   13.83        NA
## 78   14.15        NA
## 79   14.21        NA
## 80   14.36        NA
## 81   14.44        NA
## 82   14.50        NA
## 83   14.52        NA
## 84   14.62        NA
## 85   14.64        NA
## 86   14.71        NA
## 87   15.08        NA
## 88   15.09        NA
## 89   15.21        NA
## 90   15.22        NA
## 91   15.44        NA
## 92   15.64        NA
## 93   15.77        NA
## 94   15.94        NA
## 95   15.96        NA
## 96   15.97        NA

Kiểm tra xem độ lệch chuẩn trung bình của thu nhập bình quân ứng với từng trình độ học vấn khác nhau.Thu nhập là 11.13 có độ lệch trung bình cao nhất. Thu nhập là 7.64 có độ lệch trung bình thấp nhất.

2.1.4 Đồ thị

pres %>% ggplot(map=aes(x=e,y=i))+ geom_point(aes(color=p))+ geom_smooth(aes(color=p), formula= y~x, method= 'lm')
## Warning: The following aesthetics were dropped during statistical transformation: colour
## ℹ 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?

Ta vẽ đồ thị sự tương quan giữa thu nhập bình quan và trình độ học vấn theo từng mức điểm uy tín. Đọc kết quả đồ thị, ta thấy được với tất cả mức tổng thu nhập thì trình độ học vấn đều có mối tương quan thuận với điểm uy tín đó.

2.1.5 Câu lệnh group_by

group_by(pres,pres$i) %>% summarise(n=mean(pres$e))
## # A tibble: 100 × 2
##    `pres$i`     n
##       <int> <dbl>
##  1      611  10.7
##  2      918  10.7
##  3     1656  10.7
##  4     1890  10.7
##  5     2370  10.7
##  6     2448  10.7
##  7     2594  10.7
##  8     2847  10.7
##  9     2901  10.7
## 10     3000  10.7
## # ℹ 90 more rows
group_by(pres,pres$income) %>% summarise(n=mean(pres$women))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `n = mean(pres$women)`.
## Caused by warning in `mean.default()`:
## ! argument is not numeric or logical: returning NA
## # A tibble: 1 × 1
##       n
##   <dbl>
## 1    NA
group_by(pres,pres$income) %>% summarise(n=mean(pres$prestige))
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `n = mean(pres$prestige)`.
## Caused by warning in `mean.default()`:
## ! argument is not numeric or logical: returning NA
## # A tibble: 1 × 1
##       n
##   <dbl>
## 1    NA

2.1.6 Vẽ biểu đồ phân tán

library("PerformanceAnalytics")
## Loading required package: xts
## 
## ######################### Warning from 'xts' package ##########################
## #                                                                             #
## # The dplyr lag() function breaks how base R's lag() function is supposed to  #
## # work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or       #
## # source() into this session won't work correctly.                            #
## #                                                                             #
## # Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
## # conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop           #
## # dplyr from breaking base R's lag() function.                                #
## #                                                                             #
## # Code in packages is not affected. It's protected by R's namespace mechanism #
## # Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning.  #
## #                                                                             #
## ###############################################################################
## 
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## 
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
## 
##     legend
chart.Correlation(longley, histogram=TRUE, pch=19)
## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

Nhận xét: đồ thị trên cho chúng ta biết tất cả hệ số tương quan giữa tất cả các biến số (biến liên tục). Cụ thể như, hệ số tương quan cao nhất (1) giữa GNP với Year, giữa GNP.defiaton với Year và giữa GNP với Population và giữa Population với Year (0.99);… là những mối tương quan có hệ số cao nhất (có ý nghĩa thống kê). Tuy nhiên, giữa Unemployed với Arm … có hệ số tương quan quá thấp và không có ý nghĩa thống kê. Ngoài ra, đồ thị trên còn cung cấp cho ta biểu đồ tán xạ, biểu đồ histogram cho từng cặp biến số và cho biết hệ số tương quan càng cao, kích thước của font chữ (số) càng lớn. Trong cốt truyện trên:

Phân phối của từng biến được hiển thị trên đường chéo. Ở dưới cùng của đường chéo: các biểu đồ phân tán hai chiều với một đường phù hợp được hiển thị Trên cùng của đường chéo : giá trị của mối tương quan cộng với mức ý nghĩa như các ngôi sao Mỗi mức ý nghĩa được liên kết với một ký hiệu : giá trị p(0, 0,001, 0,01, 0,05, 0,1, 1) <=> ký hiệu(“”, ””, ””, “.”, ” “)

2.2 Mô tả dữ liệu

Tiếp tục ở tuần 3, em vẫn sử dụng lại bộ dữ liệu của dataset Prestige

Khung dữ liệu Uy tín có 102 hàng và 6 cột. Các quan sát là nghề nghiệp.

  • Giải thích các biến:

  • education: Trình độ học vấn trung bình của những người đương nhiệm trong nghề nghiệp, các năm, vào năm 1971.

  • income: Thu nhập trung bình của những người đương nhiệm, đô la, năm 1971.

  • women: Tỷ lệ người đương nhiệm là phụ nữ.

  • prestige: Điểm uy tín của Pineo-Porter cho nghề nghiệp, từ một cuộc khảo sát xã hội được thực hiện vào giữa những năm 1960.

  • census: Điều tra dân số Canada mã nghề nghiệp

  • type: Loại nghề nghiệp. Một yếu tố với các cấp độ (lưu ý: không theo thứ tự): bc, Blue Collar; prof, Professional, Managerial, and Technical; wc, Cổ trắng.

library(AER)
library(tidyverse)
library(corrplot)
data("Prestige")
pres <- Prestige
head(pres)
##                     education income women prestige census type
## gov.administrators      13.11  12351 11.16     68.8   1113 prof
## general.managers        12.26  25879  4.02     69.1   1130 prof
## accountants             12.77   9271 15.70     63.4   1171 prof
## purchasing.officers     11.42   8865  9.11     56.8   1175 prof
## chemists                14.62   8403 11.68     73.5   2111 prof
## physicists              15.64  11030  5.13     77.6   2113 prof

Đặt tên lại các biến

names(pres) <- c("e","i","w","p","c","t" )

2.3 Ma trận tương quan trên Bộ dữ liệu uy tín

Hãy xác định các biến có tương quan cao với biến uy tín

Mối tương quan của Bộ dữ liệu uy tín trên các biến số

cor(pres[,-6])
##             e          i           w          p          c
## e  1.00000000  0.5775802  0.06185286  0.8501769 -0.8230882
## i  0.57758023  1.0000000 -0.44105927  0.7149057 -0.3610023
## w  0.06185286 -0.4410593  1.00000000 -0.1183342 -0.2270028
## p  0.85017689  0.7149057 -0.11833419  1.0000000 -0.6345103
## c -0.82308821 -0.3610023 -0.22700277 -0.6345103  1.0000000
  • Vẽ ma trận tương quan
corrplot(cor(pres[,-6]) , method = "number")

Bạn có thể nhận thấy rằng các biến số về thu nhập và giáo dục có mối tương quan thuận chiều với uy tín. Ngoài ra, điều tra dân số có tương quan nghịch với uy tín trong khi phụ nữ không có mối tương quan.

2.4 Hồi quy

hq <- lm(pres$e~pres$i)
summary(hq)
## 
## Call:
## lm(formula = pres$e ~ pres$i)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.5601 -1.9279 -0.0718  1.7333  4.5458 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 8.215e+00  4.199e-01  19.566  < 2e-16 ***
## pres$i      3.712e-04  5.246e-05   7.075 2.08e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.238 on 100 degrees of freedom
## Multiple R-squared:  0.3336, Adjusted R-squared:  0.3269 
## F-statistic: 50.06 on 1 and 100 DF,  p-value: 2.079e-10

Kiểm định sự phù hợp mô hình: ta có F= 50.06>C nên mô hình trên là phù hợp

Kiểm định biến giá gói thay đổi ảnh hưởng đến biến số gói: ta có t-value=7.075>C nên biến education thay đổi dẫn đến sự thay đổi của biến income

2.4.1 Vẽ đường hồi quy tuyến tính tương ứng với dataset Prestige

pres |> ggplot(map = aes(x = e, y = i)) + geom_point(color="red") + xlab("Area") + ylab("Peri") + labs(title = 'Đồ thị scatter thể hiện mối liên hệ giữa biến education và biến income') + geom_smooth(formula = y ~ x, method = 'lm', color = 'yellow')

Giữa biến education và biến income có sự tương quan dương với nhau, cụ thể khi giá trị của biến education tăng thì giá trị của biến income cũng tăng theo.

2.5 Đồ thị thể hiện sự tương quan giữa điểm uy tín của nghề nghiệp và mã nghề nghiệp

pres |> ggplot(map = aes(x = p, y = c )) + geom_point(color="red") + xlab("điểm uy tín") + ylab("mã nghề nghiệp") + geom_smooth(formula = y ~ x, method = 'lm', color = 'black') + labs(title = 'Đồ Thị thể hiện sự tương quan giữa điểm uy tín của nghề nghiệp và mã nghề nghiệp')

  • Kết luận: giữa 2 biến điểm uy tín của nghề nghiệp và mã nghề nghiệp có quan hệ tuyến tính với nhau và cả hai biến cùng giảm

2.6 Đồ thị dạng scatter

Với dataset pres ta vẽ được đồ thị scatter như sau

Đồ thị scatter có thể cho ta thấy được mối liên hệ biến education và biến income như sau:

pres |> ggplot(map = aes(x = e, y = i)) + geom_point(color="blue") + xlab("e") + ylab("i") + labs(title = 'Đồ thị scatter thể hiện mối liên hệ giữa biến education và biến income')

Chúng ta cũng có thể nối các điểm trong đồ thị dạng scatter của 2 biến education (e) và income (i) lại với nhau bằng những đoạn thẳng như sau:

pres |> ggplot(aes(x = e, y = i)) +
  geom_point(color = 'blue') +
  geom_line(color = 'red')

Nhận xét: Bốn đồ thị phân tán (scatter) trên đều thể hiện sự phân tán của trình độ học vấn và mức thu nhập. Từ đồ thị ta có thể thấy:

Nhóm người có trình độ học vấn trung bình tập trung nhiều nhất ở khoảng 12 đến 16. Trong những người có trình độ học vấn, nhóm người trong khoảng 9 cho đến 10 chiếm ít nhất. Thu nhập người có trình độ thấp nhỏ nhất thì gần bằng 2500 và lớn nhất là hơn 25000. Người có mức thu nhập là hơn 25000 ứng với trình độ là 12

pres %>% ggplot(aes(x = e, y=i)) + geom_point(aes(color = p), na.rm = TRUE) + geom_smooth(aes(color = p), method = lm, formula = y~x, na.rm = TRUE) + xlab('Trình độ')+ylab('Mức thu nhập trung bình')
## Warning: The following aesthetics were dropped during statistical transformation: colour
## ℹ 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 đồ

2.7.1 Sử dụng biểu đồ tròn phân tích biến type

pie(table(pres$t),col = rainbow(3), main = "Biểu đồ tròn của loại nghề nghiệp")

Biểu đồ tròn này thể hiện lần lượt ba biểu hiện của biến loại nghề nghiệp type. Biểu đồ này thể hiện bc, Blue Collar chiếm phần nhiều nhât, tiếp đó là prof, Professional, Managerial, and Technical, và ít nhất là wc, Cổ trắng.

2.7.2 Sử dụng biểu đồ cột phân tích hai biến type và prestige

table(pres$t)
## 
##   bc prof   wc 
##   44   31   23
pres |> ggplot(aes(x = t, y = after_stat(count))) + geom_bar(fill = 'blue') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .4)  + theme_classic() + labs(title = 'Đồ Thị thể hiện loại nghề nghiệp', x = 'Loại nghề nghiệp', y = 'Điểm uy tín')

Việc lập bảng và thống kê trên biểu đồ cột thể hiện loại nghề nghiệp theo điểm uy tín của nghề nghiệp đó thì có 44 (chiếm 43,1%) loại bc ,có 31 (chiếm 30,4%), có 23 (chiếm 22,5%) và loại không xác định chiếm 3,9% số lượng tham gia vào cuộc khảo sát. Tại đây, số lượng các khảo suất chênh lệch nhau không nhiều lần lượt là 12,7 ; 7,9

2.7.3 Biểu đồ cột đôi theo biến điểm uy tín và loại nghề nghiệp

prety1 <- ggplot(pres, aes(x = p, fill = t)) +
  geom_bar(position = "stack", stat = "count") +
  labs(x = "ĐIỂM UY TÍN", y = "TỔNG", title = "BIỂU ĐỒ ĐIỂM UY TÍN THEO LOẠI NGHỀ NGHIỆP") +
  theme_minimal()
print(prety1)

Biểu đồ cột thu nhập theo biến “điểm uy tín” và “loại nghề nghiệp” từ dữ liệu “Prestige”. Biểu đồ này thể hiện phân bố số lượng người theo điểm uy tín của loại nghề nghiệp đó của họ, được phân theo điểm uy tín và loại nghề nghiệp tương ứng.

Trục x của biểu đồ là biến “điểm uy tín” (prestige), biểu thị điểm uy tín của nghề nghiệp mà người đó tạo nên. Trục y là loại nghiệp nghiệp của từng người.

Mỗi cột trong biểu đồ đại diện cho một loại nghề nghiệp, được phân theo các loại gồm bc,prof,wc, loại khác. Các cột được xếp chồng lên nhau, cho thấy tỷ lệ phân bố của điểm uy tín theo từng loại nghề nghiệp.

2.7.4 Biểu đồ độ lệch chuẩn thu nhập theo loại nghề nghiệp

ict2 <- ggplot(pres, aes(x = p, y = i, fill = p)) +
  geom_bar(stat = "summary", fun = sd, position = "dodge", color = "blue") +
  labs(x = "LOẠI NGHỀ NGHIỆP", y = "ĐỘ LỆCH CHUẨN CỦA THU NHẬP", title = "ĐỘ LỆCH CHUẨN CỦA THU NHẬP THEO LOẠI NGHỀ NGHIỆP")
# Hiển thị số liệu trên đỉnh của biểu đồ
ict<- ict2 + geom_text(stat = "summary", fun = sd, position = position_dodge(width = 0.9),
                         aes(label = round(..y.., 2)), vjust = -0.5)
ict
## Warning: The dot-dot notation (`..y..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(y)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: `position_dodge()` requires non-overlapping x intervals
## Warning: Removed 84 rows containing missing values (`geom_bar()`).
## Warning: Removed 84 rows containing missing values (`geom_text()`).

Giải thích:

Trục x: Biểu diễn loại nghề nghiệp, với các mức nằm trong khoảng từ 20 đến 80. Trục y: Biểu diễn độ lệch chuẩn của thu nhập.Nhận xét:

Loại nghề nghiệp: Biểu đồ cho thấy sự khác biệt về độ lệch chuẩn của mức thu nhập giữa các loại nghề nghiệp. Độ lệch chuẩn: Độ lệch chuẩn được biểu diễn bằng độ dài của cột. Các cột dài hơn cho thấy sự biến động mạnh hơn trong mức thu nhập, trong khi các cột ngắn hơn cho thấy sự ổn định hơn. Số liệu trên đỉnh cột: Số liệu trên đỉnh mỗi cột biểu thị giá trị độ lệch chuẩn tương ứng của từng nhóm. Số liệu này giúp hiểu rõ hơn về mức độ biến động của mức lương trong từng nhóm giới tính.

ggplot(pres, aes(x = e, y = i, color = p)) +
  geom_line() +
  labs(x = "Trình độ học vấn", y = "Thu nhập", color = "Loại nghề nghiệp") +
  theme_minimal()

Biểu đồ đường thu nhập theo biến trình độ học vấn cho thấy xu hướng tăng trưởng thu nhập theo trình độ học vấn và có sự khác biệt giữa các loại nghề nghiệp. Dựa vào biểu đồ, ta có thể rút ra một số nhận xét sau:

Thu nhập tăng theo trình độ: Đối với trình độ, có một xu hướng tăng thu nhập khi trình độ tăng lên. Điều này cho thấy tính công bằng trong việc tăng thu nhập dựa trên trình độ học vấn.

Độ biến động: Biểu đồ cho thấy độ biến động của thu nhập tăng dần theo trình độ. Điều này có thể là do các yếu tố khác nhau như thăng tiến trong sự nghiệp, đổi việc, hoặc sự tăng trưởng của ngành nghề.

Xu hướng chung: Dựa vào các đường đồng thời, ta có thể nhận thấy xu hướng chung của thu nhập theo trình độ. Tuy nhiên, có sự biến động đáng kể giữa các loại nghề nghiệp.

2.8 Hệ số tương quan

2.8.1 Hệ số tương quan Person

  • Hệ số tương quan Pearson còn được gọi là hệ số Pearson (Pearson Correlation Coefficient) trong thống kê được định nghĩa là thước đo mối quan hệ thống kê giữa hai biến và sự liên kết của chúng với nhau
ed <- pres$e
ic <- pres$i
cor.test(ed,ic)
## 
##  Pearson's product-moment correlation
## 
## data:  ed and ic
## t = 7.0753, df = 100, p-value = 2.079e-10
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.4315828 0.6940914
## sample estimates:
##       cor 
## 0.5775802

Kết luận: ta có p-value = 2.079e-10 < alpha=0.05 nên hai biến trình độ học vấn và thu nhập có quan hệ tương quan tuyến tính với nhau.

2.8.2 Hệ số tương quan Spearman

Ý nghĩa: Hệ số tương quan Pearson chỉ hợp lí nếu biến số x và y tuân theo luật phân phối chuẩn. Nếu x và y không tuân theo luật phân phối chuẩn, chúng ta phải sử dụng một hệ số tương quan khác tên là Spearman, một phương pháp phân tích phi tham số. Hệ số này được ước tính bằng cách biến đổi hai biến số x và y thành thứ bậc (rank), và xem độ tương quan giữa hai dãy số bậc. Do đó, hệ số còn có tên tiếng Anh là Spearman’s Rank correlation

-Giả sử trình độ học vấn và mức thu nhập không có phân phối chuẩn, ta có:

 cor.test(ed,ic,  method="spearman") 
## Warning in cor.test.default(ed, ic, method = "spearman"): Cannot compute exact
## p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  ed and ic
## S = 75339, p-value = 2.847e-10
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##      rho 
## 0.573999

Kết luận: ta có p-value = 2.847e-10 < alpha=0.05 nên hai biến trình độ học vấn và thu nhập có quan hệ tương quan tuyến tính với nhau.

2.8.3 Hệ số tương quan Kendall

Ý nghĩa: Hệ số tương quan Kendall (cũng là một phương pháp phân tích phi tham số) được ước tính bằng cách tìm các cặp số (x, y) “song hành” với nhau. Một cặp (x, y) song hành ở đây được định nghĩa là hiệu (độ khác biệt) trên trục hoành có cùng dấu hiệu (dương hay âm) với hiệu trên trục tung. Nếu hai biến số x và y không có liên hệ với nhau, thì số cặp song hành bằng hay tương đương với số cặp không song hành.

cor.test(ed, ic,method="kendall")
## 
##  Kendall's rank correlation tau
## 
## data:  ed and ic
## z = 6.0952, p-value = 1.093e-09
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##      tau 
## 0.409559

Kết luận: ta có p-value = 1.093e-09 < alpha=0.05 nên hai biến trình độ học vấn và thu nhập có quan hệ tương quan tuyến tính với nhau.

2.9 Hồi quy tuyến tính đơn biến

2.9.1 Viết hàm hồi quy tuyến tính mẫu SRF

Hàm lm (viết tắt từ linear model) trong R có thể tính toán các giá trị của α và β trong mô hình hồi quy đơn: α + β.X

lm(ic ~ ed)
## 
## Call:
## lm(formula = ic ~ ed)
## 
## Coefficients:
## (Intercept)           ed  
##     -2853.6        898.8

Kết quả: như vậy mô hình hồi quy đơn có dạng là: (SRF): Y= -2853.6 + 898.8X

2.9.2 Kiểm định các giả thuyết

bangthongke <- lm(ic~ed)
summary(bangthongke)
## 
## Call:
## lm(formula = ic ~ ed)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5493.2 -2433.8   -41.9  1491.5 17713.1 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2853.6     1407.0  -2.028   0.0452 *  
## ed             898.8      127.0   7.075 2.08e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3483 on 100 degrees of freedom
## Multiple R-squared:  0.3336, Adjusted R-squared:  0.3269 
## F-statistic: 50.06 on 1 and 100 DF,  p-value: 2.079e-10

Kiểm định sự phù hợp mô hình: ta có F= 50.06>C nên mô hình trên là phù hợp

Kiểm định biến giá gói thay đổi ảnh hưởng đến biến số gói: ta có t-value=7.075>C nên biến education thay đổi dẫn đến sự thay đổi của biến income

2.9.3 Dự báo mô hình hồi quy đơn

Ta dự đoán khi giá trị của biến education = 50 vào hàm hồi quy tuyến tính mẫu (SRF): Y= -2853.6 + 898.8X

ketqua <- -2853.6 + 898.8*50
ketqua
## [1] 42086.4

=> Vậy kết quả khi giá trị của biến education = 50 thì trung bình giá trị của biến income = 42086.4

3 BÀI TẬP TUẦN 3

Package: AER - Dataset: Prestige (Uy tín của Nghề nghiệp Canada)

Mô tả dữ liệu: Khung dữ liệu Uy tín có 102 hàng và 6 cột. Các quan sát là nghề nghiệp.

  • Giải thích các biến:

  • education: Trình độ học vấn trung bình của những người đương nhiệm trong nghề nghiệp, các năm, vào năm 1971.

  • income: Thu nhập trung bình của những người đương nhiệm, đô la, năm 1971.

  • women: Tỷ lệ người đương nhiệm là phụ nữ.

  • prestige: Điểm uy tín của Pineo-Porter cho nghề nghiệp, từ một cuộc khảo sát xã hội được thực hiện vào giữa những năm 1960.

  • census: Điều tra dân số Canada mã nghề nghiệp

  • type: Loại nghề nghiệp. Một yếu tố với các cấp độ (lưu ý: không theo thứ tự): bc, Blue Collar; prof, Professional, Managerial, and Technical; wc, Cổ trắng.

3.1 Tổng quan dữ liệu

Gọi bộ dữ liệu Prestige trong package AER bằng lệnh library và gán nó cho biến Pre để tạo thành một bộ dữ liệu mới. Sau đó, gán data Prestige vào biến có tên là Pre.

library(AER)
library(tidyverse)
data("Prestige")
Pre <- Prestige

Sau đó đặt tên lần lượt cho 6 biến trong bộ dữ liệu là “e”,“i”,“w”,“p”,“c”,“t” bằng lệnh names

names(Pre) <- c("e","i","w","p","c","t" )

Dùng lệnh summary để tổng quan dữ liệu

summary(Pre)
##        e                i               w                p        
##  Min.   : 6.380   Min.   :  611   Min.   : 0.000   Min.   :14.80  
##  1st Qu.: 8.445   1st Qu.: 4106   1st Qu.: 3.592   1st Qu.:35.23  
##  Median :10.540   Median : 5930   Median :13.600   Median :43.60  
##  Mean   :10.738   Mean   : 6798   Mean   :28.979   Mean   :46.83  
##  3rd Qu.:12.648   3rd Qu.: 8187   3rd Qu.:52.203   3rd Qu.:59.27  
##  Max.   :15.970   Max.   :25879   Max.   :97.510   Max.   :87.20  
##        c           t     
##  Min.   :1113   bc  :44  
##  1st Qu.:3120   prof:31  
##  Median :5135   wc  :23  
##  Mean   :5402   NA's: 4  
##  3rd Qu.:8312            
##  Max.   :9517

Để xem qua 6 dòng đầu và 6 dòng cuối của dữ liệu bao gồm các thông tin về trình độ học vấn trung bình,thu nhập trung bình,tỷ lệ người đương nhiệm là phụ nữ, điểm uy tín của Pineo-Porter cho nghề nghiệp, điều tra dân số Canada mã nghề nghiệp, loại nghề nghiệp ta sử dụng lệnh head và tail

head(Pre)
##                         e     i     w    p    c    t
## gov.administrators  13.11 12351 11.16 68.8 1113 prof
## general.managers    12.26 25879  4.02 69.1 1130 prof
## accountants         12.77  9271 15.70 63.4 1171 prof
## purchasing.officers 11.42  8865  9.11 56.8 1175 prof
## chemists            14.62  8403 11.68 73.5 2111 prof
## physicists          15.64 11030  5.13 77.6 2113 prof
tail(Pre)
##                     e    i     w    p    c  t
## train.engineers  8.49 8845  0.00 48.9 9131 bc
## bus.drivers      7.58 5562  9.47 35.9 9171 bc
## taxi.drivers     7.93 4224  3.59 25.1 9173 bc
## longshoremen     8.37 4753  0.00 26.1 9313 bc
## typesetters     10.00 6462 13.58 42.2 9511 bc
## bookbinders      8.55 3617 70.87 35.2 9517 bc

Trước khi thực hiện phân tích bộ dữ liệu thì cũng cần xem qua cấu trúc của nó. Ta dùng lệnh str

str(Pre)
## 'data.frame':    102 obs. of  6 variables:
##  $ e: num  13.1 12.3 12.8 11.4 14.6 ...
##  $ i: int  12351 25879 9271 8865 8403 11030 8258 14163 11377 11023 ...
##  $ w: num  11.16 4.02 15.7 9.11 11.68 ...
##  $ p: num  68.8 69.1 63.4 56.8 73.5 77.6 72.6 78.1 73.1 68.8 ...
##  $ c: int  1113 1130 1171 1175 2111 2113 2133 2141 2143 2153 ...
##  $ t: Factor w/ 3 levels "bc","prof","wc": 2 2 2 2 2 2 2 2 2 2 ...

3.2 Lệnh Pivot_longer

Lệnh pivot_longer giúp chuyển đổi bảng dữ liệu rộng thành dài.

  • Chuyển đổi dữ liệu dạng rộng income (thu nhập trung bình của những người đương nhiệm) sang dạng dài
ttd <- Pre %>% pivot_longer(cols = c('i','w'),names_to = "h1",values_to = "value")
  • Biến đổi dữ liệu từ rộng sang dài, giúp phân tích dữ liệu và thực hiện tính toán dễ dàng hơn. Thực hiện lệnh pivot_longer cho các biến liên quan đến thu nhập trung bình của những người đương nhiệm gồm “i”, tỷ lệ người đương nhiệm là phụ nữ “w” để chuyển trình bày nhữug biến này từ hàng sang cột. Lệnh name_to =“h1” được sử dụng để chỉ định tên của cột mới được tạo ra sau khi chuyển đổi. Lệnh values_to = “value” để chỉ định tên của cột chứa giá trị được tạo ra sau khi chuyển đổi.
table(ttd$h1)
## 
##   i   w 
## 102 102

Kết quả thu được là tập dữ liệu ttd với 204 quan sát và 6 biến, dài gấp đôi so với tập dữ liệu gốc ban đầu.

tts <- Pre %>% pivot_longer(cols = starts_with('e'),names_to = "e", values_to = 'al')
tts
## # A tibble: 102 × 7
##        i     w     p     c t     e        al
##    <int> <dbl> <dbl> <int> <fct> <chr> <dbl>
##  1 12351 11.2   68.8  1113 prof  e      13.1
##  2 25879  4.02  69.1  1130 prof  e      12.3
##  3  9271 15.7   63.4  1171 prof  e      12.8
##  4  8865  9.11  56.8  1175 prof  e      11.4
##  5  8403 11.7   73.5  2111 prof  e      14.6
##  6 11030  5.13  77.6  2113 prof  e      15.6
##  7  8258 25.6   72.6  2133 prof  e      15.1
##  8 14163  2.69  78.1  2141 prof  e      15.4
##  9 11377  1.03  73.1  2143 prof  e      14.5
## 10 11023  0.94  68.8  2153 prof  e      14.6
## # ℹ 92 more rows

Trong câu lệnh này, chúng ta tiến hành trình bày lại cột dữ liệu education (trình độ học vấn trung bình của những người đương nhiệm trong nghề nghiệp, các năm, vào năm 1971) thành một cột dữ liệu và đặt tên cho cột dữ liệu mới này là e, các giá trị của e đã được đưa vào một cột mới và cột này được đặt tên là al.

3.3 Lệnh Pivot_wider

  • Chuyển dữ liệu từ dạng dài sang dạng rộng ta sử dụng lệnh pivot_wider, bộ dữ liệu được chọn là Pre, sau đây là Bảng tổng hợp dạng rộng thu nhập trung bình của Canada theo trình độ học vấn:
ei <- Pre %>% pivot_wider(names_from = i, values_from = e)
ei
## # A tibble: 102 × 104
##        w     p     c t     `12351` `25879` `9271` `8865` `8403` `11030` `8258`
##    <dbl> <dbl> <int> <fct>   <dbl>   <dbl>  <dbl>  <dbl>  <dbl>   <dbl>  <dbl>
##  1 11.2   68.8  1113 prof     13.1    NA     NA     NA     NA      NA     NA  
##  2  4.02  69.1  1130 prof     NA      12.3   NA     NA     NA      NA     NA  
##  3 15.7   63.4  1171 prof     NA      NA     12.8   NA     NA      NA     NA  
##  4  9.11  56.8  1175 prof     NA      NA     NA     11.4   NA      NA     NA  
##  5 11.7   73.5  2111 prof     NA      NA     NA     NA     14.6    NA     NA  
##  6  5.13  77.6  2113 prof     NA      NA     NA     NA     NA      15.6   NA  
##  7 25.6   72.6  2133 prof     NA      NA     NA     NA     NA      NA     15.1
##  8  2.69  78.1  2141 prof     NA      NA     NA     NA     NA      NA     NA  
##  9  1.03  73.1  2143 prof     NA      NA     NA     NA     NA      NA     NA  
## 10  0.94  68.8  2153 prof     NA      NA     NA     NA     NA      NA     NA  
## # ℹ 92 more rows
## # ℹ 93 more variables: `14163` <dbl>, `11377` <dbl>, `11023` <dbl>,
## #   `5902` <dbl>, `7059` <dbl>, `8425` <dbl>, `8049` <dbl>, `7405` <dbl>,
## #   `6336` <dbl>, `19263` <dbl>, `6112` <dbl>, `9593` <dbl>, `4686` <dbl>,
## #   `12480` <dbl>, `5648` <dbl>, `8034` <dbl>, `25308` <dbl>, `14558` <dbl>,
## #   `17498` <dbl>, `4614` <dbl>, `3485` <dbl>, `5092` <dbl>, `10432` <dbl>,
## #   `5180` <dbl>, `6197` <dbl>, `7562` <dbl>, `8206` <dbl>, `4036` <dbl>, …
  • Từ dữ liệu ban đầu, tính tổng thu nhập trung bình theo trình độ học vấn và điểm uy tín của Pineo-Porter cho nghề nghiệp. Sau đó, chuyển dữ liệu i từ dạng rộng sang dài theo điểm uy tính Pineo-Porter cho nghề nghiệp như bảng tổng hợp dưới đây
ip <- Pre %>% group_by(e,p) %>% summarise(sgh=sum(i),.groups = 'drop') %>% pivot_wider(names_from = p, values_from = sgh)
ip
## # A tibble: 96 × 93
##        e `28.2` `36.2` `27.3` `33.3` `28.8` `44.1` `38.9` `17.3` `20.8` `23.2`
##    <dbl>  <int>  <int>  <int>  <int>  <int>  <int>  <int>  <int>  <int>  <int>
##  1  6.38   2847     NA     NA     NA     NA     NA     NA     NA     NA     NA
##  2  6.6      NA   5959     NA     NA     NA     NA     NA     NA     NA     NA
##  3  6.67     NA     NA   4696     NA     NA     NA     NA     NA     NA     NA
##  4  6.69     NA     NA     NA   4443     NA     NA     NA     NA     NA     NA
##  5  6.74     NA     NA     NA     NA   3485     NA     NA     NA     NA     NA
##  6  6.84     NA     NA     NA     NA     NA   3643     NA     NA     NA     NA
##  7  6.92     NA     NA     NA     NA     NA     NA   5299     NA     NA     NA
##  8  7.11     NA     NA     NA     NA     NA     NA     NA   3472     NA     NA
##  9  7.33     NA     NA     NA     NA     NA     NA     NA     NA   3000     NA
## 10  7.42     NA     NA     NA     NA     NA     NA     NA     NA     NA   1890
## # ℹ 86 more rows
## # ℹ 82 more variables: `26.5` <int>, `20.1` <int>, `35.9` <int>, `25.2` <int>,
## #   `34.8` <int>, `29.7` <int>, `29.9` <int>, `41.8` <int>, `25.1` <int>,
## #   `38.1` <int>, `51.1` <int>, `42.9` <int>, `26.1` <int>, `48.9` <int>,
## #   `20.2` <int>, `35.2` <int>, `21.5` <int>, `50.8` <int>, `43.7` <int>,
## #   `44.2` <int>, `35.3` <int>, `40.9` <int>, `30.9` <int>, `36.1` <int>,
## #   `34.9` <int>, `25.9` <int>, `43.5` <int>, `14.8` <int>, `41.5` <int>, …

3.4 Lệnh Mutate

  • Từ cột trình độ ban đầu có thể tạo thêm hai cột mới là level, edu bằng lệnh mutate. Trong đó, cột level sẽ lấy 4 giá trị đầu tiền trong cột education và cột edu lấy 4 giá trị cuối.
e4 <- Pre %>% mutate (level = substr(e,1,4),edu= substr(e,5,8))
print(e4)
##                               e     i     w    p    c    t level edu
## gov.administrators        13.11 12351 11.16 68.8 1113 prof  13.1   1
## general.managers          12.26 25879  4.02 69.1 1130 prof  12.2   6
## accountants               12.77  9271 15.70 63.4 1171 prof  12.7   7
## purchasing.officers       11.42  8865  9.11 56.8 1175 prof  11.4   2
## chemists                  14.62  8403 11.68 73.5 2111 prof  14.6   2
## physicists                15.64 11030  5.13 77.6 2113 prof  15.6   4
## biologists                15.09  8258 25.65 72.6 2133 prof  15.0   9
## architects                15.44 14163  2.69 78.1 2141 prof  15.4   4
## civil.engineers           14.52 11377  1.03 73.1 2143 prof  14.5   2
## mining.engineers          14.64 11023  0.94 68.8 2153 prof  14.6   4
## surveyors                 12.39  5902  1.91 62.0 2161 prof  12.3   9
## draughtsmen               12.30  7059  7.83 60.0 2163 prof  12.3    
## computer.programers       13.83  8425 15.33 53.8 2183 prof  13.8   3
## economists                14.44  8049 57.31 62.2 2311 prof  14.4   4
## psychologists             14.36  7405 48.28 74.9 2315 prof  14.3   6
## social.workers            14.21  6336 54.77 55.1 2331 prof  14.2   1
## lawyers                   15.77 19263  5.13 82.3 2343 prof  15.7   7
## librarians                14.15  6112 77.10 58.1 2351 prof  14.1   5
## vocational.counsellors    15.22  9593 34.89 58.3 2391 prof  15.2   2
## ministers                 14.50  4686  4.14 72.8 2511 prof  14.5    
## university.teachers       15.97 12480 19.59 84.6 2711 prof  15.9   7
## primary.school.teachers   13.62  5648 83.78 59.6 2731 prof  13.6   2
## secondary.school.teachers 15.08  8034 46.80 66.1 2733 prof  15.0   8
## physicians                15.96 25308 10.56 87.2 3111 prof  15.9   6
## veterinarians             15.94 14558  4.32 66.7 3115 prof  15.9   4
## osteopaths.chiropractors  14.71 17498  6.91 68.4 3117 prof  14.7   1
## nurses                    12.46  4614 96.12 64.7 3131 prof  12.4   6
## nursing.aides              9.45  3485 76.14 34.9 3135   bc  9.45    
## physio.therapsts          13.62  5092 82.66 72.1 3137 prof  13.6   2
## pharmacists               15.21 10432 24.71 69.3 3151 prof  15.2   1
## medical.technicians       12.79  5180 76.04 67.5 3156   wc  12.7   9
## commercial.artists        11.09  6197 21.03 57.2 3314 prof  11.0   9
## radio.tv.announcers       12.71  7562 11.15 57.6 3337   wc  12.7   1
## athletes                  11.44  8206  8.13 54.1 3373 <NA>  11.4   4
## secretaries               11.59  4036 97.51 46.0 4111   wc  11.5   9
## typists                   11.49  3148 95.97 41.9 4113   wc  11.4   9
## bookkeepers               11.32  4348 68.24 49.4 4131   wc  11.3   2
## tellers.cashiers          10.64  2448 91.76 42.3 4133   wc  10.6   4
## computer.operators        11.36  4330 75.92 47.7 4143   wc  11.3   6
## shipping.clerks            9.17  4761 11.37 30.9 4153   wc  9.17    
## file.clerks               12.09  3016 83.19 32.7 4161   wc  12.0   9
## receptionsts              11.04  2901 92.86 38.7 4171   wc  11.0   4
## mail.carriers              9.22  5511  7.62 36.1 4172   wc  9.22    
## postal.clerks             10.07  3739 52.27 37.2 4173   wc  10.0   7
## telephone.operators       10.51  3161 96.14 38.1 4175   wc  10.5   1
## collectors                11.20  4741 47.06 29.4 4191   wc  11.2    
## claim.adjustors           11.13  5052 56.10 51.1 4192   wc  11.1   3
## travel.clerks             11.43  6259 39.17 35.7 4193   wc  11.4   3
## office.clerks             11.00  4075 63.23 35.6 4197   wc    11    
## sales.supervisors          9.84  7482 17.04 41.5 5130   wc  9.84    
## commercial.travellers     11.13  8780  3.16 40.2 5133   wc  11.1   3
## sales.clerks              10.05  2594 67.82 26.5 5137   wc  10.0   5
## newsboys                   9.62   918  7.00 14.8 5143 <NA>  9.62    
## service.station.attendant  9.93  2370  3.69 23.3 5145   bc  9.93    
## insurance.agents          11.60  8131 13.09 47.3 5171   wc  11.6    
## real.estate.salesmen      11.09  6992 24.44 47.1 5172   wc  11.0   9
## buyers                    11.03  7956 23.88 51.1 5191   wc  11.0   3
## firefighters               9.47  8895  0.00 43.5 6111   bc  9.47    
## policemen                 10.93  8891  1.65 51.6 6112   bc  10.9   3
## cooks                      7.74  3116 52.00 29.7 6121   bc  7.74    
## bartenders                 8.50  3930 15.51 20.2 6123   bc   8.5    
## funeral.directors         10.57  7869  6.01 54.9 6141   bc  10.5   7
## babysitters                9.46   611 96.53 25.9 6147 <NA>  9.46    
## launderers                 7.33  3000 69.31 20.8 6162   bc  7.33    
## janitors                   7.11  3472 33.57 17.3 6191   bc  7.11    
## elevator.operators         7.58  3582 30.08 20.1 6193   bc  7.58    
## farmers                    6.84  3643  3.60 44.1 7112 <NA>  6.84    
## farm.workers               8.60  1656 27.75 21.5 7182   bc   8.6    
## rotary.well.drillers       8.88  6860  0.00 35.3 7711   bc  8.88    
## bakers                     7.54  4199 33.30 38.9 8213   bc  7.54    
## slaughterers.1             7.64  5134 17.26 25.2 8215   bc  7.64    
## slaughterers.2             7.64  5134 17.26 34.8 8215   bc  7.64    
## canners                    7.42  1890 72.24 23.2 8221   bc  7.42    
## textile.weavers            6.69  4443 31.36 33.3 8267   bc  6.69    
## textile.labourers          6.74  3485 39.48 28.8 8278   bc  6.74    
## tool.die.makers           10.09  8043  1.50 42.5 8311   bc  10.0   9
## machinists                 8.81  6686  4.28 44.2 8313   bc  8.81    
## sheet.metal.workers        8.40  6565  2.30 35.9 8333   bc   8.4    
## welders                    7.92  6477  5.17 41.8 8335   bc  7.92    
## auto.workers               8.43  5811 13.62 35.9 8513   bc  8.43    
## aircraft.workers           8.78  6573  5.78 43.7 8515   bc  8.78    
## electronic.workers         8.76  3942 74.54 50.8 8534   bc  8.76    
## radio.tv.repairmen        10.29  5449  2.92 37.2 8537   bc  10.2   9
## sewing.mach.operators      6.38  2847 90.67 28.2 8563   bc  6.38    
## auto.repairmen             8.10  5795  0.81 38.1 8581   bc   8.1    
## aircraft.repairmen        10.10  7716  0.78 50.3 8582   bc  10.1    
## railway.sectionmen         6.67  4696  0.00 27.3 8715   bc  6.67    
## electrical.linemen         9.05  8316  1.34 40.9 8731   bc  9.05    
## electricians               9.93  7147  0.99 50.2 8733   bc  9.93    
## construction.foremen       8.24  8880  0.65 51.1 8780   bc  8.24    
## carpenters                 6.92  5299  0.56 38.9 8781   bc  6.92    
## masons                     6.60  5959  0.52 36.2 8782   bc   6.6    
## house.painters             7.81  4549  2.46 29.9 8785   bc  7.81    
## plumbers                   8.33  6928  0.61 42.9 8791   bc  8.33    
## construction.labourers     7.52  3910  1.09 26.5 8798   bc  7.52    
## pilots                    12.27 14032  0.58 66.1 9111 prof  12.2   7
## train.engineers            8.49  8845  0.00 48.9 9131   bc  8.49    
## bus.drivers                7.58  5562  9.47 35.9 9171   bc  7.58    
## taxi.drivers               7.93  4224  3.59 25.1 9173   bc  7.93    
## longshoremen               8.37  4753  0.00 26.1 9313   bc  8.37    
## typesetters               10.00  6462 13.58 42.2 9511   bc    10    
## bookbinders                8.55  3617 70.87 35.2 9517   bc  8.55

3.5 Ma trận tương quan

m <- cor (Pre[,c("e","i","w")])
print(m)
##            e          i           w
## e 1.00000000  0.5775802  0.06185286
## i 0.57758023  1.0000000 -0.44105927
## w 0.06185286 -0.4410593  1.00000000

4 BÀI TẬP TUẦN 2

4.1 Đặt tên cho các biến

  • Ta sẽ gọi dữ liệu longley

  • Sau đó sẽ gán dataset longley vào lony

-Sử dụng lệnh names để đặt tên cho 7 biến trong bộ dữ liệu lony

data("longley")
l <- longley
names(l) <- c('Gd','G','U','A','P','Y','E')

4.2 Tính toán các thống kê biến

4.2.1 Dùng hàm summary

Dùng hàm summary để tóm tắt thống kê cho toàn bộ dữ liệu. Qua đó, ta có thể đọc được các giá trị về giá trị nhỏ nhất, giá trị lớn nhất, tứ phân vị, trung bình, trung vị cho từng biến có trong bộ data. Nếu muốn quan sát riêng, thì ta dùng $ để gọi biến có trong data đó.

summary(l$G)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   234.3   317.9   381.4   387.7   454.1   554.9
  • Khi thực hiện dòng lệnh summary(l$G) ta thu được giá trị nhỏ nhất của tổng sản lưởng quốc gia là 234.3, giá trị lớn nhất là 554.9, mức trung bình là 387.7, có 25% tống sản lượng quốc nhỏ hơn 317.9, có 50 % tổng sản lượng quốc gia dưới 381.4 và có 75% tổng sản lượng quốc gia nhỏ hơn 454.1 (tính theo đơn vị nghìn đô).
summary(l$E)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   60.17   62.71   65.50   65.32   68.29   70.55
  • Tương tự, dòng lệnh summary(l$E) cho ta biết được số người trung bình có việc làm nhỏ nhất là 60.17, số người trung bình có việc làm lớn nhất là 70.55, mức trung bình là 65.32, có 25% số người trung bình có việc làm dưới 62,71, có 50% số người trung bình có việc làm dưới 65.5 và có 75% số người trung bình có việc làm dưới 68.29
summary(l$U)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   187.0   234.8   314.4   319.3   384.2   480.6
  • Số người thất nghiệp trung bình nhỏ nhất là 187, lớn nhất là 480.6, có 25% số người thất nghiệp trung bình nhỏ hơn 234.8, có 50% số người thất nghiệp trung bình nhỏ hơn 314.4, có 75% số người thất nghiệp trung bình nhỏ hơn 319.3. Số người thất nghiệp trung bình trong khảo sát là 319.3.

4.2.2 Các hàm mean để tính trung bình, var để tính phương sai, quantile

mean(l$G)
## [1] 387.6984
mean(l$E)
## [1] 65.317

Tổng sản lượng quốc gia trung bình là 387.6984. Tổng số người có việc làm trung bình là 65.317

var (l$G)
## [1] 9879.354
var (l$U)
## [1] 8732.234

9879.354 đại diện cho mức độ phân tán của các giá trị về sản lượng quốc gia quanh giá trị trung bình; 8732.234 đại diện cho mức độ phân tán của các giá trị số người thất nghiệp quanh giá trị trung bình.

sd(l$Gd)
## [1] 10.79155

10.79155: Độ lệch chuẩn đo lường mức độ phân tán của các giá trị của biến Gd.

quantile(l$G, 0.65)
##      65% 
## 436.8718
quantile(l$A, 0.46)
##    46% 
## 263.05

Có 65% quốc gia có tổng sản lượng quốc gia dưới mức 436.8718. Có 46% quốc gia có số người trong lực lượng vũ trang dưới 263.05

4.2.3 Dùng hàm sum

Dùng sum để tính toán tổng chỉ số giảm phát giá ngầm định GNP, sản phẩm quốc gia, số người thất nghiệp, số người trong lực lượng vũ trang, dân số ‘phi thể chế hóa’≥ 14 tuổi, số người có việc làm.

sum(l$Gd)
## [1] 1626.9
sum(l$G)
## [1] 6203.175
sum(l$E)
## [1] 1045.072
sum(l$A)
## [1] 4170.7
sum(l$U)
## [1] 5109.3
sum(l$P)
## [1] 1878.784

Qua đó, ta thấy được biến G (tổng sản lượng quốc gia) là cao nhất, thấp nhất là số người có việc làm

4.3 Phân tích sự khác biệt giữa số người có việc làm và số người thất nghiệp theo từng năm

4.4 Hàm aggregate - Toán tử %>%

4.4.1 Hàm aggregate

Hàm aggregate giúp tổng hợp dữ liệu theo nhóm. Các câu lệnh phía trên sẽ trả về kết quả tổng hợp mức chỉ số giảm phát giá ngầm định GNP, sản phẩm quốc gia, số người thất nghiệp, số người trong lực lượng vũ trang, dân số ‘phi thể chế hóa’≥ 14 tuổi, số người có việc làm theo các năm khác nhau

aggregate(l$Y,list(l$Gd),FUN ='mean')
##    Group.1    x
## 1     83.0 1947
## 2     88.2 1949
## 3     88.5 1948
## 4     89.5 1950
## 5     96.2 1951
## 6     98.1 1952
## 7     99.0 1953
## 8    100.0 1954
## 9    101.2 1955
## 10   104.6 1956
## 11   108.4 1957
## 12   110.8 1958
## 13   112.6 1959
## 14   114.2 1960
## 15   115.7 1961
## 16   116.9 1962

Kết quả trên hiển thị cho mức chỉ số giảm phát giá ngầm định GNP theo từng năm. Năm có chỉ số thấp nhất là năm 1947 với 83, năm có chỉ số cao nhất là năm 1962 với 116.9

aggregate(l$Y,list(l$G),FUN ='mean')
##    Group.1    x
## 1  234.289 1947
## 2  258.054 1949
## 3  259.426 1948
## 4  284.599 1950
## 5  328.975 1951
## 6  346.999 1952
## 7  363.112 1954
## 8  365.385 1953
## 9  397.469 1955
## 10 419.180 1956
## 11 442.769 1957
## 12 444.546 1958
## 13 482.704 1959
## 14 502.601 1960
## 15 518.173 1961
## 16 554.894 1962

Kết quả trên hiển thị cho mức tổng sản lượng quốc gia theo từng năm. Năm có tổng sản lượng thấp nhất là năm 1947 với 234.289, năm có tổng sản lượng cao nhất là năm 1962 với 554.894

aggregate(l$Y,list(l$E),FUN ='mean')
##    Group.1    x
## 1   60.171 1949
## 2   60.323 1947
## 3   61.122 1948
## 4   61.187 1950
## 5   63.221 1951
## 6   63.639 1952
## 7   63.761 1954
## 8   64.989 1953
## 9   66.019 1955
## 10  66.513 1958
## 11  67.857 1956
## 12  68.169 1957
## 13  68.655 1959
## 14  69.331 1961
## 15  69.564 1960
## 16  70.551 1962
aggregate(l$Y,list(l$U),FUN ='mean')
##    Group.1    x
## 1    187.0 1953
## 2    193.2 1952
## 3    209.9 1951
## 4    232.5 1948
## 5    235.6 1947
## 6    282.2 1956
## 7    290.4 1955
## 8    293.6 1957
## 9    335.1 1950
## 10   357.8 1954
## 11   368.2 1949
## 12   381.3 1959
## 13   393.1 1960
## 14   400.7 1962
## 15   468.1 1958
## 16   480.6 1961
aggregate(l$Y,list(l$A),FUN ='mean')
##    Group.1    x
## 1    145.6 1948
## 2    159.0 1947
## 3    161.6 1949
## 4    165.0 1950
## 5    251.4 1960
## 6    255.2 1959
## 7    257.2 1961
## 8    263.7 1958
## 9    279.8 1957
## 10   282.7 1962
## 11   285.7 1956
## 12   304.8 1955
## 13   309.9 1951
## 14   335.0 1954
## 15   354.7 1953
## 16   359.4 1952
aggregate(l$Y,list(l$P),FUN ='mean')
##    Group.1    x
## 1  107.608 1947
## 2  108.632 1948
## 3  109.773 1949
## 4  110.929 1950
## 5  112.075 1951
## 6  113.270 1952
## 7  115.094 1953
## 8  116.219 1954
## 9  117.388 1955
## 10 118.734 1956
## 11 120.445 1957
## 12 121.950 1958
## 13 123.366 1959
## 14 125.368 1960
## 15 127.852 1961
## 16 130.081 1962

4.5 Vẽ đồ thị

  • Chúng ta tạo biểu đồ histogram của biến los để xem phân bố dữ liệu, ta dùng lênh hist
hist(l$G)

hist(l$E,breaks =3.5)

hist(l$Gd,counts =2)
## Warning in plot.window(xlim, ylim, "", ...): "counts" is not a graphical
## parameter
## Warning in title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...):
## "counts" is not a graphical parameter
## Warning in axis(1, ...): "counts" is not a graphical parameter
## Warning in axis(2, at = yt, ...): "counts" is not a graphical parameter

5 BÀI TẬP TUẦN 1

Giải thích: Data(longley): Longley’s Economic Regression Data

Description: The Longley dataset contains various US macroeconomic variables that are known to be highly collinear. It has been used to appraise the accuracy of least squares routines.

5.1 Giải thích các biến

  1. GNP.deflator: Chỉ số giảm phát giá ngầm định GNP (1954 = 100).

  2. GNP: Tổng sản phẩm quốc gia.

  3. Unemployed: số người thất nghiệp.

  4. Armed.Forces: số người trong lực lượng vũ trang.

  5. Population: dân số ‘phi thể chế hóa’≥ 14 tuổi

  6. Year: số năm (thời gian)

  7. Employed: số người có việc làm.

5.1.1 Ta chạy dữ liệu cho dataset longley

data("longley")

5.1.2 Gán dữ liệu longley vào l

l <- longley

Sau đó ta thể hiện cấu trúc của dataset (longley) gồm mấy biến và có những biến nào:

5.1.3 Cấu trúc của dataset(longley)

str(longley)
## 'data.frame':    16 obs. of  7 variables:
##  $ GNP.deflator: num  83 88.5 88.2 89.5 96.2 ...
##  $ GNP         : num  234 259 258 285 329 ...
##  $ Unemployed  : num  236 232 368 335 210 ...
##  $ Armed.Forces: num  159 146 162 165 310 ...
##  $ Population  : num  108 109 110 111 112 ...
##  $ Year        : int  1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 ...
##  $ Employed    : num  60.3 61.1 60.2 61.2 63.2 ...

5.1.4 Ta đặt tên cho các biến trong dataset vừa khai báo:

names(l) <- c('Gd','G','U','A','P','Y','E')

5.1.5 Sau đó, lấy 6 dòng đầu tiên của data sets

head(l)
##        Gd       G     U     A       P    Y      E
## 1947 83.0 234.289 235.6 159.0 107.608 1947 60.323
## 1948 88.5 259.426 232.5 145.6 108.632 1948 61.122
## 1949 88.2 258.054 368.2 161.6 109.773 1949 60.171
## 1950 89.5 284.599 335.1 165.0 110.929 1950 61.187
## 1951 96.2 328.975 209.9 309.9 112.075 1951 63.221
## 1952 98.1 346.999 193.2 359.4 113.270 1952 63.639

5.1.6 Gán biến Y trong data(l) vào YEAR

Year <- l$Y
Year
##  [1] 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961
## [16] 1962

5.1.7 Ta lấy dữ liệu của biến year từ năm 1950 đến năm 1960

Year50_60 <- Year[Year>1950&Year<1960]
Year50_60
## [1] 1951 1952 1953 1954 1955 1956 1957 1958 1959

5.1.8 Gán biến E trong data(l) vào EMPLOYED

EMPLOYED <- l$E
EMPLOYED
##  [1] 60.323 61.122 60.171 61.187 63.221 63.639 64.989 63.761 66.019 67.857
## [11] 68.169 66.513 68.655 69.564 69.331 70.551

5.1.9 Ta lấy dữ liệu của biến Year có số năm lớn hơn 1955 và biến Employed mà số người có việc làm trên 62 người

YEAR55EMPLOYED62 <- l[l$Y>1955|l$E>62,]
YEAR55EMPLOYED62
##         Gd       G     U     A       P    Y      E
## 1951  96.2 328.975 209.9 309.9 112.075 1951 63.221
## 1952  98.1 346.999 193.2 359.4 113.270 1952 63.639
## 1953  99.0 365.385 187.0 354.7 115.094 1953 64.989
## 1954 100.0 363.112 357.8 335.0 116.219 1954 63.761
## 1955 101.2 397.469 290.4 304.8 117.388 1955 66.019
## 1956 104.6 419.180 282.2 285.7 118.734 1956 67.857
## 1957 108.4 442.769 293.6 279.8 120.445 1957 68.169
## 1958 110.8 444.546 468.1 263.7 121.950 1958 66.513
## 1959 112.6 482.704 381.3 255.2 123.366 1959 68.655
## 1960 114.2 502.601 393.1 251.4 125.368 1960 69.564
## 1961 115.7 518.173 480.6 257.2 127.852 1961 69.331
## 1962 116.9 554.894 400.7 282.7 130.081 1962 70.551

5.1.10 Chia dữ liệu YEAR thành 4 tố và lập bảng tần số

cut(Year,4)
##  [1] (1947,1951] (1947,1951] (1947,1951] (1947,1951] (1951,1954] (1951,1954]
##  [7] (1951,1954] (1951,1954] (1954,1958] (1954,1958] (1954,1958] (1954,1958]
## [13] (1958,1962] (1958,1962] (1958,1962] (1958,1962]
## Levels: (1947,1951] (1951,1954] (1954,1958] (1958,1962]
table(cut(Year,4))
## 
## (1947,1951] (1951,1954] (1954,1958] (1958,1962] 
##           4           4           4           4

Giải thích: trong bảng tần số trên của biến YEAR thì các nhóm (1947,1951],(1951,1954],(1954,1958],(1958,1962] đều có 4 giá trị chiếm tỷ trọng 25%

5.1.11 Lập bảng tần số của YEAR được chia thành 4 tố với lần lượt các biến GNP.deflator, GNP, Unemployed và Employed

table(cut(Year,4),l$Gd)
##              
##               83 88.2 88.5 89.5 96.2 98.1 99 100 101.2 104.6 108.4 110.8 112.6
##   (1947,1951]  1    1    1    1    0    0  0   0     0     0     0     0     0
##   (1951,1954]  0    0    0    0    1    1  1   1     0     0     0     0     0
##   (1954,1958]  0    0    0    0    0    0  0   0     1     1     1     1     0
##   (1958,1962]  0    0    0    0    0    0  0   0     0     0     0     0     1
##              
##               114.2 115.7 116.9
##   (1947,1951]     0     0     0
##   (1951,1954]     0     0     0
##   (1954,1958]     0     0     0
##   (1958,1962]     1     1     1

Giải thích: bảng tần số của biến Year theo biến GNP.deflator thì nhóm năm từ (1947,1951] có chỉ số giảm phát giá ngầm định GNP từ 83 đến 89.5, nhóm năm từ (1951,1954] có chỉ số giảm phát giá ngầm định GNP từ 96.2 đến 100, nhóm năm từ (1954,1958] có chỉ số giảm phát giá ngầm định GNP từ 101.2 đến 110.8, nhóm năm từ (1958,1962] có chỉ số giảm phát giá ngầm định GNP từ 112.6 đến 116.9

table(cut(Year,4),l$G)
##              
##               234.289 258.054 259.426 284.599 328.975 346.999 363.112 365.385
##   (1947,1951]       1       1       1       1       0       0       0       0
##   (1951,1954]       0       0       0       0       1       1       1       1
##   (1954,1958]       0       0       0       0       0       0       0       0
##   (1958,1962]       0       0       0       0       0       0       0       0
##              
##               397.469 419.18 442.769 444.546 482.704 502.601 518.173 554.894
##   (1947,1951]       0      0       0       0       0       0       0       0
##   (1951,1954]       0      0       0       0       0       0       0       0
##   (1954,1958]       1      1       1       1       0       0       0       0
##   (1958,1962]       0      0       0       0       1       1       1       1

Giải thích: bảng tần số của biến Year theo biến GNP thì nhóm năm từ (1947,1951] có tổng sản phẩm quốc gia từ 234.239 đến 584.599, nhóm năm từ (1951,1954] có tổng sản phẩm quốc gia từ 328.975 đến 365.385, nhóm năm từ (1954,1958] có tổng sản phẩm quốc gia từ 397.469 đến 444.546, nhóm năm từ (1958,1962] có tổng sản phẩm quốc gia từ 482.704 đến 554.894

table(cut(Year,4),l$U)
##              
##               187 193.2 209.9 232.5 235.6 282.2 290.4 293.6 335.1 357.8 368.2
##   (1947,1951]   0     0     0     1     1     0     0     0     1     0     1
##   (1951,1954]   1     1     1     0     0     0     0     0     0     1     0
##   (1954,1958]   0     0     0     0     0     1     1     1     0     0     0
##   (1958,1962]   0     0     0     0     0     0     0     0     0     0     0
##              
##               381.3 393.1 400.7 468.1 480.6
##   (1947,1951]     0     0     0     0     0
##   (1951,1954]     0     0     0     0     0
##   (1954,1958]     0     0     0     1     0
##   (1958,1962]     1     1     1     0     1

Giải thích: bảng tần số của biến Year theo biến Unemployed thì nhóm năm từ (1947,1951] có số người thất nghiệp là 232.5 , 235.6 , 335.1 , 368.2 ; nhóm năm từ (1951,1954] có số người thất nghiệp từ 187 đến 209.9 và 357.8, nhóm năm từ (1954,1958] có số người thất nghiệp từ 282.2 đến 293.6 và 468.1, nhóm năm từ (1958,1962] có số người thất nghiệp từ 381.3 đến 4007.7 và 480.6

table(cut(Year,4),l$E)
##              
##               60.171 60.323 61.122 61.187 63.221 63.639 63.761 64.989 66.019
##   (1947,1951]      1      1      1      1      0      0      0      0      0
##   (1951,1954]      0      0      0      0      1      1      1      1      0
##   (1954,1958]      0      0      0      0      0      0      0      0      1
##   (1958,1962]      0      0      0      0      0      0      0      0      0
##              
##               66.513 67.857 68.169 68.655 69.331 69.564 70.551
##   (1947,1951]      0      0      0      0      0      0      0
##   (1951,1954]      0      0      0      0      0      0      0
##   (1954,1958]      1      1      1      0      0      0      0
##   (1958,1962]      0      0      0      1      1      1      1

Giải thích: bảng tần số của biến Year theo biến Employed thì nhóm năm từ (1947,1951] có số người có việc làm là 60.171 đến 61.187 ; nhóm năm từ (1951,1954] có số người có việc làm từ 187 đến 63.221 và 64.989, nhóm năm từ (1954,1958] có số người có việc làm từ 66.019 đến 68.169, nhóm năm từ (1958,1962] có số người có việc làm từ 68.655 đến 70.551

5.1.12 Ta chia dữ liệu của biến EMPLOYED và biến ARM thành 4 tổ và lập các bảng tần số phụ thuộc của biến EMPLOYED và ARM

5.1.12.1 Chia dữ liệu của biến EMPLOYED thành 4 tổ và lập bảng

cut(EMPLOYED,4)
##  [1] (60.2,62.8] (60.2,62.8] (60.2,62.8] (60.2,62.8] (62.8,65.4] (62.8,65.4]
##  [7] (62.8,65.4] (62.8,65.4] (65.4,68]   (65.4,68]   (68,70.6]   (65.4,68]  
## [13] (68,70.6]   (68,70.6]   (68,70.6]   (68,70.6]  
## Levels: (60.2,62.8] (62.8,65.4] (65.4,68] (68,70.6]
table(cut(EMPLOYED,4))
## 
## (60.2,62.8] (62.8,65.4]   (65.4,68]   (68,70.6] 
##           4           4           3           5

Giải thích: trong bảng tần số của biến Employed thì các nhóm (60.2,62.8],(62.8,65.4] đều có 4 giá trị (chiếm 25%) ;(65.4,68] có 3 giá trị (chiếm 18,75%),(68,70.6] có 5 giá trị (chiếm 31,25%)

5.1.13 Gán biến A của data(l) vào Arm, chia dữ liệu Arm thành 4 tổ và lập bảng

Arm <- l$A
cut(Arm,4)
##  [1] (145,199] (145,199] (145,199] (145,199] (306,360] (306,360] (306,360]
##  [8] (306,360] (252,306] (252,306] (252,306] (252,306] (252,306] (199,252]
## [15] (252,306] (252,306]
## Levels: (145,199] (199,252] (252,306] (306,360]

5.1.14 Ta chia dữ liệu của biến Arm thành 4 tổ bao gồm các tổ là (145,199], (199,252], (252,306], (306,360]. Sau đó ta lập bảng tần số để hiển thị giá trị của biến Arm từ các tổ đã phân

table(cut(Arm,4))
## 
## (145,199] (199,252] (252,306] (306,360] 
##         4         1         7         4

Giải thích: trong bảng tần số của biến Arm thì các nhóm (145,199],(306,360] đều có 4 giá trị (chiếm 25%) ;(199,252] có 1 giá trị (chiếm 6,25%),(252,306] có 7 giá trị (chiếm 43,75%)

5.1.15 Lập bảng tần số của dữ liệu EMPLOYED (số người có việc làm) với lần lượt các biến GNP (tổng sản phẩm quốc gia), Population (dân số)

##Bảng tần số giữ số người có việc làm với tổng sản lượng quốc gia

table(cut(l$E,4),cut(l$G,4))
##              
##               (234,314] (314,395] (395,475] (475,555]
##   (60.2,62.8]         4         0         0         0
##   (62.8,65.4]         0         4         0         0
##   (65.4,68]           0         0         3         0
##   (68,70.6]           0         0         1         4

Nhận xét:

  • Có tổng cộng 4 giá trị mà số người có việc làm nằm trong nhóm (60.2,62.8] chiếm 25%, Có 4 giá trị mà số người có việc làm nằm trong nhóm (62.8,65.4] chiếm 25%, Có 3 giá trị mà số người có việc làm nằm trong nhóm (65.4,68]chiếm 18,75%, Có 5 giá trị mà số người có việc làm nằm trong nhóm (68,70.6] chiếm 31,25%

  • Ở mỗi mức tổng sản lượng quốc gia đều có 4 giá trị nằm ở các mức là (234,314], (314,395], (395,475], (475,555] đều chiếm 25%

##Bảng tần số giữ số người có việc làm với dân số

table(cut(l$E,4),cut(l$P,4))
##              
##               (108,113] (113,119] (119,124] (124,130]
##   (60.2,62.8]         4         0         0         0
##   (62.8,65.4]         1         3         0         0
##   (65.4,68]           0         2         1         0
##   (68,70.6]           0         0         2         3

Nhận xét:

  • Có tổng cộng 4 giá trị mà số người có việc làm nằm trong nhóm (60.2,62.8] chiếm 25%, Có 4 giá trị mà số người có việc làm nằm trong nhóm (62.8,65.4] chiếm 25%, Có 3 giá trị mà số người có việc làm nằm trong nhóm (65.4,68]chiếm 18,75%, Có 5 giá trị mà số người có việc làm nằm trong nhóm (68,70.6] chiếm 25%

  • Có 2 mức có dân số từ (108,113] và từ (113,119] chiếm 5 (mỗi tổ sẽ có tỷ trọng là 31.25%), Có 2 mức có dân số từ (119,124] và từ (124,130] chiếm 3 (mỗi tổ sẽ có tỷ trọng là 18.75%)

##Tính toán tần suất bảng tần số
x=table(cut(l$Y,4),EMPLOYED)
prop.table(x)
##              EMPLOYED
##               60.171 60.323 61.122 61.187 63.221 63.639 63.761 64.989 66.019
##   (1947,1951] 0.0625 0.0625 0.0625 0.0625 0.0000 0.0000 0.0000 0.0000 0.0000
##   (1951,1954] 0.0000 0.0000 0.0000 0.0000 0.0625 0.0625 0.0625 0.0625 0.0000
##   (1954,1958] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0625
##   (1958,1962] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##              EMPLOYED
##               66.513 67.857 68.169 68.655 69.331 69.564 70.551
##   (1947,1951] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##   (1951,1954] 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
##   (1954,1958] 0.0625 0.0625 0.0625 0.0000 0.0000 0.0000 0.0000
##   (1958,1962] 0.0000 0.0000 0.0000 0.0625 0.0625 0.0625 0.0625

5.1.16 Lấy ra các dòng có biến YEAR > 1955 hoặc UNEMPLOYED = 290.4

YEAR55UNEMPLOYED290.4 <- l[l$Y>1955|l$U==290.4,]
dim(YEAR55UNEMPLOYED290.4)
## [1] 8 7

Nhận xét: có số năm lớn hơn 1955 chiếm 8, số người thất nghiệp trong những năm lơn hơn 1955 và có số người gần bằng 290 chiếm 10

#Xem dữ liệu dòng 12 biến ARM
l$A[12]
## [1] 263.7

5.1.17 Lấy ngẫu nhiên 2 dòng

l1 <- l[sample(nrow(l),2),]
l1
##        Gd       G     U     A       P    Y      E
## 1949 88.2 258.054 368.2 161.6 109.773 1949 60.171
## 1953 99.0 365.385 187.0 354.7 115.094 1953 64.989

5.1.18 Tính logarit của các biến EMPLOYED, UNEMPLOYED, ARM trong data(l)

l$logE <- log(l$E)
l$logE
##  [1] 4.099713 4.112872 4.097191 4.113935 4.146637 4.153226 4.174218 4.155142
##  [9] 4.189943 4.217403 4.221990 4.197397 4.229094 4.242247 4.238892 4.256336
l$logU <- log(l$U)
l$logU
##  [1] 5.462135 5.448890 5.908626 5.814429 5.346631 5.263726 5.231109 5.879974
##  [9] 5.671259 5.642616 5.682218 6.148682 5.943586 5.974064 6.175035 5.993213
l$logA <- log(l$A)
l$logA
##  [1] 5.068904 4.980863 5.085124 5.105945 5.736250 5.884436 5.871272 5.814131
##  [9] 5.719656 5.654942 5.634075 5.574812 5.542048 5.527045 5.549854 5.644386