1. Phân bổ lao động theo các năm

Packages và dữ liệu

## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.5     ✓ purrr   0.3.4
## ✓ tibble  3.1.6     ✓ dplyr   1.0.8
## ✓ tidyr   1.2.0     ✓ stringr 1.4.0
## ✓ readr   2.1.1     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
femployment <- read_xlsx("./data.xlsx", sheet = 1)
f2020 <- read_xlsx("./data.xlsx", sheet = 2)
f2019 <- read_xlsx("./data.xlsx", sheet = 3)
vn_map <- sf::st_read(link2)
## Reading layer `OGRGeoJSON' from data source 
##   `https://data.opendevelopmentmekong.net/dataset/999c96d8-fae0-4b82-9a2b-e481f6f50e12/resource/2818c2c5-e9c3-440b-a9b8-3029d7298065/download/diaphantinhenglish.geojson?fbclid=IwAR1coUVLkuEoJRsgaH81q6ocz1nVeGBirqpKRBN8WWxXQIJREUL1buFi1eE' 
##   using driver `GeoJSON'
## Simple feature collection with 63 features and 2 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 102.1421 ymin: 6.953306 xmax: 116.9473 ymax: 23.3939
## Geodetic CRS:  WGS 84
vn_map <- vn_map %>% 
  left_join(femployment, by = c("Name" = "province1"))
vn_map <- vn_map %>% 
  mutate_at(
    vars(as.character(2016:2020)),
    .funs = ~cut(
      .x, 
      breaks=c(-Inf, 100, 1000, 5000, 10000, 15000, 20000, Inf), 
      labels=c("< 100","100-1000", "1000-5000", "5000-10000", "10000-15000", "15000-20000", "> 20000"),
      ordered_result = T
    )
  )
heatmap <- function(data, year) {
ggplot() + 
    geom_sf(data = vn_map, aes(fill = get(year)), colour = "#3a3a3a", size = 0.1) + 
    labs(title = paste("Phân bổ lao động nước ngoài tại Việt Nam", year)) +
    # scale_fill_gradient(low = "white", high = "#124B92") +
    guides(fill = guide_legend(title = "Lao động")) + 
    scale_fill_brewer(palette = 9, drop = F) +
    theme_void(base_size = 8)
}

Phân bổ lao động nước ngoài năm 2016

heatmap(vn_map, "2016")

Phân bổ lao động nước ngoài năm 2017

heatmap(vn_map, "2017")

Phân bổ lao động nước ngoài năm 2018

heatmap(vn_map, "2018")

Phân bổ lao động nước ngoài năm 2019

heatmap(vn_map, "2019")

Phân bổ lao động nước ngoài năm 2020

heatmap(vn_map, "2020")

Lao động nước ngoài qua các năm có sự tăng dần về số lao động hơn vào 2 thành phố lớn là Hà Nội ở phía bắc và TP. Hồ Chí Minh ở phía nam. Chứng tỏ, các thành phố lớn thu hút nguồn lao động nước ngoài (phù hợp với kết quả của bài nghiên cứu tham khảo)

Ngoài ra, thấy được lao động nước ngoài năm 2020 giảm so với năm 2019 (có thể nguyên nhân do Covid-19)

2. Thống kê lao động nước ngoài tại Việt Nam

2.1. Theo quốc tịch

## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
## 
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
## 
##     group_rows
f2020 %>% 
  group_by(region) %>%
  summarise_at(
    vars(europe, asia, africa, america, oceania),
    .funs = ~sum(.x, na.rm = T)
    ) %>% 
  mutate(
    region = factor(region, levels = 1:6, labels = c(
      "Đồng Bằng Sông Hồng",
      "Tây Bắc và Đông Bắc Bộ",
      "Bắc Trung Bộ và Duyên Hải Nam Trung Bộ",
      "Tây Nguyên",
      "Đông Nam Bộ, Miền Đông",
      "Đồng Bằng Sông Cửu Long"
      )
    )
  ) %>% 
  adorn_totals("row", name = "Tổng") %>% 
  adorn_totals("col", name = "Tổng") %>% 
  kbl(caption = "Lao động nước ngoài ở Việt Nam phân theo quốc tịch năm 2020") %>%
  kable_classic() %>% 
  row_spec(c(0, 7), bold = T)
Lao động nước ngoài ở Việt Nam phân theo quốc tịch năm 2020
region europe asia africa america oceania Tổng
Đồng Bằng Sông Hồng 2108 19656 873 941 228 23806
Tây Bắc và Đông Bắc Bộ 62 9116 122 21 70 9391
Bắc Trung Bộ và Duyên Hải Nam Trung Bộ 895 7032 394 384 166 8871
Tây Nguyên 52 199 35 41 5 332
Đông Nam Bộ, Miền Đông 3996 36172 669 2245 707 43789
Đồng Bằng Sông Cửu Long 279 9606 40 87 47 10059
Tổng 7392 81781 2133 3719 1223 96248

