통계 : Dummy Variable Trap 기본 콘텐츠로 건너뛰기

통계 : Dummy Variable Trap

 Regression model을 만들다 보면, 독립변수로 명목형 변수를 사용할 때가 많다. 지역이나 성별, biomaker유/무 등이 대표적으로 많이 사용되는 명목형 변수로, 특히 medical 저널에서는 성별을 covariate으로 취급하여 성별에 따른 종속변수의 차이를 보고자 할 때가 많다.


명목형 변수들은 Dummy Variable로 바꾸어서 regression model을 만드는데, one hot 인코딩 방식으로 더미 변수들을 만든다.

예를 들면, 

male=0, female=1

Biomarker유=1, Biomarker무=0

이런식으로 만든다.

이와 같은 binary 데이터들은 더미 변수로 만드는 것도 쉽고 큰 문제가 되지 않는다.


one-hot encoding의 이유는, 0과 1 대신 빨간색, 녹색, 파란색을 1,2,3 으로 코딩해버리면, 적합한 모델은 숫자가 더 큰 3을 빨간색보다 더 중요한 인자로 생각하게 되기 때문이다. 학력처럼 순서형이면 각 숫자에 의미가 있지만 여러 컬러처럼 단순 명목형일 때에는 one-hot 인코딩을 해야한다. 

(단, 컬러가 연함 - 진함과 같이 순서형이라면 굳이 one-hot 인코딩을 안해도 된다.)


one-hot encoding의 예시는 아래 세 가지 카테고리로 보면 더 명확하게 이해가 된다.

