People-Analytics201

HR 장면에서의 생존분석 본문

Theory/Statistics

HR 장면에서의 생존분석

kimna-hr 2024. 1. 20. 23:27

※ 해당 콘텐츠는 HR에 생존분석을 적용하려는 인사담당자들을 위해 작성되었습니다.

[목차]

01 생존분석 소개

02 R로 실습해보기 (E-book 기반)

03 생존분석 사례 (python)

04 HR 데이터 분석 실사례

05 연구사례

 


작성/발표자 : 김나경

01 생존분석 소개

1. HR 장면에서 생존분석의 필요성

HR 분야에서 데이터 분석은 조직의 전략적 의사결정에 중요한 역할을 하고 있다. 여러 가지 분석방법 중 특히 생존 분석은 퇴직률과 같은 핵심 지표를 예측하고, 조직의 인력 유지 등에 도움을 줄 수 있는 강력한 분석방법이다.

예를 들어, 조직은 인력 계획을 세울 때 생존분석을 활용할 수 있다. 미래의 퇴직 가능성을 예측하여 채용 등의 인력 계획을 수립할 수 있게 해준다. 또한, 어떤 요인이 퇴직을 유도하는지 파악하여 필요한 인력을 사전에 확보할 수 있는 대응 방안을 세울 수 있게 해준다. 더 나아가 조직 내 어떤 집단에서 퇴직율이 높은지 비교 분석하여 인력 유지에 어려움을 겪고 있는 부분을 진단할 수 있게 해준다.

그럼, 생존분석이란 무엇인지 더 자세히 알아보도록 하자.

2. 생존분석이란

생존 분석은 어떤 사건이 발생하기까지의 시간을 통계적으로 분석하는 방법이다. 생존 분석의 핵심 아이디어는 어떤 사건이 언제 발생할지에 대한 확률을 계산하는 것이다. 예를 들어, 퇴직이나 부서이동 등과 같은 이벤트가 발생하기까지 걸리는 시간을 알아보려고 할 때 사용된다.

2.1 선형회귀모형과의 차이점

기존 HR 장면에서 가장 많이 활용되고 있는 회귀모형과의 비교를 통해서 생존분석이 가지는 특징과 장점에 대해서 알아보고자 한다. 생존 분석과 회귀 모형은 분석에 사용하는 데이터의 특성에서 차이가 있다.

2.1.1 데이터의 특성 1 - 시점

  • 생존 분석 : 사건이 발생한 시간을 중점으로 데이터를 수집하여 분석한다. 이를 통해 각 시점에서의 사건 발생 확률을 계산할 수 있으며, 이러한 확률에 영향을 미치는 변수를 투입할 수 있다. 즉, 시간에 따른 사건의 발생 또는 미발생을 예측할 수 있다.
  • 선형 회귀 : 특정 시점의 관심 변인 데이터를 수집하여 분석한다. 독립변인의 종속변인 예측력을 확인할 수 있지만, 데이터가 수집된 시점에 한정된 결과라는 한계가 있다. 즉, 사건이 발생하는 시간에 대한 정보는 알 수 없다.

2.1.2 데이터의 특성 2 - 절단성

  • 생존 분석 : 생존 분석은 특정 시점에서 데이터를 수집하는 것이 아닌, 각 개인마다 해당 사건이 발생한 시점의 데이터를 활용하기 때문에 데이터 손실 없이 분석할 수 있다는 장점이 있다.
  • 선형 회귀 : 특정 시점에서의 데이터를 활용한 분석이기 때문에 수집되지 않은 데이터는 관심 표본에서 제외된다. 이때 발생하는 데이터의 손실은 추론의 정확성과 검증력에 영향을 미칠 수 있다.

이러한 차이로 살펴볼 수 있는 생존 분석의 장점은 시간에 따른 사건의 발생을 예측할 수 있다는 점이다.

2.2 생존분석의 2가지 모델

생존분석에는 크게 2가지 통계적 모델이 있다: Kaplan-Meier 생존 함수, Cox 비례위험 회귀모형. 차례대로 각각의 모델과, 둘의 차이를 살펴보자.

2.2.1 Kaplan-Meier 생존 함수

Kaplan-Meier 생존 함수는 시간에 따른 생존 확률을 추정하는 통계적 방법이다. 사건이 발생하는 시간을 고려하는 경우 유용한 방법이다. 특정 시점에서의 생존 확률은 그 시점까지 사건이 발생하지 않은 관측치의 비율로 계산한다. 수학적으로 살펴보면 다음과 같다.

  • t는 시간
  • n은 해당 시간까지 생존한 개체의 수
  • d는 해당 시간에서 사건이 발생한 개체의 수
  • ni는 t 시점 이전에 이벤트가 발생하지 않은 개체의 수

Kaplan-Meier 생존 함수를 사용하면 집단 간 생존함수 차이 검증이 가능하다. 차이 검증에는 로그-랭크 테스트 (Log-Rank Test)가 주로 활용되는데, 두 개 이상의 생존 곡선이 통계적으로 유의미한 차이가 있는지 검정하는 방법 중 하나이다. 이러한 검증을 통해, 관심 집단 간의 생존함수 차이를 검증할 수 있다. 예를 들어 직군별 퇴직률 차이검증을 통해 가장 높은 퇴직률을 보이는 직군에 집중된 인력 유지 계획을 세울 수 있게 도와준다.

참고 youtube : https://youtu.be/L_ziqYhksG8?si=WFWgE3jaiATamnKr

2.2.2 Cox 비례위험 회귀모형

Cox 모델은 시간에 따른 사건 발생 위험률을 추정하고, 이러한 위험률에 영향을 미치는 여러 변수들을 투입하여 그 영향력을 추정하는 방법이다. Cox 모델의 위험률 함수를 수학적으로 살펴보면 다음과 같다.

  • λ(t): 특정 시간 t에서의 위험률(hazard rate)
  • λ0(t): 기준 위험률, 즉 모든 설명 변수가 0일 때의 위험률
  • X1,X2,…,Xp: 설명 변수들
  • β1,β2,…,βp: 각 설명 변수의 회귀 계수

위 수학공식에서 exp(β)로 표현되는 위험 비율 부분이 핵심인데, 만약 exp(β)=1이라면 해당 변수가 생존에 영향을 미치지 않는다는 것을 의미한다. exp(β)>1이면 해당 변수가 생존에 부정적인 영향을, exp(β)<1이면 긍정적인 영향을 미침을 나타낸다. 구체적으로, 각 변수 Xi에 대한 회귀 계수가 βi일 때, 이 변수의 영향을 나타내는 exp(βi)는 해당 변수가 한 단위 증가할 때의 위험 비율을 의미한다. 이를 통해 위험 비율이 어떻게 변하는지를 알 수 있다.

다시 정리하면, Cox 모델은 각 개체의 위험률을 측정하고, 이를 설명 변수들의 가중합으로 모델링하여 어떤 변수가 사건 위험을 어떻게 변화시키는지를 파악한다. 이로써 각 변수가 생존 곡선에 미치는 영향을 알 수 있게 된다.

이와 같은 Cox 모형은 비례위험 가정을 기반으로 하는데, 비례위험 가정이란 각 변수의 위험비율이 시간에 따라 일정하다는 것을 의미한다. 즉, 모든 시점에서 변수들의 영향이 고정되어 있다고 가정하는 것이다. 만약 비례위험 가정이 깨진다면, 즉 위험 비율이 시간에 따라 변한다면, Cox 모델이 해당 표본에 적절하지 않다는 것을 의미한다. 따라서 Cox모델의 유효성을 평가할 때는 비례위험 가정이 충족되는지 확인하는 것이 중요하다.