Hầu hết các lao động nước ngoài đến Việt Nam chủ yếu là Châu Á, sau đó là Châu Âu và Châu Mỹ

Khu vực “Đông Nam Bộ, Miền Đòng” có nhiều lao động nước ngoài nhất, xếp sau đó là khu vực “Đồng Bằng Sông Hồng”

2.2. Theo kỹ năng

2.2.1. Năm 2019

f2019 %>% 
  group_by(region) %>% 
  summarise_at(
    vars(manager, ceo, specialist, technician, other),
    .funs = ~sum(.x, na.rm = T)
  ) %>% 
  mutate(
    region = factor(region, levels = 1:6, labels = c(
      "Đồng Bằng Sông Hồng",
      "Tây Bắc và Đông Bắc Bộ",
      "Bắc Trung Bộ và Duyên Hải Nam Trung Bộ",
      "Tây Nguyên",
      "Đông Nam Bộ, Miền Đông",
      "Đồng Bằng Sông Cửu Long"
      )
    )
  ) %>% 
  adorn_totals("row", name = "Tổng") %>% 
  adorn_totals("col", name = "Tổng") %>%
  kbl(caption = "Lao động nước ngoài phân theo vị trí công việc năm 2019") %>%
  kable_classic() %>% 
  row_spec(c(0, 7), bold = T)
Lao động nước ngoài phân theo vị trí công việc năm 2019
region manager ceo specialist technician other Tổng
Đồng Bằng Sông Hồng 4673 4439 16310 9973 0 35395
Tây Bắc và Đông Bắc Bộ 788 839 2606 1921 0 6154
Bắc Trung Bộ và Duyên Hải Nam Trung Bộ 1097 789 4343 4835 0 11064
Tây Nguyên 93 30 228 74 0 425
Đông Nam Bộ, Miền Đông 6851 3450 36444 7762 0 54507
Đồng Bằng Sông Cửu Long 633 852 6736 1993 0 10214
Tổng 14135 10399 66667 26558 0 117759

2.2.2. Năm 2020

f2020 %>% 
  group_by(region) %>% 
  summarise_at(
    vars(manager, ceo, specialist, technician, other),
    .funs = ~sum(.x, na.rm = T)
  ) %>% 
  mutate(
    region = factor(region, levels = 1:6, labels = c(
      "Đồng Bằng Sông Hồng",
      "Tây Bắc và Đông Bắc Bộ",
      "Bắc Trung Bộ và Duyên Hải Nam Trung Bộ",
      "Tây Nguyên",
      "Đông Nam Bộ, Miền Đông",
      "Đồng Bằng Sông Cửu Long"
      )
    )
  ) %>% 
  adorn_totals("row", name = "Tổng") %>% 
  adorn_totals("col", name = "Tổng") %>%
  kbl(caption = "Lao động nước ngoài phân theo vị trí công việc năm 2019") %>%
  kable_classic() %>% 
  row_spec(c(0, 7), bold = T)
Lao động nước ngoài phân theo vị trí công việc năm 2019
region manager ceo specialist technician other Tổng
Đồng Bằng Sông Hồng 3840 2948 12990 3975 53 23806
Tây Bắc và Đông Bắc Bộ 872 889 4053 3476 0 9290
Bắc Trung Bộ và Duyên Hải Nam Trung Bộ 942 818 4204 2871 0 8835
Tây Nguyên 91 19 238 64 0 412
Đông Nam Bộ, Miền Đông 3780 2654 33119 4206 0 43759
Đồng Bằng Sông Cửu Long 569 938 6323 2065 0 9895
Tổng 10094 8266 60927 16657 53 95997
library(ggcorrplot)
f2020 %>% 
  select(-province, -pcode, -region, -femployment_2020, -female) %>% 
  mutate_all(
    .funs = ~ifelse(is.na(.x), 0, .x)
  ) %>% 
  cor() %>%
  as.data.frame() %>%
  select(-(1:5)) %>%
  .[-(6:10), ] %>% 
  as.matrix() %>%
  ggcorrplot(
    lab = TRUE,
    lab_col = "#3a3a3a"
  ) +
  scale_fill_gradient2(
    breaks=c(0, 1), 
    limit=c(0, 1),
    low = "white",
    high = "#124B92"
  ) + 
  guides(fill = guide_colorbar(title = "Corr")) + 
  ggtitle("Ma trận hệ số tương quan giữa vị trí công việc và quốc tịch")
## Scale for 'fill' is already present. Adding another scale for 'fill', which
## will replace the existing scale.