본문 바로가기

인사를 잘 하자/HR Data

HR Data x chatGPT - 직무별 연봉 분석 (1)

 

HR운영에 있어서 직무가치가 중요해지고, 가치에 따른 차등 보상이 우리나라에도 이슈가 되고 있다. 대기업식 채용 후 제너럴리스트를 양성하는 형태가 익숙한 환경에서 쉽지만은 않겠지만, 대기업보다도 (매출로나 영향력으로나) 덩치가 커진 스타트업들이 많아짐에 따라 그들의 HR운영 기조가 '정석'처럼 받아들여지기 좋아지는 분위기다. 그래서 언젠가의 분석을 위해 미리 직무별 pay band를 설정한 후 해당 band와 실제 직원들의 보상 수준이 얼마나 일치하는지 확인하기 위한 시각화를 해보고자 한다. 

 

 

직원정보 생성하기

이를위해 실제 직원정보를 사용할 수는 없으니, chat GPT를 활용해서 가상의 직원 100명을 생성했다. 100명의 직원은 총 5개의 직무로 나누어졌고 직원정보의 table은 아래와 같은 column을 갖도록 생성했다. 

 

생성한 Table은 다음과 같은 정보로 구성되었습니다. 
 1. Name (이름): 각 직원의 이름으로 영문 이름 중에서 랜덤으로 선택됩니다.
 2. Age (나이): 각 직원의 나이로, 20에서 60 사이의 랜덤한 값으로 생성됩니다.
 3. Job (직무): 각 직원의 직무로, 'job_A', 'job_B', 'job_C', 'job_D', 'job_E' 중 하나가 랜덤으로 선택됩니다.
 4. Job Level (직급): 각 직원의 직급으로, 1부터 5까지의 랜덤한 값으로 생성됩니다.
 5. Salary (연봉): 각 직원의 연봉으로, 각 직무별로 중앙값을 기준으로 랜덤하게 연봉이 생성됩니다. 최소값은 40, 최대값은 90입니다.

또한 총 100명의 직원 정보로 구성되며, 각 직무는 다음과 같은 비율로 나타납니다
 job_A: 10%  job_B: 25%  job_C: 15%  job_D: 15%  job_E: 35%

 

생성된 직원정보

 

위와 같이 100명의 가상직원을 만든 뒤 각 직무와 레벨에따라서 비율에 따라 생성하였다. 각 직무별 연봉수준의 중앙값도 달리하였다. 

 

 

기본 시각화

직원들의 급여 수준을 직무에 따라 나타내보았다. 

산점도(좌)와 boxplot(우)

 

개인적으로는 산점도를 좋아하지만, boxplot을 활용하면 데이터의 분포를 시각적으로 빠르게 확인할 수 있다. 먼저 기초통계량중 중앙값과 사분위수를 한 눈에 비교가 가능하며, 각 항목별로 이상치(아웃라이어)도 알 수 있다. 이 자료에서는 A직무와 B직무에서는 아웃라이어도 확인이 가능하다.

 

chat gpt에게 확인한 4분위수에 대한 설명은 다음과 같다.

사분위 범위(Interquartile Range, IQR)는 데이터의 중심 경향과 산포도를 나타내는 중요한 통계량 중 하나입니다. IQR은 제 1사분위수(Q1)와 제 3사분위수(Q3) 사이의 범위를 나타내며, 데이터의 중간 50% 범위를 나타냅니다.
사분위 범위는 다음과 같은 공식으로 계산됩니다:

                                                                          IQR = Q3 − Q1

여기서, Q1은 데이터를 크기순으로 정렬했을 때 하위 25%에 해당하는 값이고, Q3은 상위 25%에 해당하는 값입니다. 따라서 IQR은 전체 데이터의 중간 50% 범위를 나타내며, 이는 데이터의 퍼짐 정도를 측정하는 데 유용합니다.
IQR을 사용하면 데이터의 중심 경향이나 분포에 대한 정보를 파악할 수 있습니다. 특히 이상치(outlier)와 같은 극단적인 값이 존재할 때 평균과 달리 IQR은 이상치에 민감하지 않습니다. 이러한 특성으로 인해 IQR은 데이터의 퍼짐 정도를 더 정확하게 파악하는 데 사용됩니다.

또한, 박스플롯(Boxplot)에서 사용되는 주요한 요소 중 하나가 바로 IQR입니다. 박스플롯의 상자는 데이터의 제 1사분위수(Q1)와 제 3사분위수(Q3)를 나타내며, 이 사이의 길이가 바로 IQR입니다. 이를 통해 데이터의 분포와 중심 경향을 시각적으로 파악할 수 있습니다.

 

각 박스 안쪽에 그어진 선이 자료들의 50% 위치인 중앙값(median)을 나타내며, 박스의 위, 아래 가장자리가 각각 75%의 위치와 25% 위치를 나타낸다. 그리고 박스 바깥으로 이어진 세로선 끝과 직교하는 가로선은 제 1사분위 (25% 위치)에서 1.5 IQR을 뺀 위치와 제 3사분위 (75% 위치)에서 1.5 IQR을 더한 위치를 나타낸다. 그리고 이 범위를 벗어나는 수치는 이상치 (outlier)로 설정한다.

 

아웃라이어(이상치)란 일반적인 데이터 패턴에서 벗어나는 극단적인 값을 가진 데이터를 말한다. 다른 값들과는 크게 다른 값이거나 예외적인 패턴을 가지는 값일 수 있는데, 통계적 분석에서 데이터의 정확성과 해석에 영향을 미칠 수 있으므로 주의해서 해석해야 한다.

 

 

직무별 연봉 수준

box plot을 보면 직무별로 급여의 수준이 다르다는 것을 쉽게 확인할 수 있다. A직무가 가장 낮은 수준이고 B가 E보다 근소하게 높은 수준으로 최상 수준임을 알 수 있다. 하지만 E직무의 경우 이상치가 Q1을 벗어나는 하위 이상치가 3개가 있으므로 이들이 아니라면 중앙값은 E가 더 높을 수 있을 것 같다.

 

이상치는 분석과 예측을 하는데 편향이나 오류를 발생시킬 수 있으므로 처리를 하는 것이 좋은데, 이때는 도메인의 지식이나 데이터 특징에 따라 맞는 방법을 통해 제거하는 것이 좋다. 여기서는 단순하게 '첫 데이터 분포'를 기준으로 나타나는 이상치만을 제거하고 다시 boxplot을 그려본다.

 

기초 데이터셋 기준의 이상치를 제거했다

 

처음의 기초 데이터를 기준으로 관측되는 이상치를 제거하고 다시 직무별로 boxplot을 그려보았다. B직무와 E직무의 중앙값 차이가 더 줄어든 것을 확인할 수 있다. 하지만 단순하게 1Q와 3Q를 벗어난 값을 제거하다보니 새로운 이상치가 나타나게 된 것도 확인할 수 있었다.