본 보고서는 한국보건사회연구원에서 발간한 한국복지패널조사(Korea Welfare Panel Study, KOWEPS)를 활용하여 개인의 직업 유형과 경상소득 간의 관계를 분석하는 것을 목적으로 한다.직업은 개인의 경제적 소득에 영향을 미치는 주요 요인 중 하나이며, 직업에 따라 소득 수준에 차이가 있을 수 있다. 본 분석을 통해 한국 사회에서 직업별 소득 분포와 직업 구조가 소득 불평등에 어떤 영향을 미치는지를 살펴보고자 한다. 분석 결과는 고용 정책, 직업 교육, 소득 분배 등에 유용한 시사점을 제공할 수 있을 것이다.
본 분석에 사용된 자료는 한국보건사회연구원에서 매년 수집·발간하는 한국복지패널조사(Korea Welfare Panel Study, KOWEPS)이다. 이 조사는 가구와 개인의 복지, 소득, 고용, 건강, 교육 등 다양한 영역에 걸쳐 1,000개 이상의 변수를 포함하고 있으며, 한국 사회의 사회·경제적 변화를 장기적으로 추적할 수 있는 대표적인 종단면(panel) 자료이다.특히 이번 분석에서는 개인 단위의 데이터를 중심으로, 응답자의 직업 코드(h10_eco9) 및 경상소득(h10_cin) 변수를 활용하였다.직업 정보는 응답자의 주요 직업을 대분류 기준으로 구분하며, 경상소득은 급여, 사업소득, 연금 등 정기적으로 발생하는 소득을 의미한다. 본 분석은 2015년도 데이터를 중심으로 수행되었으며, 해당 시기의 직업별 평균 소득 수준을 비교함으로써, 직업 구조와 소득 불평등 간의 연관성을 탐색하고자 한다.
#install.packages("foreign") # foreign 패키지 설치
library(foreign) # SPSS 파일 로드
library(dplyr) # 전처리
library(ggplot2) # 시각화
library(readxl) # 엑셀 파일 불러오기
# 데이터 불러오기
raw_welfare <- read.spss(file = "Koweps_hpc10_2015_beta1.sav",
to.data.frame = T)
## Warning in read.spss(file = "Koweps_hpc10_2015_beta1.sav", to.data.frame = T):
## Koweps_hpc10_2015_beta1.sav: Compression bias (0) is not the usual value of 100
# 복사본 만들기
welfare <- raw_welfare
welfare <- welfare %>% select(gender = h10_g3, # 성별
birth = h10_g4, # 태어난 연도
marriage = h10_g10, # 혼인 상태
code_job = h10_eco9, # 직종 코드
income_regular = h10_cin) # 경상소득 코드
1. 변수 검토 및 전처리
class(welfare$code_job)
## [1] "numeric"
table(welfare$code_job)
##
## 111 120 131 132 133 134 135 139 141 149 151 152 153 159 211 212
## 2 16 10 11 9 3 7 10 35 20 26 18 15 16 8 4
## 213 221 222 223 224 231 232 233 234 235 236 237 239 241 242 243
## 3 17 31 12 4 41 5 3 6 48 14 2 29 12 4 63
## 244 245 246 247 248 251 252 253 254 259 261 271 272 273 274 281
## 4 33 59 77 38 14 111 24 67 109 4 15 11 4 36 17
## 283 284 285 286 289 311 312 313 314 320 330 391 392 399 411 412
## 8 10 26 16 5 140 260 220 84 75 15 4 13 87 47 12
## 421 422 423 429 431 432 441 442 510 521 522 530 611 612 613 620
## 124 71 5 14 20 33 154 197 192 353 5 106 1320 11 40 2
## 630 710 721 722 730 741 742 743 751 752 753 761 762 771 772 773
## 20 29 30 22 16 27 3 34 34 5 49 69 27 11 61 86
## 774 780 791 792 799 811 812 819 821 822 823 831 832 841 842 843
## 7 17 5 21 45 16 1 6 9 9 23 5 17 32 10 4
## 851 852 853 854 855 861 862 863 864 871 873 874 875 876 881 882
## 19 13 7 33 9 3 14 17 31 2 257 34 37 2 2 3
## 891 892 899 910 921 922 930 941 942 951 952 953 991 992 999 1011
## 8 19 16 102 31 74 289 325 99 125 122 73 45 12 141 2
## 1012
## 17
library(readxl)
list_job <- read_excel("Koweps_Codebook.xlsx", col_names = T, sheet = 2)
head(list_job)
## # A tibble: 6 × 2
## code_job job
## <dbl> <chr>
## 1 111 의회의원 고위공무원 및 공공단체임원
## 2 112 기업고위임원
## 3 120 행정 및 경영지원 관리자
## 4 131 연구 교육 및 법률 관련 관리자
## 5 132 보험 및 금융 관리자
## 6 133 보건 및 사회복지 관련 관리자
dim(list_job)
## [1] 149 2
welfare <- left_join(welfare, list_job, by = "code_job")
welfare %>%
filter(!is.na(code_job)) %>%
select(code_job, job) %>%
head(10)
## code_job job
## 1 942 경비원 및 검표원
## 2 762 전기공
## 3 530 방문 노점 및 통신 판매 관련 종사자
## 4 999 기타 서비스관련 단순 종사원
## 5 312 경영관련 사무원
## 6 254 문리 기술 및 예능 강사
## 7 510 영업 종사자
## 8 530 방문 노점 및 통신 판매 관련 종사자
## 9 286 스포츠 및 레크레이션 관련 전문가
## 10 521 매장 판매 종사자
job_income_regular <- welfare %>%
filter(!is.na(job) & !is.na(income_regular)) %>%
group_by(job) %>%
summarise(mean_income_regular = mean(income_regular))
head(job_income_regular)
## # A tibble: 6 × 2
## job mean_income_regular
## <chr> <dbl>
## 1 가사 및 육아 도우미 3907.
## 2 간호사 7352.
## 3 건설 및 광업 단순 종사원 3621.
## 4 건설 및 채굴 기계운전원 6558.
## 5 건설 전기 및 생산 관련 관리자 10081.
## 6 건설관련 기능 종사자 4989.
취업을 앞둔 학생들이 각 직업의 경상소득을 이해하고, 진로 선택에 도움을 받을 수 있도록 하기 위해 아래 표에는 경상소득이 가장 높은 10개 직업 유형을 제시하였다. #### 상위 10개 추출
top10 <- job_income_regular %>%
arrange(desc(mean_income_regular)) %>%
head(10)
top10
## # A tibble: 10 × 2
## job mean_income_regular
## <chr> <dbl>
## 1 환경 청소 및 경비 관련 관리자 20547.
## 2 의료진료 전문가 18960.
## 3 의회의원 고위공무원 및 공공단체임원 14723
## 4 판매 및 운송 관리자 12912.
## 5 보험 및 금융 관리자 11661.
## 6 법률 전문가 11348.
## 7 금속 재료 공학 기술자 및 시험원 10989.
## 8 화학공학 기술자 및 시험원 10749.
## 9 건설 전기 및 생산 관련 관리자 10081.
## 10 대학 교수 및 강사 9822.
top10 %>%
ggplot(aes(x=reorder(job,mean_income_regular),y=mean_income_regular,fill = job))+
geom_col(show.legend = FALSE)+
coord_flip()+
labs(x="직업군",y="경상소득 평균")+
theme_minimal()
직업과 경상소득의 관계를 분석할 때, 단순히 고소득 직업에만 주목할 것이 아니라 저소득 직업에 대한 이해도 함께 이루어져야 한다. 저소득 직업군에 대한 분석은 학생들이 진로를 선택할 때 보다 현실적인 기대를 설정하는 데 도움이 되며, 이상과 현실의 괴리를 줄여줄 수 있다. 또한 노동시장 내 구조적 불평등을 파악하고, 정부가 직업 지원 정책이나 복지 제도를 수립하는 데 필요한 기초 자료를 제공할 수 있다. #### 하위 10위 추출
low_income_jobs <- job_income_regular %>%
filter(mean_income_regular > 0, !is.na(job)) %>%
group_by(job) %>%
arrange(mean_income_regular) %>%
slice_head(n = 10)
bottom10 <- low_income_jobs %>%
arrange(mean_income_regular) %>%
head(10)
bottom10
## # A tibble: 10 × 2
## # Groups: job [10]
## job mean_income_regular
## <chr> <dbl>
## 1 농립어업관련 단순 종사원 2364.
## 2 기타 식품가공관련 기계조작원 2612
## 3 작물재배 종사자 2780.
## 4 청소원 및 환경 미화원 2922.
## 5 음료제조관련 기계조작원 3273
## 6 공예 및 귀금속 세공원 3416.
## 7 경비원 및 검표원 3576.
## 8 직물 및 신발 관련 기계조작원 및 조립원 3618.
## 9 건설 및 광업 단순 종사원 3621.
## 10 계기검침 수금 및 주차 관련 종사원 3680.
library(ggplot2)
ggplot(bottom10, aes(x = mean_income_regular, y = reorder(job, -mean_income_regular))) +
geom_point() +
labs(x = "경상소득평균", y = "직업", title = "낮은 소득 직업 산점도") +
theme_minimal()
직업별 소득의 평균과 중위수 차이를 분석하는 것은 소득 분포의 편향 정도를 파악하는 데 중요하다. 평균은 극단적인 고소득자의 영향으로 왜곡될 수 있지만, 중위수는 대다수의 소득 수준을 더 정확히 반영한다. 두 값의 차이가 클수록 소득 불평등과 일부 고소득자에 의한 평균 상승 현상을 시사하며, 이는 정책 수립과 개인의 직업 선택에 중요한 참고 자료가 된다.
income_stats <- welfare %>%
filter(!is.na(income_regular), !is.na(job)) %>%
group_by(job) %>%
summarise(
mean_income = mean(income_regular),
median_income = median(income_regular),
.groups = "drop"
)
top_jobs <- income_stats %>%
arrange(desc(mean_income)) %>%
slice_head(n = 10) %>%
pull(job)
plot_data <- welfare %>%
filter(job %in% top_jobs)
ggplot(plot_data, aes(x = reorder(job, income_regular, FUN = median), y = income_regular)) +
geom_boxplot() +
geom_point(data = income_stats %>% filter(job %in% top_jobs),
aes(x = job, y = mean_income),
color = "blue", size = 3, shape = 18) + # 평균은 파란색 마름모로 표시
geom_point(data = income_stats %>% filter(job %in% top_jobs),
aes(x = job, y = median_income),
color = "darkgreen", size = 3, shape = 17) + # 중위수는 초록색 삼각형으로 표시
coord_flip() +
labs(
title = "직업별 소득 분포 및 평균과 중위수 비교",
x = "직업",
y = "경상소득",
caption = "파란색: 평균(Mean), 초록색: 중위수(Median)"
) +
theme_minimal()
경상소득 변동성이 큰 직업을 분석함으로써 우리는 단순한 평균 소득 수준을 넘어, 내부의 소득 불평등과 경제적 위험 요인을 파악할 수 있다. 또한, 사회 안전망과 지원 정책을 설계할 때 대상 집단을 정확히 설정하는 데 중요한 근거를 제공한다. 이와 함께, 취업 준비생과 구직자에게는 소득의 불안정성을 인지시키고, 재정 및 심리적 대비를 할 수 있도록 도움을 준다. 아울러, 직업 교육 및 재취업 지원 프로그램 설계에도 유용한 정보를 제공하여 노동시장의 안정성과 공정성을 높이는 데 기여할 것이다.
job_sd <- welfare %>%
filter(!is.na(income_regular), !is.na(job)) %>%
group_by(job) %>%
summarise(sd_income = sd(income_regular), .groups = "drop")
top10_sd_jobs <- job_sd %>%
arrange(desc(sd_income)) %>%
slice_head(n = 10)
top10_data <- welfare %>%
filter(job %in% top10_sd_jobs$job, !is.na(income_regular))
ggplot(top10_data, aes(x = reorder(job, income_regular, FUN = median), y = income_regular)) +
geom_boxplot() +
coord_flip() +
labs(
title = "경상소득 표준편차가 가장 큰 10개 직업의 소득 분포",
x = "직업",
y = "경상소득"
) +
theme_minimal()
본 연구에서는 한국복지패널데이터를 활용하여 직업별 경상소득을 세 가지 측면에서 분석하였다. 첫째, 고소득 직업군은 평균 경상소득이 높아 경제적 안정성이 비교적 높은 것으로 나타났다. 그러나 이러한 고소득 직업에서도 내부적으로 소득 분포의 불균형이 존재하여 일부 고소득자가 평균치를 끌어올리는 현상이 관찰되었다. 둘째, 저소득 직업군은 전반적으로 소득 수준이 낮고, 일부 직업에서는 경제적 취약성이 심화될 가능성이 확인되었다. 이들 직업군은 소득의 안정성 측면에서도 상대적으로 불리하여 사회적 안전망 구축과 맞춤형 지원이 필요한 대상임을 시사한다. 셋째, 소득 변동성이 큰 직업군은 높은 소득 잠재력과 함께 큰 소득 불안정을 동시에 내포하고 있었다. 이러한 직업군은 자유직업자나 영업직 등에서 두드러지며, 이로 인해 해당 종사자들은 경제적 위험에 노출될 가능성이 높다. 따라서 이들 직업군에 대한 적절한 재정적·정책적 지원이 요구된다. 종합적으로, 본 분석은 직업별 소득 수준뿐만 아니라 소득의 변동성까지 고려함으로써 노동시장의 다층적 특성을 이해하는 데 기여하였다. 향후 고용 정책 및 직업 교육, 사회 복지 제도 설계 시, 이러한 다양한 소득 특성을 반영하는 맞춤형 접근이 필요함을 시사한다.