1. 국제노동기구 데이터

국제노동기구에서 ILOSTAT - the world leading source on labour statistics 웹사이트를 통해서 다양한 노동관련 풍부한 데이터를 공개하고 있다. 특히, Rilostat: ILO Open Data via Ilostat Bulk Download Facility or SDMX Web Service 팩키지를 통해서 R에서 손쉽게 데이터를 추출하여 분석작업에 큰 힘을 주고 있다.

2. 생산가능인구 변동

대한민국이 노령화되면서 여러가지 기회도 생겨나고 있지만, 사회경제적인 문제도 더불어 만들어지고 있다. 이에 2000년 1월과 2017년 11월 두 시점간 생산가능인구가 얼마나 변화했는지 살펴본다.

2.1. 환경설정

생산가능인구 변동을 시각화하는데 필요한 팩키지를 설치하여 준비한다.

# 0. 환경설정 --------
library(tidyverse)
library(stringr)
library(lubridate)
library(Rilostat)
library(forcats)
library(extrafont)
loadfonts() 
library(ggpubr)

2.1. 생산가능인구 데이터

Rilostat GitHub 페이지를 참조하여 데이터를 긁어 오는 방법을 살펴본다. get_ilostat_toc() 함수를 통해 데이터 추출 가능 목록도 살펴본다.

# 1. 데이터 가져오기 --------
## 1.1. 데이터 추출 목록
# toc <-  dplyr::filter(get_ilostat_toc(), collection == 'STI', freq == 'M')

# DT::datatable()

POP_XWAP_SEX_AGE_NB_M 에 생산가능인구 데이터가 담겨있기 때문에 데이터를 가져와서 적절한 데이터 전처리 작업을 수행한다.

## 1.2. 대한민국 생산가능 연령 및 인구
ilo_df <- get_ilostat(id = 'POP_XWAP_SEX_AGE_NB_M', segment = 'indicator') 

ilo_kr_df <- ilo_df %>% 
    filter(ref_area == "KOR") %>% 
    filter(str_detect(classif1, "AGGREGATE")) %>%
    filter(str_detect(sex, "SEX_T")) %>% 
    mutate(year = str_sub(time, 1, 4),
           month = str_sub(time, 6, 7),
           date = make_date(year, month)) %>% 
    filter(date %in% c(ymd("2000-01-01"), ymd("2017-11-01"))) %>% 
    mutate(classif1 = str_replace_all(classif1, "AGE_AGGREGATE_", "")) %>% 
    arrange(date) %>% 
    mutate(classif1 = fct_reorder(classif1,
                                   obs_value,
                                   last))

2.2. 생산가능인구 변화 시각화

2000년 1월과 2017년 11월 생산가능인구 변화를 시각화하자. 생산가능인구의 변화를 시각화하여 볼 수 있는 형태로 데이터를 도식화한다.

전체적인 생산가능인구는 증가했지만, 특이한 점은 15-24세 생산가능인구는 줄었다는 점이다. 특히, 핵심적인 25-54세 인구(30년)는 55-64세(10년) 생산인구 증가에 훨씬 미치지 못한다. 65세 이상 노령자의 인구 증가도 눈에 확연히 보인다.

median_ilo_kr_df <- ilo_kr_df %>% 
    group_by(classif1) %>% 
    summarise(obs_value = median(obs_value))

ggplot(ilo_kr_df) +
    geom_path(aes(x=obs_value, y=classif1),
              color = "blue",
              size = 0.3,
              arrow = arrow(length = unit(1.5, "mm"), type = "closed")) +
    geom_text(
        aes(x = obs_value, 
            y = classif1, 
            label = scales::comma(obs_value, digits=0),
            hjust = ifelse(date == "2000-01-01", 1.5, -0.5),
            vjust = ifelse(classif1 == "Y15-24", 1.7, 0)),
        size = 3, family = "NanumGothic", color = "gray25") +
    labs(x="생산가능인구(단위:천명)", y="", title="대한민국 생산가능인구 변동", 
         subtitle="2000년 1월 vs 2017년 11월, 단위:천명",caption="자료출처: 국제노동기구(ILO)") +
    theme_bw(base_family="NanumGothic") +
    theme(
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        axis.text = element_blank(),
        panel.grid = element_blank(),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.border = element_blank()
    ) + 
    geom_text(data = median_ilo_kr_df,
        aes(x = obs_value,
            y = classif1,
            label = classif1),
        vjust = -1,
        color = "gray50"
    ) +
    coord_cartesian(xlim = c(3000, 44548))