오늘은 쉽게 배우는 R데이터 분석에 나오는 분석 예제 중 하나를 풀어봤다. "몇 살 때 월급을 가장 많이 받을까?"에 대한 내용을 분석해 봤다. 분석에 앞서서 분석할 데이터가 필요하기 때문에, 책에서 제공하는 데이터를 사용하였다. 데이터에 대한 내용은 다음과 같다.
<한국복지패널데이터>
한국보건사회연구원에서 가구의 경제활동을 연구해 정책 지원에 반영할 목적으로 발간하는 조사 자료이다. 2006년~2015년까지 전국에서 7000여 가구를 선정해 매년 추적 조사하 자료이며, 경제활동, 생활실태, 복지욕구 등 수천 개 변수에 대한 정보를 담고 있다.
데이터를 R로 가지고 오기위해서는 다음과 같은 작업이 선행되어야 한다.
library(foreign)
library(dplyr)
library(ggplot2)
library(readxl)
raw_welfare <- read.spss(file="Koweps_hpc10_2015_beta1.sav",
to.data.frame=T)
foreign 패키지는 spss,sas와 같은 다양한 통계 분석 툴들의 파일을 불러올 수 있게 해 준다. 그리고 readxl은 말 그대로 엑셀 파일을 불러오는 패키지이다.
우선 데이터를 가지고 와서 raw_welfare 라는 변수에 저장했다. 데이터 프래임으로 저장해야지 앞으로 분석할 때 편하기 때문에, to.data.frame을 True로 설정했다. 그리고 데이터를 한번 보니 변수가 매우 많고 의미가 모호하게 되어 있어서 변수명을 쉽게 바꾸었다.
welfare$age <-2015-welfare$birth+1
변수들을 보니 나이에 대한 정보는 없고 출생일에 대한 정보만 있었다. 그래서 나이 변수를 만들었다. 2015년 자료이니 2015에서 출생일을 빼고 1을 더했다.
age_income <- welfare %>%
filter(!is.na(income)) %>%
group_by(age) %>%
summarise(mean_income=mean(income))
age_income
함수를 좀 더 직관적이게 파이프 라인(%>%)을 이용하여 연결했다. 우선 income 변수에 결측값이 많아서 필터링하는 작업을 선행했다. 그리고 나이별로 그룹을 한 뒤, summarise()를 이용해 나이별 수익 평균치를 구했다. 그랬더니 나온 결과는 다음과 같다.
> age_income
# A tibble: 69 × 2
age mean_income
<dbl> <dbl>
1 20 121.
2 21 106.
3 22 130.
4 23 142.
5 24 134.
6 25 145.
7 26 158.
8 27 188.
9 28 205.
10 29 189.
이제 거의 끝이 났다. age_income을 시각화하면 된다.
ggplot(age_income,aes(x=age,y=mean_income))+
geom_line()
시각화에는 역시 ggplot이다. geom_line()을 이용해서 선으로 된 그래프를 그렸다.
결과를 보니 20에서 40까지는 꾸준히 오르다가 40부터 50쯤까지 정체되고 60부터는 확실히 감소하는 경향을 보여줬다. 퇴직시기를 앞둔 60세 부터는 감소폭이 가장 심했다. 가장 많은 평균 월급을 받는 나이는 52살에서 53살쯤이었다.
눈 여겨 볼 점은 20대 초반 시기보다 60대 후반 시기의 평균 월급이 더 적다는 것이다. 대학교를 가지 않고 바로 취업하는 사람도 있기 때문일 수도 있는다. 하지만 60대 후반도 일을 하는 사람이 더 많을 것이다.(물론 이건 내 생각이다.) 감히 예상하건대 20대 일자리보다 노년 일자리의 질이 떨어지기 때문이 아닐까?
이건 2015년 그래프기 때문에 2023년인 지금과는 많이 다를 수 있다. 기회가 된다면 2023년 데이터를 가지고 2015년 그래프와 비교해보는 활동도 해보고 싶다.
'R study' 카테고리의 다른 글
R을 이용한 의사결정 나무(decision tree). 내 맘대로 인공지능 (1) | 2023.03.31 |
---|---|
성동구 어느 동이 치킨&호프 집이 제일 많을까? (2) | 2023.03.10 |
데이터 변형(Filter rows with filter()) (3) | 2023.02.24 |
데이터 시각화(Geometric objects) (4) | 2023.02.23 |
데이터 시각화(facet) (1) | 2023.02.22 |