모델의 유효성을 확인하는 방법은 여러 가지가 있는데, 그중 하나는 쇤펠트(Schoenfeld) 잔차를 활용하는 것이다. 잔차가 시간과 무관하다는 귀무가설에 대한 통계적 검정을 시행하여 각각의 변수별로 가설을 기각하는지 여부를 확인하여 비례위험 충족여부를 확인할 수 있다. 이 방법 외에도, ① 각 그룹의 Kaplan-Meier 생존 곡선을 그린 후, 시간에 따른 생존 곡선이 서로 교차하지 않는지 확인하는 방법 (교차가 없으면 비례위험 가정을 만족할 가능성이 높음), ② log-log plot(시간에 따른 위험률 로그 그래프)를 그려 직선을 나타내는지 확인하는 방법 (직선을 벗어날 경우 비례위험 가정이 위배되었을 가능성이 높음) ③ Log-Rank Test를 통해 비례위험 가정 위배 가능성을 확인하는 방법(R이나 파이썬 패키지 활용) 등을 통해 확인할 수 있다.

참고 youtube ) https://youtu.be/DpZoRqqDgXA?si=peczbhYXQySSDpfV

2.2.3 Kaplan-Meier와 Cox 모형 비교

  • 목적
    • Kaplan-Meier 생존 함수 : 시간에 따른 누적 생존 확률을 추정
    • Cox 비례위험 회귀모형 : 다양한 설명 변수들이 시간에 따른 사건 발생에 미치는 영향 추정
  • 시간 처리 방식
    • Kaplan-Meier 생존 함수 : 시간 구간별로 각각의 생존 곡선을 그리고 이를 누적하여 생존 확률을 계산
    • Cox 비례위험 회귀모형 : 시간에 따른 위험 비율을 산출하며, 이는 각 시점에서의 사건율을 나타냄
  • 가정
    • Kaplan-Meier 생존 함수 : 특별한 가정을 하지 않고, 비모수적인 방법으로 생존 확률을 추정
    • Cox 비례위험 회귀모형 : 비례위험 가정을 가지며, 각 변수의 위험 비율이 시간에 따라 일정하다고 가정
  • 결과 해석
    • Kaplan-Meier 생존 함수 : 생존 곡선을 시각적으로 비교하여 집단 간의 생존 확률 차이를 확인
    • Cox 비례위험 회귀모형 : 회귀 계수를 통해 각 변수의 영향력과 방향을 알 수 있으며, 그룹 간의 위험 비율을 비교할 수 있음

이와 같이 두 방법은 특정한 분석 목적에 따라 선택되며, 종종 함께 사용되어 데이터를 더욱 다각도로 이해하는 데에 활용할 수 있다.

2.3 생존분석 확장 모형 소개

2.3.1 Frailty model

cox 모형은 다양한 형태로 확장되는데, 그중 하나가 Frailty model이다. Frailty model은 cox model의 변종 model로, cox 분석이 시간에 따른 특정 사건 발생 확률에 영향을 미치는 요인들을 확인하는 분석이었다면, Frailty model은 기존 cox 분석에서 Frailty라는 변수를 모형에 투입함으로써 랜덤한 개인차를 통제하는 효과를 가져온다. 여기서 Frailty란, 특정 인물 혹은 집단 간 존재하는 잠재적인 특성을 의미하는데, 관측이 불가능하고 무엇이라 설명할 수 없는 랜덤한 특성을 말한다. 말 그대로 설명할 수 없는 특성을 통계적으로 통제하여 내 관심변인이 생존율에 어떤 영향을 미치는지 더 정확하게 파악하는 방법인 것이다.

단, Frailty model에서 Frailty 변인이 너무 많은 설명양을 차지하게 되면 모델이 과적합 될 수 있는데, 이를 예방하기 위해 Frailty penalized 분석을 적용할 수 있다. Frailty 변인을 통계적으로 추정할 때 페널티를 줌으로써 과적합되지 않도록 조정해 주는 것으로, 조정 방법에는 크게 2가지가 있다 : Lasso 방법, Ridge 방법

2.3.2 비례위험가정이 깨졌을 때의 모형

  • 시간-가중 회귀모델 (Time-Dependent Covariate) : 시간-가중 회귀모델은 특정 설명 변수의 효과가 시간에 따라 변할 수 있음을 허용한다. 이 모델은 특정 시간 동안의 이벤트 또는 조건이 나타날 때 해당 시점에서의 설명 변수 값을 변경할 수 있다. 예를 들어, 직원의 경력 개발 혹은 승진이라는 이벤트가 있을 때, 이벤트가 발생한 이후 시간에 따른 이직률이 변하는지 분석할 때 적용할 수 있다.
  • 구간적 효과 모델 (Piecewise Constant Hazard) : 구간적 효과 모델은 전체 분석 기간을 여러 구간으로 나누고, 각 구간에서 위험 비율을 상수로 가정하는 방법이다. 이 모델은 특정 시간 구간에서 위험률이 일정하다는 가정을 기반으로 하며, 각 구간에서는 독립된 위험 비율이 추정된다. 위험률이 시간에 따라 크게 변하는 경우나 생존 곡선이 특정 시점에서 꺾이거나 비선형적인 형태를 가질 때 활용할 수 있다. 예를 들어 회사 인수 합병 단계에 따른 퇴직률 변화 등에 적용해 볼 수 있다.

이러한 다양한 생존 분석 확장 모델들은 더 복잡한 상황에서의 생존율 추정 및 영향 요인을 분석하는데 도움을 준다. 다만, 내가 분석하고자 하는 데이터의 특성 및 상황에 대한 이해력을 바탕으로 적절한 모델을 선택할 수 있어야 할 것이다.


작성/발표자 : 강지천

02 R로 실습해보기 (E-book 기반)

E-BOOK 출처 : https://peopleanalytics-regression-book.org/survival.html

1. 데이터 가져오기

가져온 데이터는 1년 동안 다양한 고용 분야에 고용된 약 3,800명의 개인을 대상으로 한 연구 결과입니다. 각 개인들은 자신의 직업에 대한 감정을 평가하도록 요청받았으며 1년 동안 매달 추적하여 그들이 여전히 같은 직장에 있는지 확인되었습니다. 한 개인이 퇴사를 한 경우 연구기간 동안 더 이상 추적 관찰되지 않습니다.

# if needed, get job_retention data
url <- "<http://peopleanalytics-regression-book.org/data/job_retention.csv>"
job_retention <- read.csv(url)
head(job_retention)
##   gender                  field  level sentiment intention left month
## 1      M      Public/Government   High         3         8    1     1
## 2      F                Finance    Low         8         4    0    12
## 3      M Education and Training Medium         7         7    1     5
## 4      M                Finance    Low         8         4    0    12
## 5      M                Finance   High         7         6    1     1
## 6      F                 Health Medium         6        10    1     2
  • gender: 연구 대상자의 성별
  • field: 고용 분야
  • levelLowMediumHigh: 연구의 시작 단계에서 위치의 수준 -Low, Medium 아니면 High
  • sentiment: 연구 초기의 정서 점수는 1~10점 척도로 보고되었으며, 1점은 극도로 부정적인 정서를, 10점은 극도로 긍정적인 정서를 나타냄
  • left: 개인이 마지막 후속 조치 때와 같이 직장을 떠났는지 여부를 나타내는 이진 변수
  • month: 마지막 근속 월

2. R 패키지 활용

