HR애널리틱스 기록

[15일차] 파이썬으로 HR 데이터 분석 아이디어 3가지

노랑별이 2025. 5. 15. 07:00
반응형

데이터 분석을 배우기 시작했을 때, 가장 먼저 떠오른 질문은 "그럼 내가 뭘 분석할 수 있을까?"였다. 특히 HR 애널리스트가 되고 싶은 나에게 가장 자연스럽게 떠오른 영역은 근태, 이직, 성과 데이터였다. 단순히 수치를 보고 정리하는 데서 그치지 않고, 어떤 패턴이 있고, 어떤 행동을 예측할 수 있을까라는 질문으로 분석을 이어가는 연습을 하고 싶었다.

6개월간의 데이터 분석 부트캠프를 수료하면서 파이썬의 기초를 익혔고, 이제는 HR 데이터를 주제로 분석을 시도해보고 싶다. 전 직장 HR 부서에서 근무할 때는 데이터 활용의 기회가 제한적이었던 것이 늘 아쉬웠다. 오늘은 실제 데이터를 다룰 수 있는 그 날을 대비해, 파이썬으로 할 수 있는 근태/이직/성과 분석 아이디어를 정리해보려 한다.


1. 근태 데이터 분석 아이디어

분석 목적

  • 반복적인 지각/조퇴/결근 패턴을 식별해, 관리 대상 직원군 도출
  • 부서별/직급별 근무 태도 차이 파악
  • 장기 근속자와 단기 이직자의 근태 차이 비교

 

파이썬 분석 예시

  • groupby로 부서/직급별 근무 시간 평균 도출
  • 출퇴근 시간 데이터를 활용한 히스토그램 (근무 시작 시간 분포 시각화)
  • 이상치 탐지: 정규 근무시간보다 짧거나 긴 근무일 탐색 → IQR, z-score 적용
  • 결근률 상위 10% 직원 리스트 자동 도출
df['근무시간'] = df['퇴근시간'] - df['출근시간']
df['근무시간'] = df['근무시간'].dt.total_seconds() / 3600
avg_by_dept = df.groupby('부서')['근무시간'].mean()

# 출퇴근 시간 분포 시각화
import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(10, 6))
sns.histplot(df['출근시간'].dt.hour + df['출근시간'].dt.minute/60, bins=24)
plt.title('직원 출근 시간 분포')
plt.xlabel('시간')
plt.ylabel('인원수')
plt.show()
 

응용 목표 → seaborn으로 히트맵 구성 → 장기 근무자와 단기 이직자의 근태 패턴 비교하여 이직 예측의 힌트로 활용하고 싶다. 특히 시간대별, 요일별 근무 패턴의 변화가 이직 신호가 될 수 있는지 탐색해보고 싶다.


2. 이직 데이터 분석 아이디어

분석 목적

  • 이직자들의 공통점 도출 (연차, 평가점수, 근무유형, 교육 이수율 등)
  • 이직률이 높은 부서/직무/기간 식별
  • 예측 모델 기반 이직 가능성 스코어링

 

파이썬 분석 예시

  • 이직자와 잔존자 간 비교 (value_counts, groupby, t-test)
  • 분기별/연도별 이직률 변화 시각화
  • scikit-learn을 활용한 로지스틱 회귀분석 → 종속변수: 이직 여부(0/1), 독립변수: 근태점수, 성과점수, 교육이수횟수 등
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report

X = df[['근태점수', '성과점수', '교육이수횟수', '근속년수', '야근빈도']]
y = df['이직여부']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
model = LogisticRegression()
model.fit(X_train, y_train)

# 모델 평가
predictions = model.predict(X_test)
print(classification_report(y_test, predictions))

# 변수 중요도 확인
coefficients = pd.DataFrame({
    '변수': X.columns,
    '계수': model.coef_[0]
})
coefficients = coefficients.sort_values('계수', ascending=False)
 
 

응용 목표 → SHAP을 활용해 변수별 중요도 시각화 → HR 실무자에게 "이직 가능성이 높은 직원 리스트"를 제공하는 데 응용해보고 싶다. 그리고 더 나아가 이직 방지를 위한 실질적인 조치(교육, 면담, 보상 조정 등)의 효과를 예측하는 시뮬레이션도 구현해보고 싶다.


3. 성과 데이터 분석 아이디어

분석 목적

  • 고성과자들의 공통 특성 도출
  • 성과점수와 교육이수, 근태, 직급, 근속연수 간의 관계 분석
  • 부서별 평균 성과 비교

 

파이썬 분석 예시

  • correlation heatmap으로 변수 간 상관관계 분석
  • 성과점수 구간별 인원 분포 → histplot, cut 사용
  • pairplot을 활용한 변수 간 시각적 관계 확인
  • 평가 등급별 퇴사율 분석
import seaborn as sns
import matplotlib.pyplot as plt

# 상관관계 분석
corr = df[['성과점수', '근태점수', '교육이수횟수', '근속년수', '연차소진율']].corr()
plt.figure(figsize=(10, 8))
sns.heatmap(corr, annot=True, cmap='Blues', fmt='.2f')
plt.title('HR 변수 간 상관관계')
plt.show()

# 성과 등급별 분석
df['성과등급'] = pd.cut(df['성과점수'], bins=[0, 60, 75, 85, 100], 
                    labels=['저성과', '중하성과', '중상성과', '고성과'])
performance_counts = df['성과등급'].value_counts().sort_index()
 

응용 목표 → 고성과자 추천 모델 개발 (학습형 모델로 고성과자 패턴 파악) → 성과 예측에 영향을 주는 '근무태도'와 '교육참여도'를 정량화하여 인사 정책에 제안하고 싶다. 특히 저성과자가 중간 성과로, 중간 성과자가 고성과로 발전하기 위한 행동 패턴을 파이썬으로 모델링해보고 싶다.


마치며

지금은 실제 HR 데이터를 직접 분석할 수는 없지만, 가상의 데이터를 만들어 분석 흐름을 연습하고 있다. 최근에는 pandas-profiling, sweetviz, ydata-profiling 같은 툴을 활용해 데이터를 자동 요약하고, 변수 간 관계를 빠르게 파악하는 연습도 병행하고 있다.

나는 단순히 코딩을 잘하는 분석가가 아니라, 사람을 이해하고 조직을 개선할 수 있는 HR 분석가가 되고 싶다. 근태, 이직, 성과라는 3가지 영역은 HR 전략의 핵심이며, 파이썬은 그 전략을 데이터로 풀어낼 수 있는 강력한 도구라고 생각한다.

앞으로는 이런 분석 아이디어를 하나씩 실제 프로젝트로 발전시켜 포트폴리오를 구성할 계획이다. 분석은 결국 '문제를 해결하는 과정'이고, 나는 그 문제를 사람과 데이터의 언어로 풀어낼 수 있는 사람이 되고 싶다. HR 부서에서의 경험과 데이터 분석 부트캠프에서 배운 기술을 융합하여, 조직의 인재 관리 의사결정에 실질적인 도움이 되는 인사이트를 제공하는 HR 애널리스트로 성장해 나갈 것이다.

 

반응형