(image출처: https://towardsdatascience.com/encoding-categorical-variables-one-hot-vs-dummy-encoding-6d5b9c46e2db)


그럼 binary 말고 여러 카테고리가 있는 변수의 경우는 어떤 식으로 더미 변수를 만들까?

Regression 모델을 만들 때에는 k개의 카테고리가 있다면, k-1개의 더미변수를 생성하게 된다. 위 그림에서 Blue일 때, d1, d2, d3 모두 0으로 코딩해도 Red, Green과 차이가 있으므로, d1과 d2만 만들어도 무방하다는 의미이다. 즉, d1과 d2가 0일 때, Blue가 되는 것이다.

이것도 예를 들어 보면 쉽게 이해가 되는데,

명목형 변수 중에 지역이나 부서 같은 여러 카테고리가 있는 변수를 생각해보자.

IT부서, 회계부서, 유통부서, 영업부서, AS부서, 기획부서 이렇게 6개의 부서가 있다고 하자.

그럼 총 6개의 카테고리를 다음과 같이 one-hot encoding 할 수 있다.


그런데 앞서 언급했듯이 카테고리가 6개라면, 더미 변수는 5개만 있어도 상관없다. 맨 마지막 기획부서를 전부 0으로 해도 무방하기 때문에 모델 적합의 편의성을 위해 맨 마지막 X_기획을 0으로 코딩하면 다음과 같다.

이는 또 다음과 같이 만들 수 있다.



그럼 굳이 왜 이와 같이 인코딩을 해주는 것일까?
'그냥 카테고리마다 1로 해주면 되지 않을까?' 라는 생각이 드는데, 굳이 이와 같이 코딩을 해주는 이유는 multicollinearity 때문이다. 다중공선성은 독립변수 간의 상관계수가 높을 때 발생하는데, 독립변수 A와 독립변수 B의 상관성이 높다면 A를 통해서 B도 추측이 가능하기 때문에 regression 모델의 회귀계수 해석에 어려움이 생긴다.






댓글

이 블로그의 인기 게시물

통계 기초 : 확률 분포 - (1) 이항분포

Binomial distribution 이항분포에 앞서 베르누이분포가 있다. 모든 가능한 결과가 두 가지인 실험(표본공간이 {불량품, 양호품},{찬성, 반대} 등)을 베르누이 시행(Bernoulli trial)이라 한다. 성공확률을 p 라고 할 때, '성공'이면 1, '실패'면 0으로 대응시키는 확률변수를 베르누이 확률변수라 한다. 베르누이 확률변수 X의 확률분포는 다음과 같이 정의할 수 있다. $$ P(X=x) = p^{x}(1-p)^{1-x}, x=0,1 $$ 따라서, X=0인 경우에는 P(X=0) = (1-p)이고, X=1인 경우에는 P(X=1) = p가 된다. 베르누이분포의 평균은 E(X)=p, Var(X)=p(1-p) 이다. 이처럼 동일한 성공확률을 가진 베르누이 시행 을 독립적 으로 반복 하여 시행할 때, 'X=성공횟수'의 분포를 이항분포(binomial distribution)이라 한다. 성공확률이 p인 베르누이 시행을 n번 독립적으로 반복 시행할 때, '성공횟수(=X)'가 x일 확률은 다음과 같이 표시할 수 있다. $$ P(X=x) = (\frac{n}{x})p^{x}(1-p)^{n-x}, x=0,1,2, ..., n $$ 이항분포의 평균은 E(X)=np, 분산은 Var(X)=np(1-p) 이다. 증명은  https://proofwiki.org/wiki/Variance_of_Binomial_Distribution  참고하면 된다. 여기에서 n , p 를 이항분포의 모수(parameter)라 한다. 만약 n=1이라면, 이항분포 B ( n , p )는 '1(성공)'의 확률이 p 인 베르누이분포이다. 참고로 모수는 모집단의 특성값으로, 평균, 분산, 성공확률 등을 예시로 들 수 있다.

Odds Ratio and Relative Risk ; 오즈비와 상대위험도

  Odds Ratio 는 임상에서 매우 많이 사용되는 개념이다. 그러나 'Odds' 라는 개념이 직관적으로 잘 와닿지 않기 때문에 흔히 오용되기도 하는 개념이라 가장 먼저 잡고가야 할 주제로 삼았다.   오즈비는 범주형 자료에서 사용되는데, 오즈비를 보면서 가장 많이 접하게 될  2X2 분할표는 다음과 같이 생겼다.   Event Normal Total Exposed A B A + B Non-exposed C D C + D 흔히 하는 실수가 오즈비(Odds Ratio)를 해석할 때, 상대위험도(Relative risk)를 해석하듯이 한다는 점이다. 따라서 오즈비와 상대위험도의 각 개념에 대해서 살펴보고 넘어가도록 하자.   ❗Odds Ratio와 Relative Risk의 공통점 : 상대적인 비율 을 나타낸다. Public health / Medical 에서 Odds Ratio or Relative Risk를 사용하는 이유 - 어떤 조건에서 더 위험한지를 수치적으로 나타내기 위해서 사용 한다. 예를 들면, "흡연(조건)"을 하는 사람은 비흡연자에 비해 "폐암(Event)" 발생에 있어서 몇 배가 더 위험한가? 와 같은 질문에 대한 해답으로 많이 사용된다.   ✅위와 같은 2X2 이차원 분할표에서 Odds Ratio (오즈비) 의 수식적 정의 는 다음과 같다. P1 = A/(A+B) ; P2 = C/(C+D) Odds1 = P1/(1-P1) ; Odds2 = P2/(1-P2) Odds Ratio = Odds1/Odds2 = A*D/B*C ✅ 한편 2X2 분할표에서 Relative Risk (상대위험도) 의 수식적 정의 는 ...

Odds Ratio and Relative Risk ; 오즈비와 상대위험도 part. 2

 지난 글에서 2X2 분할표에서 많이 사용되는 오즈비와 상대위험도의 개념에 대해서 살펴보았다. 그 중에서도 지난 글에서는 오즈비를 사용할 수밖에 없는 경우에 대해 살펴보았다.  상대위험도가 직관적으로 이해하기 쉽고 위험비에 대한 쉬운 해석을 가능하게 하지만, 그럼에도 불구하고 보건 or 의학 계열에서 오즈비를 많이 사용 할 수밖에 없는 이유에 대해 살펴보았다. 또한 오즈비와 상대위험도는 가끔 동일하게 해석되기도 한다. (자세한 내용은 이전 글로..) 그럼 이번 글에서는 오즈비와 상대위험도를 동일하게 해석할 수 있는 경우 에 대해 살펴보도록 하겠다. 먼저 다음과 같은 오즈비의 특성을 이해해야 한다. 오즈비의 중요 특성: 상대적인 위험도를 과장하는 측면 이 있다. 이는 굉장히 중요한 오즈비의 특성인데, Relative Risk 값보다 항상 큰 값을 가진다. 그리고 이는 해당 Event가 흔하게 일어날 수록 더욱 더 과장 된다. 📋예를 들어 보자. 따듯한 차를 마셨을 때와 방안 온도의 차를 마셨을 때 체온이 상승하는지 아니면 그대로 유지되는지에 대해 조사하고 다음과 같은 분할표를 얻었다.   체온 상승 유지 Total Warm tea 90 10 100 Normal temp 20 180 200 먼저 Relative Risk 상대위험도 를 구해보자. $$ \frac{90/100}{20/200} = 9 $$ 이번엔 Odds Ratio 오즈비 를 구해보자. (유도과정은 이전 글 참고) $$ \frac{90 * 180}{20 * 10} = 81 $$ 이번엔 방금 구한 상대위험도와 오즈비를 해석해보자. 📉 RR : 상대위험도는 9로, 이는 따듯한 차를 마신다면 체온이 상승할 확률이 방안 온도의 차를 마셨을 때보다 체온이 상승할 확률...