'생존'을 직업을 유지하는 것으로 정의(퇴사할 경우 생존 종료)하고 있습니다. survival R의 패키지를 사용하면 데이터의 생존율을 이해하기 쉬운 형식으로 쉽게 구성할 수 있습니다. [Surv()](<https://rdrr.io/pkg/survival/man/Surv.html>) 는 각 기간의 생존율을 추적하는 함수입니다.

#install.packages('survival')
library(survival)

# create survival object with event as 'left' and time as 'month'
retention <- Surv(event = job_retention$left, 
                  time = job_retention$month)

# view unique values of retention
unique(retention)
##  [1]  1  12+  5   2   3   6   8   4   8+  4+ 11  10   9   7+  5+  3+  7   9+ 11+ 12  10+  6+  2+  1+

해석 : 개인이 직장을 떠날 경우 재직 개월 수를 표시하고 있으며, 계속 근무하는 경우 재직 개월 수에 마지막 레코드임을 나타내는 '+'표시

2.1 Kaplan-Meier

[survfit()](<https://rdrr.io/pkg/survival/man/survfit.html>) 함수를 사용하면 데이터의 여러 그룹에 대한 Kaplan-Meier 생존 추정치를 계산하여 비교할 수 있습니다. 아래 코드를 통해 성별에 따라 생존 여부를 살펴보도록 하겠습니다.

# kaplan-meier estimates of survival by gender
kmestimate_gender <- survival::survfit(
  formula = Surv(event = left, time = month) ~ gender, 
  data = job_retention
)

summary(kmestimate_gender)
## Call: survfit(formula = Surv(event = left, time = month) ~ gender, 
##     data = job_retention)
## 
##                 gender=F 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     1   1167       7    0.994 0.00226        0.990        0.998
##     2   1140      24    0.973 0.00477        0.964        0.982
##     3   1102      45    0.933 0.00739        0.919        0.948
##     4   1044      45    0.893 0.00919        0.875        0.911
##     5    987      30    0.866 0.01016        0.846        0.886
##     6    940      51    0.819 0.01154        0.797        0.842
##     7    882      43    0.779 0.01248        0.755        0.804
##     8    830      47    0.735 0.01333        0.709        0.762
##     9    770      40    0.697 0.01394        0.670        0.725
##    10    718      21    0.676 0.01422        0.649        0.705
##    11    687      57    0.620 0.01486        0.592        0.650
##    12    621      17    0.603 0.01501        0.575        0.633
## 
##                 gender=M 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     1   2603      17    0.993 0.00158        0.990        0.997
##     2   2559      66    0.968 0.00347        0.961        0.975
##     3   2473     100    0.929 0.00508        0.919        0.939
##     4   2360      86    0.895 0.00607        0.883        0.907
##     5   2253      56    0.873 0.00660        0.860        0.886
##     6   2171     120    0.824 0.00756        0.810        0.839
##     7   2029      85    0.790 0.00812        0.774        0.806
##     8   1916     114    0.743 0.00875        0.726        0.760
##     9   1782      96    0.703 0.00918        0.685        0.721
##    10   1661      50    0.682 0.00938        0.664        0.700
##    11   1590     101    0.638 0.00972        0.620        0.658
##    12   1460      36    0.623 0.00983        0.604        0.642

해석 : 'n.risk'는 해당 시점에서 위험에 노출된 개체 수, 'n.event'는 해당 시점에서 발생한 이벤트(퇴사)의 수입니다.

  • 여성(gender=F)의 경우, 1개월 후 생존율은 99.4%, 12개월 후에는 60.3%입니다.
  • 남성(gender=M)의 경우, 1개월 후 생존율은 99.3%, 12개월 후에는 62.3%입니다.

여성과 남성 모두 시간이 지남에 따라 생존율(직장을 유지하는 비율)이 감소합니다. 하지만 전반적으로 남성이 여성보다 더 높은 생존율을 보이는 경향이 있습니다.

추가적으로 개인의 정서(sentiment 열)가 생존 가능성에 영향을 미치는지 가정해 보겠습니다. 아래는 직원의 정서에 따라 그룹을 두 개(sentiment가 7 이상인경우 High, 나머지는 Not High)로 나누어 생존율(퇴사)을 비교한 사례입니다.

# create a new field to define high sentiment (>= 7)
job_retention$sentiment_category <- ifelse(
  job_retention$sentiment >= 7, 
  "High", 
  "Not High"
)

# generate survival rates by sentiment category
kmestimate_sentimentcat <- survival::survfit(
  formula = Surv(event = left, time = month) ~ sentiment_category,
  data = job_retention
)

summary(kmestimate_sentimentcat)
## Call: survfit(formula = Surv(event = left, time = month) ~ sentiment_category, 
##     data = job_retention)
## 
##                 sentiment_category=**High** 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     1   3225      15    0.995 0.00120        0.993        0.998
##     2   3167      62    0.976 0.00272        0.971        0.981
##     3   3075     120    0.938 0.00429        0.929        0.946
##     4   2932     102    0.905 0.00522        0.895        0.915
##     5   2802      65    0.884 0.00571        0.873        0.895
##     6   2700     144    0.837 0.00662        0.824        0.850
##     7   2532     110    0.801 0.00718        0.787        0.815
##     8   2389     140    0.754 0.00778        0.739        0.769
##     9   2222     112    0.716 0.00818        0.700        0.732
##    10   2077      56    0.696 0.00835        0.680        0.713
##    11   1994     134    0.650 0.00871        0.633        0.667
##    12   1827      45    0.634 0.00882        0.617        0.651
## 
##                 sentiment_category=**Not High** 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     1    545       9    0.983 0.00546        0.973        0.994
##     2    532      28    0.932 0.01084        0.911        0.953
##     3    500      25    0.885 0.01373        0.859        0.912
##     4    472      29    0.831 0.01618        0.800        0.863
##     5    438      21    0.791 0.01758        0.757        0.826
##     6    411      27    0.739 0.01906        0.703        0.777
##     7    379      18    0.704 0.01987        0.666        0.744
##     8    357      21    0.662 0.02065        0.623        0.704
##     9    330      24    0.614 0.02136        0.574        0.658
##    10    302      15    0.584 0.02171        0.543        0.628
##    11    283      24    0.534 0.02209        0.493        0.579
##    12    254       8    0.517 0.02218        0.476        0.563

해석 :

  • 'High' 만족도 범주의 경우, 1개월 후 생존율은 99.5%, 12개월 후에는 63.4%입니다.
  • 'Not High' 만족도 범주의 경우, 1개월 후 생존율은 98.3%, 12개월 후에는 51.7%입니다.

만족도가 높은 직원들이 만족도가 높지 않은 직원들에 비해 직장을 더 오래 유지하는 경향이 있습니다. 이는 높은 만족도가 직장 유지율과 긍정적인 관계가 있음을 의미할 수 있습니다.

아래 survminer 패키지를 활용한 시각화 그래프를 통해 정서가 높은 사람일수록 생존율이 지속적으로 높아지는 그룹 간 차이를 쉽게 확인할 수 있습니다.

#install.packages('survminer')
library(survminer)

# show survival curves with p-value estimate and confidence intervals
survminer::ggsurvplot(
  kmestimate_sentimentcat,
  pval = TRUE,
  conf.int = TRUE,
  palette = c("blue", "red"),
  linetype = c("solid", "dashed"),
  xlab = "Month",
  ylab = "Retention Rate"
)

2.2 Cox proportional hazard regression models

Cox 비례 위험 회귀 모델은 생존 시간에 영향을 미치는 여러 변수들의 상대적 중요성을 평가할 수 있습니다. 시간에 따라 변하는 위험률을 모델링하며, 시간에 따라 변하지 않는 위험 비율(즉, 비례 위험 가정)을 가정(전제)합니다.

  1. 비례 위험 가정: 모델은 각 개체의 위험률이 시간에 따라 다른 개체의 위험률과 일정한 비율을 유지한다고 가정합니다. 즉, 특정 변수의 영향은 시간이 지나도 변하지 않습니다.
  2. 시간-의존적이지 않은 변수: 모델은 시간에 따라 변하지 않는 변수들(ex. 성별, 인종, 지역)을 다룹니다.
  3. 위험률 함수: Cox 모델은 기저 위험률(base hazard function)을 명시적으로 모델링하지 않고, 대신 위험률의 상대적 변화에 중점을 둡니다. 이는 다양한 변수들이 위험률에 미치는 상대적 영향을 추정하는 데 유용합니다.
  4. 다변량 분석: 여러 독립변수들을 동시에 고려하여, 각 변수가 다른 변수들의 효과를 조절한 상태에서 생존 시간에 미치는 영향을 평가할 수 있습니다.
  5. 결과 해석: Cox 모델의 결과는 해저드 비율(Hazard Ratio, HR)로 표현됩니다. HR이 1보다 크면 위험률이 증가함을, 1보다 작으면 위험률이 감소함을 의미합니다.
# run cox model against survival outcome
cox_model <- survival::coxph(
  formula = Surv(event = left, time = month) ~ gender + 
    field + level + sentiment,
  data = job_retention
)

summary(cox_model)
## Call:
## survival::coxph(formula = Surv(event = left, time = month) ~ 
##     gender + field + level + sentiment, data = job_retention)
## 
##   n= 3770, number of events= 1354 
## 
##                            coef exp(coef) se(coef)      z Pr(>|z|)    
## genderM                -0.04548   0.95553  0.05886 -0.773 0.439647    
**## fieldFinance            0.22334   1.25025  0.06681  3.343 0.000829 *****
**## fieldHealth             0.27830   1.32089  0.12890  2.159 0.030849 ***  
## fieldLaw                0.10532   1.11107  0.14515  0.726 0.468086    
## fieldPublic/Government  0.11499   1.12186  0.08899  1.292 0.196277    
## fieldSales/Marketing    0.08776   1.09173  0.10211  0.859 0.390082    
## levelLow                0.14813   1.15967  0.09000  1.646 0.099799 .  
## levelMedium             0.17666   1.19323  0.10203  1.732 0.083362 .  
**## sentiment              -0.11756   0.88909  0.01397 -8.415  < 2e-16 *****
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                        exp(coef) exp(-coef) lower .95 upper .95
## genderM                   0.9555     1.0465    0.8514    1.0724
## fieldFinance              1.2502     0.7998    1.0968    1.4252
## fieldHealth               1.3209     0.7571    1.0260    1.7005
## fieldLaw                  1.1111     0.9000    0.8360    1.4767
## fieldPublic/Government    1.1219     0.8914    0.9423    1.3356
## fieldSales/Marketing      1.0917     0.9160    0.8937    1.3336
## levelLow                  1.1597     0.8623    0.9721    1.3834
## levelMedium               1.1932     0.8381    0.9770    1.4574
## sentiment                 0.8891     1.1248    0.8651    0.9138
## 
## Concordance= 0.578  (se = 0.008 )
## Likelihood ratio test= 89.18  on 9 df,   p=2e-15
## Wald test            = 94.95  on 9 df,   p=<2e-16
## Score (logrank) test = 95.31  on 9 df,   p=<2e-16

해석 :

  1. **coef**는 각 변수의 회귀 계수를 나타냅니다. 이 값이 양수이면 이탈할 가능성이 증가함을, 음수이면 위험 감소를 의미합니다.
  2. **exp(coef)**는 위험비로, 각 변수가 한 단위 증가할 때 위험(이탈 확률)이 얼마나 변하는지를 의미합니다. 1보다 크면 위험이 증가, 1보다 작으면 감소합니다.
  3. 재무(1.2502)나 건강 분야(1.3209)에서 일하는 것이 연구 기간 동안 이탈할 가능성이 상당히 높고, 감정(0.8891)이 높을수록 이탈할 가능성이 현저히 낮을 수 있습니다.
  4. 각 입력 변수와 관련된 상대적인 승산비. 예를 들어, 감정에서 한 번의 가산점은 이탈할 확률을 ~11% 감소시킵니다. 포인트가 1점 줄어들면 이탈 확률이 ~12% 증가합니다.
  5. Concordance*는 0.578으로 모델이 중간 수준의 예측 능력을 가지고 있음을 의미합니다.
  6. 모델 적합성 테스트: 세 가지 테스트(Likelihood ratio test, Wald test, Score (logrank) test) 모두 유의한 p-값(<2e-16)을 보여줍니다. 이는 모델이 데이터에 잘 적합하다는 것을 나타냅니다.

*Concordance: 모델이 데이터를 얼마나 잘 예측하는지를 나타내는 지표(0.5~0.7 예측력 낮음 / 0.7~0.9 양호한 예측력 / 0.9 이상 매우 우수한 예측력)

Cox 비례 위험 모델의 결론을 내리기 전에 비례 위험 가정을 확인하는 것이 중요합니다. 이 가정의 가장 일반적인 테스트는 Schoenfeld 잔차를 사용하며, 이는 비례 위험 가정이 유지되는 경우 시간과 무관할 것으로 예상됩니다. [cox.zph()](<https://rdrr.io/pkg/survival/man/cox.zph.html>) 에서 기능하는 survival 패키지를 활용했습니다.

[참고] 비례위험가정 충족/미충족 사례 : 직원의 퇴사와 퇴사 요인 분석

급여와 근속연수가 퇴사가능성에 영향을 미친다고 나타났을 때, 비례위험가정을 충족/미충족 하게 되는 사례는 아래와 같다.

  • 비례위험가정 충족 : 급여가 퇴사가능성에 영향을 미친다고 확인될 때, 이러한 영향은 시간이 지남에 따라 변하지 않고 일정하게 유지된다. 즉, 급여가 높은 직원의 퇴사 위험이 급여가 낮은 직원의 퇴사 위험의 두 배라고 확인된다면, 이 요인의 영향은 시간 변화에 상관없이 일정하게 유지된다고 해석한다.
  • 비례위험가정 미충족 : 근속연수가 퇴사가능성에 미치는 영향이 시간이 지남에 따라 변하게 된다면 비례위험가정이 충족되지 않는다. 이 경우, 초기에는 근속이 짧은 직원의 퇴사 위험이 높지만 시간이 지남에 따라 위험이 급격히 감소하여 긴 근속을 가진 직원과 비교했을 때, 두 그룹 간의 위험 비율이 일정하지 않다. 이런 경우 모델 결과를 해석하거나 예측하기가 어려워진다. 비례위험가정이 충족되지 않는다고 확인될 경우, 특정 조건을 추가한 확장 모형으로 분석해 볼 수 있다(아래 생존분석 확장 모형에서 소개).
(ph_check <- survival::cox.zph(cox_model))
##            chisq df    p
## gender     0.726  1 0.39
## field      6.656  5 0.25
## level      2.135  2 0.34
## sentiment  1.828  1 0.18
## GLOBAL    11.156  9 0.27

해석 :

모델에 포함된 변수들이 개별적으로나 전체적으로 직장 유지 시간에 대해 유의미한 통계적 영향을 미치지 않는다는 것을 보여줍니다. 아래 그래프를 통해서도 확인할 수 있습니다.

survminer::ggcoxzph(ph_check, 
                    font.main = 10, 
                    font.x = 10, 
                    font.y = 10)

해석 :

시간에 따른 통계적 추정치인 베타(beta) 계수를 나타내는 산점도와 이를 둘러싼 신뢰구간을 나타내는 그래프입니다. 각 그래프의 제목 옆에 있는 숫자는 각 개별 검정의 p-값을 나타내며, 이는 회귀모델의 비례 위험 가정이 유지되는지를 테스트하는 데 사용됩니다. p-값이 클수록 비례 위험 가정이 유지될 가능성이 높습니다.

네 개의 그래프는 다음과 같은 네 가지 다른 변수에 대한 베타 계수를 시간에 따라 보여줍니다:

  1. 성별에 대한 베타 (beta for gender)
  2. 직업 분야에 대한 베타 (beta for field)
  3. 수준에 대한 베타 (beta for level)
  4. 감정(에 대한 베타 (beta for sentiment)

각 그래프의 x축은 '시간'을 나타내며, y축은 각각의 변수에 대한 베타 계수의 값을 나타냅니다. 빨간색 점들은 개별 관측값을, 점선은 95% 신뢰구간을 나타냅니다. 신뢰구간이 넓을수록 추정의 불확실성이 크다는 것을 의미합니다.

이러한 그래프는 생존분석이나 시간 의존적 데이터를 다루는 다른 통계적 모델링에서 중요한 정보를 제공합니다. 예를 들어, 성별이나 감정과 같은 변수가 시간이 지남에 따라 어떤 영향을 미치는지를 평가할 수 있습니다.


작성/발표자 : 김수현

03 생존분석 사례 (python)

소개사례 : https://www.kaggle.com/code/gunesevitan/survival-analysis/notebook

html 콘텐츠 : https://drive.google.com/file/d/1XXSwRG01C8IUWXeDOnztu55AryfXojfs/view

 

survival_analysis_soohyun_240120.html

 

drive.google.com


작성/발표자 : 한DH

04 HR 데이터 분석 실사례

[생존분석을 활용한 관광기업 A의 고용유지 관련 연구]

1. 분석 내용 요약

본 연구는 기업의 직원 고용유지에 미치는 영향 요인을 탐색하는 것에 목적이 있다. 인력 특성 요인, 경험 데이터, 정성적 데이터 등을 종합적으로 분석하였다. 이를 바탕으로 생명표 분석과 Cox 회귀모형 분석을 사용하여 취업 후 고용유지율 분석 및 고용유지에 영향을 미치는 여러 변수들을 동시에 알아보고 이 결과를 바탕으로 주요 HR 의사결정 방법론에 대해 연구하였다. 선행연구에서의 불특정 다수의 단기간 설문조사를 통한 생존요인분석에 그치지 않고 개별 기업의 인사데이터를 바탕으로 인재유지 관리에 적합한 전략을 제시했다는 측면에서 실무적 의의가 있다.

2. 가설과 연구문제

가설 1. 남성이 여성보다 고용유지 기간이 길 것이다.

가설 2. 고성과자는 이직 등으로 인해 고용유지 기간이 짧을 것이다.

연구문제. 고용유지에 뚜렷하게 영향을 미치는 특성요인이 있을 것이다.

3. 연구대상 및 데이터 수집

본 연구의 연구대상은 한국의 대형 관광기업인 A사의 직원들이다. A사는 1990년대에 설립되어 국내외 여행, 항공, 호텔, 테마상품 등 다양한 관광서비스를 제공하는 기업으로 조사시점(2021.1) 당시 2,000명 이상의 정규 직원수를 보유하고 있다. 본 연구에서는 A사의 최근 15년 내 재직자와 퇴직자 5,000명 이상의 직원을 무작위로 추출하여 연구대상으로 선정하였다.

본 연구에서 수집한 데이터는 다음과 같다.

(1) 데이터 크기 : Excel 5,340행, 24개 Features

(2) 전처리 및 변수설명 : 결측치 제거 후 2,390행 / 24열 작업, 레이블인코딩(카테고리 피처를 숫자 값으로 변환)

(3) 인재등급 별 인원 : S: 71, X: 36, C: 55, D: 28, A: 2,200

변수설명

atn 재직여부 조사시점 당시 0=재직, 1=퇴직
age 연령 조사시점 당시 연령
sex 성별 0=남성, 1=여성
Prd_n 근속기간 조사시점 기준으로 입사시점과 차이(연)
ovs 해외대학 해외소재 대학 졸업
tor 관광전공 관광학 관련 전공 여부
asl 인사평가 등급 0=없음, 1=최저평가, 2=저평가, 3=보통, 4=고평가, 5=최고평가
pun 징계등급 0=없음, 1=감봉, 2=정직 이상
hom 재택근무 0=없음, 1=0.5~1년, 2=1년 초과
rew 포상 0=없음, 1=1회 , 2=2회 이상
imp 자기개발 교육훈련, 직무개발, 자기계발 기록 0=없음, 1=보통, 2=최우수

4. 실험 및 결과

본 연구에서는 고용유지에 미치는 영향 요인을 확인하기 위해 생존분석(Survival Analysis)을 활용하였다. 연구 대상의 특성을 파악하기 위해 빈도분석을 실시한 후, Keplan-Meier Estimation검정을 실시하여 관찰 대상 그룹에 속한 인원 수와 고용유지 인원의 구간별 생존율을 구하고 마지막으로 고용유지에 영향을 미치는 요인별 검증을 위해 콕스비례위험회귀모형(Cox proportional hazards regression)을 적용하여 분석했다. 콕스비례위험회귀모형은 생존분석의 일종으로 생존기간과 관련된 함수나 생존시간에 대한 전제조건을 요구하지 않는 비모수적인 생존분석 방법이지만 모형에 근거하여 회귀계수를 추정하므로 모수적 방법과 유사한 분석이 가능하다. 특히 생존율의 차이를 상대위험도라는 수치로 계량화 할 수 있어 해석에 유리하다는 장점이 있다. 본 연구에서는 R 패키지 활용하여 생존분석을 진행하고 survival 패키지를 사용하여 데이터의 생존율을 이해하기 쉬운 형식으로 구성하였다.

[R분석 코드]

(1) 생존표 분석(Keplan-Meier Estimation)
#data 불러오기
x <-read.csv("C:/Users/hana/Desktop/HNT_Train_8.csv",header=TRUE)
head(x)
#install.packages('survival')
library(survival)
#create survival object with event as 'atn' and time as 'prd_n'
y <- Surv(event = x$atn, time = x$prd_n)
#view unique values of retention
unique(y)
#kaplan-meier estimates of survival by gender
kmestimate_sex <- survival::survfit(formula = Surv(event = atn, time = prd_n) ~ sex, data = x)
summary(kmestimate_sex)**
#create a new field to define asl_category (>= 4)**
x$asl_category <- ifelse(x$asl >= 4, "High", "Not High")
kmestimate_aslcat <- survival::survfit(formula = Surv(event = atn, time = prd_n) ~ asl_category, data = x)
summary(kmestimate_aslcat)
library(survminer)
survminer::ggsurvplot(kmestimate_aslcat, pval = TRUE,conf.int = TRUE,
palette = c("blue", "red"),linetype = c("solid", "dashed"),xlab = "prd_n",
ylab = "Retention Rate

(2) Cox 회귀모형 분석(Cox proportional hazards regression)
**
# run cox model against survival outcome**

cox_model <- survival::coxph(formula = Surv(event = atn, time = prd_n) ~ sex + age + ovs + tor + asl + pun + hom + rew + imp, data = x)
summary(cox_model)
(ph_check <- survival::cox.zph(cox_model))
survminer::ggcoxzph(ph_check, font.main = 10, font.x = 10, font.y = 10)

[실험 결과]

(1) 생존표 분석(Keplan-Meier Estimation)

[1] 27+ 22 25 27 26 28+ 28 24 26+ 25+ 23 24+ 16 23+ 21 20 17

[18] 22+ 18 19 21+ 20+ 19+ 17+ 18+ 15 14 16+ 13 13+ 15+ 14+ 12 11

[35] 10 12+ 9 11+ 10+ 8 9+ 7 6 8+ 5 7+ 4 6+ 3 5+ 29

[52] 2 4+ 1 3+

*해석 : 개인이 직장을 떠날 경우 재직 근속연수를 표시하고 있으며, 계속 근무하는 경우 재직 근속연수에 마지막 레코드임을 나타내는 '+'표시
*

Call: survfit(formula = Surv(event = atn, time = prd_n) ~ sex, data = x)

sex=1 (남성)

time n.risk n.event survival std.err lower 95% CI upper 95% CI

1 1111 10 0.9910 0.00283 0.98546 0.9966

2 1101 19 0.9739 0.00478 0.96457 0.9833

3 1082 52 0.9271 0.00780 0.91193 0.9425

4 1025 55 0.8773 0.00985 0.85825 0.8969

5 955 38 0.8424 0.01097 0.82121 0.8642

6 888 51 0.7941 0.01225 0.77040 0.8184

7 813 33 0.7618 0.01298 0.73681 0.7877

8 760 59 0.7027 0.01407 0.67564 0.7308

9 682 40 0.6615 0.01468 0.63332 0.6909

10 618 24 0.6358 0.01501 0.60702 0.6659

11 563 21 0.6121 0.01532 0.58276 0.6428

12 520 14 0.5956 0.01553 0.56592 0.6268

13 473 8 0.5855 0.01567 0.55560 0.6170

14 443 16 0.5644 0.01597 0.53392 0.5965

15 425 24 0.5325 0.01634 0.50142 0.5655

16 371 30 0.4894 0.01680 0.45759 0.5235

17 308 24 0.4513 0.01720 0.41881 0.4863

18 249 20 0.4150 0.01763 0.38190 0.4511

19 198 19 0.3752 0.01815 0.34128 0.4125

20 161 21 0.3263 0.01866 0.29168 0.3650

21 133 22 0.2723 0.01879 0.23786 0.3117

22 98 20 0.2167 0.01862 0.18315 0.2565

23 65 15 0.1667 0.01826 0.13451 0.2066

24 39 5 0.1453 0.01825 0.11364 0.1859

25 26 11 0.0839 0.01758 0.05559 0.1265

26 10 4 0.0503 0.01673 0.02621 0.0966

27 5 1 0.0402 0.01613 0.01835 0.0883

28 3 1 0.0268 0.01535 0.00874 0.0823

29 1 1 0.0000 NaN NA NA

sex=2 (여성)

time n.risk n.event survival std.err lower 95% CI upper 95% CI

1 1279 1 0.9992 0.000782 0.9977 1.000

2 1278 14 0.9883 0.003010 0.9824 0.994

3 1264 37 0.9593 0.005522 0.9486 0.970

4 1224 85 0.8927 0.008660 0.8759 0.910

5 1128 59 0.8460 0.010118 0.8264 0.866

6 1032 85 0.7763 0.011774 0.7536 0.800

7 913 69 0.7177 0.012829 0.6930 0.743

8 808 75 0.6511 0.013752 0.6247 0.679

9 703 83 0.5742 0.014487 0.5465 0.603

10 597 46 0.5299 0.014767 0.5018 0.560

11 512 49 0.4792 0.015026 0.4507 0.510

12 431 32 0.4436 0.015170 0.4149 0.474

13 375 9 0.4330 0.015216 0.4042 0.464

14 317 31 0.3907 0.015512 0.3614 0.422

15 278 19 0.3640 0.015615 0.3346 0.396

16 245 25 0.3268 0.015689 0.2975 0.359

17 207 13 0.3063 0.015702 0.2770 0.339

18 173 11 0.2868 0.015764 0.2575 0.319

19 147 11 0.2654 0.015857 0.2360 0.298

20 129 12 0.2407 0.015902 0.2114 0.274

21 110 19 0.1991 0.015758 0.1705 0.233

22 71 16 0.1542 0.015700 0.1263 0.188

23 42 4 0.1395 0.015829 0.1117 0.174

24 27 6 0.1085 0.016620 0.0804 0.147

25 12 5 0.0633 0.018237 0.0360 0.111

**해석 : 'n.risk'는 해당 시점에서 위험에 노출된 개체 수, 'n.event'는 해당 시점에서 발생한 이벤트(퇴사)의 수, survival 은 생존율이다.

**Keplan-Meier Estimation검정 성별 결과해석

남성과 여성을 비교해 보면, 입사 후 7년 차 이전까지는 생존율이 비슷하거나 여성이 조금 높게 유지되나, 7년차 이후부터는 23년 차까지 남성의 생존률이 현저하게 높다. 이는 대부분의 표본이 조직에 신입입사하여 유지하는 경우를 기준으로 하고 있기 때문에 최종학교를 졸업 후 취업을 하고 7년 이후가 여성의 연령이 30세 전후로 형성이 되고 이 시기는 생애주기상 결혼, 첫 육아휴직으로 이어지는 시기랑 대동소이할 것으로 판단한다. 23년차 이후가 되면 남녀의 차이가 거의 없게 되는데 이는 표본자체가 치열한 경쟁과 조직상황에 따라 작아지기도 하지만 집중 육아기간을 지나고 조직에 잔류한 여성은 인위적인 구조조정이 없다면, 계속 유지하는 경향이 크다.

(시니어급와 직책자 비중에서 여성비율이 타 산업에 비해 높은 수준인 관광산업 특성일 수도 있다.)

asl_category=High(고성과자)

time n.risk n.event survival std.err lower 95% CI upper 95% CI

3 230 80.965 0.0121 0.942 0.989

4 222 140.904 0.0194 0.867 0.943

5 208 70.874 0.0219 0.832 0.918

6 195 100.829 0.0249 0.782 0.879

7 172 80.791 0.0272 0.739 0.846

8 157 90.745 0.0296 0.689 0.806

9 140 30.729 0.0303 0.672 0.791

10 129 40.707 0.0314 0.648 0.771

11 115 60.670 0.0332 0.608 0.738

12 106 30.651 0.0340 0.587 0.721

13 94 30.630 0.0350 0.565 0.702

14 83 30.607 0.0361 0.540 0.682

15 80 40.577 0.0374 0.508 0.655

16 66 40.542 0.0390 0.471 0.624

17 53 70.470 0.0422 0.395 0.561

18 39 40.422 0.0442 0.344 0.518

19 29 30.378 0.0463 0.298 0.481

20 24 40.315 0.0481 0.234 0.425

21 19 30.266 0.0484 0.186 0.379

22 13 10.245 0.0488 0.166 0.362

27 1 10.000 NaN NA NA

asl_category=Not High(중간이하)

time n.risk n.event survival std.err lower 95% CI upper 95% CI

1 2160 11 0.9949 0.00153 0.9919 0.9979

2 2149 33 0.9796 0.00304 0.9737 0.9856

3 2116 81 0.9421 0.00502 0.9323 0.9520

4 2027 126 0.8836 0.00691 0.8701 0.8972

5 1875 90 0.8412 0.00789 0.8258 0.8568

6 1725 126 0.7797 0.00902 0.7622 0.7976

7 1554 94 0.7325 0.00969 0.7138 0.7518

8 1411 125 0.6677 0.01043 0.6475 0.6884

9 1245 120 0.6033 0.01095 0.5822 0.6252

10 1086 66 0.5666 0.01118 0.5451 0.5890

11 960 64 0.5289 0.01139 0.5070 0.5517

12 845 43 0.5019 0.01152 0.4799 0.5251

13 754 14 0.4926 0.01158 0.4705 0.5158

14 677 44 0.4606 0.01179 0.4381 0.4843

15 623 39 0.4318 0.01192 0.4090 0.4558

16 550 51 0.3917 0.01206 0.3688 0.4161

17 462 30 0.3663 0.01214 0.3433 0.3909

18 383 27 0.3405 0.01226 0.3173 0.3654

19 316 27 0.3114 0.01242 0.2880 0.3367

20 266 29 0.2774 0.01257 0.2539 0.3032

21 224 38 0.2304 0.01254 0.2071 0.2563

22 156 35 0.1787 0.01240 0.1560 0.2047

23 99 19 0.1444 0.01227 0.1222 0.1706

24 61 11 0.1184 0.01231 0.0965 0.1451

25 34 16 0.0627 0.01205 0.0430 0.0913

26 13 4 0.0434 0.01157 0.0257 0.0732

28 3 1 0.0289 0.01410 0.0111 0.0752

29 1 1 0.0000 NaN NA NA

Keplan-Meier Estimation검정 인사평가 결과해석

고성과자와 일반성과자의 생존율 차이는 8년 차까지는 상호 근사한 수치로 생존율을 유지하나 9년 차 이후부터 갭이 벌어지기 시작하고 10년차에 정점을 이룬다. 조직 내 승진연한이 일반적으로 9년을 근무하면 과장에서 차장으로 승진심사 대상이 된다. 조직특성 상 과장까지는 승진이 어렵지 않으나 차/부장은 상당히 까다로운 성과심사를 받게 되어 이 시점에 승진누락자가 많이 발생하고 조직 내 불만표출이 많아지는 시점이다. 차장 이상 직급이 되어야 팀장 이상 직책자가 될 여지가 커서 승진심사 기준을 감안하였을 때, 고성과자가 직책자 및 고직급으로 인정받을 가능성이 크고 이들이 연봉상승률과 조직내 권한과 책임을 바탕으로 장기근속할 가능성이 크다.

이런 차이는 마켓에서 경력을 인정받고 이직이 활발한 9년차 ~ 16년 차 사이에서 활발하고 그 이후는 상호 수렴한다.

(2) Cox 회귀모형 분석(Cox proportional hazards regression)

****Concordance**: 이 값은 모델의 예측 정확도를 나타냅니다. ***모델 적합성 테스트
**: 세 가지 테스트(Likelihood ratio test, Wald test, Score (logrank) test) 모두 유의한 p-값(<2e-16)을 보여줍니다. 이는 모델이 데이터에 잘 적합하다는 것을 나타냅니다.

[비례위험 가정 충족여부]

chisq df p

sex 0.464 1 0.4958

age 3.710 1 0.0541

ovs 1.742 1 0.1868

tor 6.747 1 0.0094

asl 5.218 1 0.0224

pun 5.886 1 0.0153

hom 0.158 1 0.6913

rew 1.586 1 0.2079

imp 25.782 1 3.8e-07

GLOBAL 52.032 9 4.5e-08

Cox 회귀모형 결과해석

위의 회귀모형 결과를 해석하면 고용유지에 영향을 미치는 요인은 성별, 연령, 해외대학출신, 관광전공출신, 인사고과, 포상여부, 자기계발노력이다. 그러나 비례위험가정을 충족하지 않는 관광전공출신, 인사고과, 징계여부 변수를 제외하고 다시 모형을 돌려 보았을 때 아래와 같은 결과가 나왔다.

최종적으로 여성일수록, 연령이 높을수록, 포상 횟수가 많을수록, 자기계발 노력이 출중할수록 고용을 유지할 확률이 높다. 반대로 해외대학 출신 및 재택근무 기간이 긴 직원일수록 고용 유지 확률이 낮다.


5. 연구 제언

본 연구는 다음과 같은 한계점을 가지고 있다.

첫째, A사의 직원들을 무작위로 추출하여 연구대상으로 선정하였으나, A사의 직원들이 다른 기업의 직원들과 대표성을 가지는지는 검증하지 못하였다. 따라서, 본 연구의 결과를 다른 기업에 적용하기에는 한계가 있을 수 있다.

둘째, 고용유지 요인을 도출하기 위해 사용한 콕스비례위험회귀분석의 성능이 우수하고 방법론이 탁월하다고 하여 분석을 위한 데이터가 완벽하게 객관성을 확보하였다고 단정하기 어렵다. 따라서, 본 연구의 결과를 해석할 때에는 인사데이터의 특성상 편향성과 개인의 의지 등이 존재하고 그에 따른 영향을 고려해야 한다.

본 연구는 A사의 직원들을 대상으로 하였으나, 다른 기업의 직원들도 대상으로 하여 본 연구의 결과를 검증하고 비교하는 연구가 필요하다. 그리고 연구의 분석에 있어 생존분석을 사용하였으나, 다른 통계적 기법을 사용하여 본 연구의 결과를 보완하고 확장하는 시도가 필요하다. 데이터를 수집함에 있어 조직의 네트워킹 DB(관계분석용), 사내 메신저/이메일 송수신 DB, 연차사용시기, 휴가기간 근무여부 등 비공식적인 데이터도 활용할 수 있다면 좀 더 다양한 연구결과 도출이 가능하기에 향후 연구 방향으로 제안한다.


작성/발표자 : 송민선

05 연구사례

1. 대졸 청년층 신입사원의 첫 일자리 적응 잠재 유형과 조기 이직과의 관계 분석 [1](이은정, 2021)

 

대상 및 데이터

한국고용정보원의 2017년 대졸자직업이동경로조사(2016GOMS) 자료를 활용. 2~3년제, 4년제, 교육대 대졸자를 모집 단으로 하고 있으며, 매년 1만 8천 명을 표본으로 추출하여 조사를 진행

분석 대상을 만 34세까지의 청년 1,706명을 대상으로 1. 4년제 대학 졸업자, 2. 청년층에 속하는 자, 3. 첫 일자리에서의 이직 경험자 4. 첫 일자리에서의 종사상의 지위가 정규직 임금근로이면서 근로시간 형태가 전일제인 자 이상의 4가지 조건에 해당하는 자로 규정했다.

연구 가설

일자리 적응 유형이 이직행동에 영향을 미치며 특정 일자리 적응 요인은 조기 이직의 위험을 높인다. 또한 일자리 만족도 문항 중 특정 항목이 이직 생존기간에 영향을 미친다.

분석방법

잠재 프로파일 분석(latent profile analysis) 비슷한 응답 패턴을 보이는 대상을 동일 집단으로 분류하고 각 계층에 속할 확률을 계산하여 계층별 차이를 분석하는 방법을 적용하여 대졸 청년층의 첫 일자리 적응 유형 잠재 집단을 확인 후 교차분석을 시행하여 도출된 첫 일자리 적응 유형 잠재 집 단별 특성을 분석하여 제시했다.

이 연구에서는 대졸 청년층의 첫 일자리에서의 적응 유형을 '전반적 불만족', '임금, 고용 안정성 만족', '근로시간 만족', '전반적 만족', '인간관계, 적성 만족' 등 5가지 잠재 집단으로 도출하였다. 또한 연구에서는 대졸 청년층의 첫 일자리 적응 유형에 따라 조기이직 시점의 차이를 살펴보기 위해 생존분석을 사용했다. 이 경우에는 첫 일자리에서의 조기이직 여부와 이직까지의 생존 기간이 주요 관심 대상이었다.

연구에서는 관찰기간 내에 발생하지 않은 데이터를 우측 중도 절단자료로 정의하고, 이를 고려하여 모델은 카플란 마이어 생존함수 분석을 시행하였다. 생존곡선은 각 집단의 누적 생존율을 시간에 따라 보여주며, 이를 통해 집단 간 생존확률의 차이를 통계적으로 검증했습니다. 또한 로그 순위 검정법과 윌콕슨 검정법을 사용하여 첫 일자리 적응 집단 간의 생존 곡선 차이를 평가했다.

분석결과

연구에서는 1,706명의 대졸청년대상자 중 95.5%가 24개월이 내에 첫 일자리에서 조기이직한 것으로 나타났습니다. 이후 24개월 이상 첫 일자리에서 근속한 중도절단사례는 4.5%에 해당하는 77명이었다. 전체대상자의 평균생존기간은 10.12개월이었으며, 첫 일자리적응유형별로는 '전반적 만족' 집단이가장높은생존율과평균생존기간을나타냈다. 특히, '인간관계, 적성만족' 집단은중도절단사례비율이가장높았지만, 평균생존기간은 '전반적만족' 집단에 이어 두 번째로 높았다.
연구에서는 대졸청년층의 첫 일자리에서의 조기이직발생시점을 첫 일자리적응유형에 따라 확인하기 위해 카플란마이어생존곡선을 사용했다. 전체대상자의 생존곡선은 입사 이후 5개월까지 위험률이 증가하다가 12개월에서 최고점을 찍고이 후에는 감소하며 안정화되는 양상을 보였다. 집단 별로는 각각 조금씩 다른 특성을 보였는데, 그림 3은 '전반적 불만족'인 집단에서 조기이직 생존곡선을 나타낸다. 초기 6개월 동안 급격한 조기가 직감소를 보이며 24개월 동안 계속해서 높은 조기이직확률을 유지한다. 그림 4는 '임금, 고용안정성만족'인 집단을 나타내며, 초기 12개월은 전반적인 대상과 유사한 생존율을 보이나 이후에는 낮은 조기이직생존율을 나타낸다. 그림 5는 '근로시간만족'인집단으로, 15개월까지는 높은 조기이직 생존율을 보이나 이후에는 낮아지는 양상을 보여준다. 그림 6은 '전반적 만족'인 집단으로 전체 대상과 비교해 높은 조기이직 생존율을 24개월 동안 유지한다. 마지막으로, 그림 7은 '인간관계, 적성만족'인 집단을 나타내며, 초기 6개월 동안은 낮은 조기이직 생존율을 보이지만 그 이후에는 높아지는 경향을 나타낸다.

마지막으로 생존분포의 유의성을 확인하기 위한 로그 순위검정과 윌콕슨검정결과, 첫 일자리 적응 유형 집단별 조기이직 생존분포가 통계적으로 유의하게 다르다는 결론을 도출하였다.

결과 및 해석

종합해 보면, 이 연구에서 조기이직 위험률은 초기 5개월 동안 증가하다가 감소한 뒤 1년에 도달하는 시점에 최고치를 기록하였다. 이러한 결과는 첫 일자리 진입 직후 초반에는 조직이 제공하는 외적인 여건이 근속 여부를 결정짓는 주요 요인으로 작용하지만, 시간이 경과할수록, 자신의 흥미와 적성에 부합하는 직무, 조직 내에서의 안정적인 인간관계와 같은 심리 정서적인 요인이 직업 적응에 있어 큰 역할을 하고 있음을 시사한다. 이는 조기이직을 예방하기 위한 조직 차원에서의 선제적인 개입이 필요하다는 시사점을 제시한다.

2. Bias Due to Left Truncation and Left Censoring in Longitudinal Studies of Developmental and Disease Processes [2]

연구 및 데이터소개

이연구는 TREMIN 연구의 데이터를 바탕으로 한다. TREMIN은 1935년에서 1939년에 미네소타대학교여성대학생을 대상으로 실시된 연구로 660명의 여성 중 40세 이상이며 여전히 월경 중인 참여자들의 월경달력 데이터를 수집한 데이터이다. 이 연구에서는 나이(X) 및 최종 월경주기(Y)를 정의하고, 이를 기반으로 한 후기폐경전환과 관련된 분석을 했다.

연구가설

무시된 left truncation 및 left censoring이 분석 시 데이터의 편향을 초래할 것이다.

분석방법

이 연구에서는 폐경증후군을 보이는 시기인 x, 마지막월경(폐경)인 y의 시점을 고려하고, 관찰기간의 시점보다 일찍 x가 일어난 경우를 데이터셋에포함하는케이스를 기준으로 디자인 1과 2를 나눴다.

(데이터용어설명)

[Truncation은 어떤 개인이 연구에 참여하는 시점에 이미 특정이벤트 나 이정표가 발생한 경우를 나타낸다. 폐경전환과 관련된 문맥에서 Truncation이 있다면, 일부참여자들은 이미 폐경을 경험한 상태에서 연구에 참여하게 된다. 반면 Left-censoring은 개인이 연구에 참여하지만 연구시작 전에 이미 특정이벤트 나 이정표가 발생한 경우이다. 단, 이이벤트가 정확한 타이밍은 알 수 없다. 폐경전환연구에서 Left censoring이 있다면, 일부참여자들은 이미 폐경을 경험한 상태에서 연구에 참여하지만 폐경이 일어난 정확한 나이를 알 수가 없다. ]

디자인 1은 주로 truncation만 고려하는 경우다. 디자인 1에서는 milestone X에 이미 도달 한 개인들이 연구에서 제외되며, 이것은 변수 X에 truncation이 작용한다는 것을 의미한다. 디자인 1에서는 이미 중간단계인 X를 통과한 사람들, 즉 Figure 2에서 참여자유형 4-6에 해당하는 사람들이 제외된다. 여기서는 milestone X에 truncation이 작용하고 있으며, 이는 나중에 분석에서 해당사람들을 고려하지 않는다는 것을 의미한다. 이런 방식으로 디자인 1은 이미 중간이벤트를 경험한 사람들을 연구에서 배제하고 최종이벤트 또는 milestone Y에만 관심을 두고 있다.

반면디자인 2에서는 Y에 대한 truncation이작용하고, X는 left censoring이적용된다. 이는디자인 1에서는 Y에 대한 truncation 만 고려되었고, X는 left truncation이 적용되었던 것 과대조적이다. 디자인 2에서는 X와 Y의 결합분포에 대한 모델이 필요하게 된다. 논문에서는 bivariate normal distribution을 제안하고 있다. 이는 변수들 간의 관계를 설명하는 모수적인 방법으로, 디자인 1에서는 비모수적인 방법이 사용되었던 것과 대조된다. 디자인 2는 디자인 1과 달리 더 복잡한 상황을 고려하며, 모델링측면에서 더 많은 가정을 내포하고 있다.

시뮬레이션 방법은 다음과 같다.

  1. 10년 동안의 연구진입 시 나이 범위를 설정(예: 40~50세).
  2. 원본데이터셋에서 부트스트랩샘플을 추출.
  3. 각 참가자에 대해 10년 연령범위에서 균등분포의 랜덤숫자 A를 생성.
  4. Design I의 경우, X < A인 경우 해당참가자를 데이터셋에서 삭제.
  5. Design II의 경우, Y < A인 경우 해당참가자를 데이터셋에서 삭제.
  6. 줄어든 데이터셋을 사용하여 X 및 D의 평균과 표준편차에 대한 여러 대안적인 방법을 사용하여 추정.
  7. 2~5단계를 각연령범위에 대해 100번 반복하고, 다양한 연령범위에 대해이프로세스를 반복.
  8. 시뮬레이션 및 데이터분석은 R 소프트웨어를 사용.

연구결과

표에서는 각 연령그룹에 대한 세 가지 분석시뮬레이션결과를 비교할 수 있다. 분석 3은 left censoring을 고려하여 더 정확한 결과를 제공하려고 노력한 것으로 보이며, 특히 나이가 더 낮은 그룹에서는 향상된 결과를 보이고 있다. 종합하면, Design 1에서 left censoring을고려한 Analysis 3은 milestone X에 대한 보다 정확한 추정을 제공하며, 특히 나이가 낮은 그룹에서는 향상된 결과를 보여주고 있다고 할 수 있다.

이런 디자인 1과 디자인 2의 결과를 통해, left truncation을 고려하는 디자인이 이를 무시하는 것보다 더 정확한 결과를 제공한다는 것을 시사하고 있다. 디자인 2에서는 X와 Y 간의 관계를 모델링하는 것이 필요하며, 특히 bivariate normal distribution을 사용하여 X의 분포를 정확하게 추정할 수 있음을 언급하고 있다.

연구해석

연구결과, Design II의 left truncation 및 left censoring을고려한 분석이 Design I에 비해 높은 정확성을 보이는 것을 확인하며, Truncation을 무시하는 단순한 분석에서는 표준오차가 심하게 과소평가될 수 있다는 것을 보여주었다. 편향은 Left Censoring을 고려할 때감소할 수 있지만, Left censoring이 높을 경우 결과가 불안정 해질 수 있다. 가능하다면 연구디자인을 수정하여 모든 잠재참여자에게 현재상태에 대한 정보(즉, 목표물에 도달했는지 여부)를수집하고, 모집시점에 이미 목표물을 통과한 참여자들을 분석에서 왼쪽검열된 것으로 간주하는 것이 더 나은 해결책일 수 있다는 시뮬레이션결과를 보여주었다.


[1] 이은정(Eun-jung Lee). (2021). 대졸 청년층 신입사원의 첫 일자리 적응 잠재 유형과 조기 이직과의 관계 분석. 직업교육연구, 40(2), 1-23.

[2] Cain, K. C., Harlow, S. D., Little, R. J., Nan, B., Yosef, M., Taffe, J. R., & Elliott, M. R. (2010). Bias Due to Left Truncation and Left Censoring in Longitudinal Studies of Developmental and Disease Processes

Comments