다중공선성 탐지 및 처리

HR Analytics: R로 직원 이탈 예측하기

Anurag Gupta

People Analytics Practitioner

상관관계 이해

상관관계는 두 수치형 변수 간의 연관성을 나타내는 척도입니다

HR Analytics: R로 직원 이탈 예측하기

HR Analytics: R로 직원 이탈 예측하기

R에서 상관관계 계산

# Calculate the correlation coefficient
cor(train_set$emp_age, train_set$compensation)
0.6117855
HR Analytics: R로 직원 이탈 예측하기

다중공선성이란?

다중공선성은 하나의 독립 변수가 두 개 이상의 독립 변수 집합과 높은 공선성을 가질 때 발생합니다.

HR Analytics: R로 직원 이탈 예측하기

다중공선성 탐지 방법

VIF (분산 팽창 인수)
# Load car package 
library(car)

# Logistic regression model
multi_log <- glm(turnover ~ ., family = "binomial",
                 data = train_set_multi)

# Calculate VIF  
vif(multi_log)
HR Analytics: R로 직원 이탈 예측하기

분산 팽창 인수

                                     GVIF Df GVIF^(1/(2*Df))
location                     2.318640e+00  2        1.233981
level                        5.716850e+06  1     2390.993458
gender                       1.262625e+00  1        1.123666
rating                       4.381767e+00  4        1.202835
mgr_rating                   2.471489e+00  4        1.119747
mgr_reportees                1.314709e+00  1        1.146608
mgr_tenure                   1.278559e+00  1        1.130734
compensation                 3.998338e+01  1        6.323241
percent_hike                 3.167576e+00  1        1.779769
hiring_score                 1.143613e+00  1        1.069399
hiring_source                2.000099e+00  6        1.059467
no_previous_companies_worked 3.291703e+00  1        1.814305
distance_from_home           1.355795e+00  1        1.164386
total_dependents             1.930188e+00  1        1.389312
marital_status               2.320518e+00  1        1.523325
education                    1.460697e+00  1        1.208593
.....

HR Analytics: R로 직원 이탈 예측하기

VIF 값 해석 기준

VIF 해석
1 상관 없음
1 초과 5 미만 중간 정도 상관
5 초과 높은 상관
HR Analytics: R로 직원 이탈 예측하기

다중공선성 처리 방법

  • 1단계: 모델의 VIF 계산
  • 2단계: VIF가 5를 초과하는 변수 확인
    • 2a단계: VIF가 5 이상인 변수를 모델에서 제거
    • 2b단계: 해당 변수가 여러 개인 경우, VIF가 가장 높은 변수만 제거
  • 3단계: 모든 변수의 VIF가 5 미만이 될 때까지 1~2단계 반복
HR Analytics: R로 직원 이탈 예측하기

모델에서 변수 제거

new_model <- glm(dependent_variable ~ . - variable_to_remove, 
                 family = "binomial", data = dataset)
HR Analytics: R로 직원 이탈 예측하기

연습해 봅시다!

HR Analytics: R로 직원 이탈 예측하기

Preparing Video For Download...