본문 바로가기

R/쉽게 배우는 R 데이터분석

한국인의 삶을 파악하라! -05

반응형

02에서는 데이터 전체를 이용해서 성별 월급 차이를 분석했습니다. 그런데 성별 월급 차이는 연령대에 따라 다른 양상을 보일 수 있습니다. 이번에는 성별 월급 차이가 연령대에 따라 다른지 분석해 보겠습니다. 연령대, 성별, 월급 변수 모두 앞에서 전처리 작업을 완료했으니 바로 변수 간 관계를 분석하겠습니다.

 

분석절차

1. 변수 검토 및 전처리

-연령대, 성별, 월급

 

2. 변수 간 관계분석

-연령대 및 성별 월급 평균표 만들기, 그래프 만들기

 

연령대 및 성별 월급 차이 분석하기

 

1. 연령대 및 성별 월급 평균표 만들기

각 연령대에서 성별에 따른 월급 차이가 있는지 알아보기 위해 연령대 및 성별에 따른 월급 평균표를 만들겠습니다.

 

sex_income <- welfare %>% 
  filter(!is.na(income)) %>% 
  group_by(ageg, sex) %>% 
  summarise(mean_income = mean(income))
  
sex_income
# A tibble: 6 x 3
# Groups:   ageg [3]
  ageg   sex    mean_income
  <chr>  <chr>        <dbl>
1 middle female       188. 
2 middle male         353. 
3 old    female        81.5
4 old    male         174. 
5 young  female       160. 
6 young  male         171. 

 

2. 그래프 만들기

앞에서 만든 표를 이용해 그래프를 만들겠습니다. 막대가 연령대별로 표현되도록 x축에 ageg를 지정합니다. 막대가 성별에 따라 다른 색으로 표현되도록 fill에 sex를 지정합니다. 축 순서는 scale_x_discrete(limits=c())를 이용해 연령대 순으로 설정합니다.

 

ggplot(data = sex_income, aes(x = ageg, y = mean_income, fill = sex)) +
  geom_col() +
  scale_x_discrete(limits = c("young", "middle", "old"))

 

출력된 그래프는 각 성별의 월급이 연령대 막대에 함께 표현되어 있어 차이를 비교하기 어렵습니다. geom_col()의 position 파라미터를 "dodge"로 설정해 막대를 분리하겠습니다.

 

ggplot(data = sex_income, aes(x = ageg, y = mean_income, fill = sex)) +
  geom_col(position = "dodge") +
  scale_x_discrete(limits = c("young", "middle", "old"))

 

표와 출력된 그래프를 보면 성별 월급 차이의 양상이 연령대별로 다르다는 것을 알 수 있습니다. 초년에는 차이가 크지 않다가 중년에 크게 벌어져 남성이 166만 원가량 더 많습니다. 노년에는 차이가 줄어들지만 여전히 남성의 월급이 92만 원가량 더 많습니다.

앞 절에서 연령대별 월급을 분석했을 때 노년이 초년보다 적은 월급을 받는 것으로 나타났습니다. 하지만 성별로 나눈 이번 분석 결과를 보면 남성의 경우 노년과 초년 간 월급 차이가 크지 않다는 것을 알 수 있습니다. 노년이 초년보다 적은 월급을 받는 현상은 여성에서만 나타나고 있습니다. 또한 초년보다 중년이 더 많은 월급을 받는 현상도 주로 남성에서 나타나고, 여성은 큰 차이가 없다는 것을 알 수 있습니다.

 

나이 및 성별 월급 차이 분석하기

이번에는 연령대로 구분하지 않고 나이 및 성별 월급 평균표를 만들어 그래프로 표현하겠습니다. 그래프는 선 그래프로 만들고, 월급 평균 선이 성별에 따른 다른 색으로 표현되도록 aes()의 col 파라미터에 sex를 지정하겠습니다.

 

# 성별 연령별 월급 평균표 만들기
sex_age <- welfare %>% 
  filter(!is.na(income)) %>% 
  group_by(age, sex) %>% 
  summarise(mean_income = mean(income))

head(sex_age)
# A tibble: 6 x 3
# Groups:   age [3]
    age sex    mean_income
  <dbl> <chr>        <dbl>
1    20 female        147.
2    20 male           69 
3    21 female        107.
4    21 male          102.
5    22 female        140.
6    22 male          118.

 

# 그래프 만들기
ggplot(data = sex_age, aes(x = age, y = mean_income, col = sex)) + 
  geom_line()

 

출력된 그래프를 보면 남성의 월급은 50세 전후까지 지속적으로 증가하다가 급격하게 감소하는 반면, 여성은 30세 전후까지 약간 상승하다가 그 이후로는 지속적으로 완만하게 감소한다는 것을 알 수 있습니다. 성별 월급 격차는 30세부터 지속적으로 벌어져 50대 초반에 가장 크게 벌어지고, 이후로 점차 줄어들어 70대 후반이 되면 비슷한 수준이 된다는 것을 알 수 있습니다.

반응형