통계/개념

통계/개념

[통계]편향 데이터 해결을 위한 Penalized likelihood logistic regression 소개/Firth's penalized/logisf

김쪼욘 2020. 6. 9. 01:36

| rare event logistic regression

약물 부작용, 불량품 , 사고, 상품 조회 등과 같이 전체 사건 대비 event의 수가 작은 binary outcome 데이터에 대해 logistic regression을 수행하는 경우 각 변수의 $\beta$값을 추정하는데 있어 정밀도가 떨어지는(over estimate) 문제점이 있다.

특히 이런 rare event의 경우 적절한 처리를 해주지 않으면 머신러닝 알고리즘을 사용하더라도 향상된 결과를 기대하기 어려운데 그 이유가 대부분의 결과를 major한 class로 예측하기 때문이다.

머신러닝 알고리즘에서는 샘플링(SMOTE, under sampling, over sampling) 등으로 해결하는 접근이 가장 유명하지만 이번엔 샘플링이 아닌 penalized likelihood에 대해 정리해 보았다!

| penalized likelihood 

penalized likelihood는 각 $\beta$의 log likelihood에 prior을 더해 보정한 값으로 수식은 다음과 같다.

 

$logL^{*}(\beta) = logL(\beta) + A(\beta) $


$A(\beta)$ 를 선택하는 방법에 따라 penalization의 종류가 달라진다.

1. ridge : normal prior

2.LASSO : double exponential

3.Firth-type : Jeffery's prior

| Firth type penalization

위 세개의 penalized liklihood 중 Firth type penalization에 대해 좀 더 자세히 알아 보겠다.

 

1. first-order bias 를 제거

2. bias-preventive

3. SAS, R, Python 등에서 사용 가능

 

수식은 다음과 같다.

 

$Firth(\beta) = logL(\beta) + 0.5log[det I(\beta)]$

 

위 수식에서 $0.5log[det I(\beta)]$ 는 Jeffery's invariant prior와 동일하다.

$det I(\beta) = det(X^{t}WX)^{1/2}$ 이며, 이때

$ W = diag(\pi(1-\pi)) $ 이다.

  • $\pi = model predictions$

따라서 $W$ 는 $\pi = 1/2$  즉 $\beta = 0$ 일때 최대화 하기 때문에 prediction 은 1/2로 coefficent 는 0로 shrink 하고자 하는 성질을 가진다.

 

이때 score function을 계산해 보면 다음과 같이 나타낼 수 있다.

 

$U^{*}(\beta ) = [y - \pi +h(0.5-\pi )]x$

  • $h = the diagonal of the Hat Matrix = \sqrt{W}Xinv(I)X.t\sqrt{W}$

$h$ 는 각 observation 의 row가 모델에 끼치는 영향력을 나타낸다. 따라서 우리는 각 row 의 정보가 어느정도 모델에 기여했는지와 prediction이 0.5에서 얼마나 떨어져 있는지에 대한 것을 잔차를 최소화 하는데 고려하게 된다.

 

R 에서는 logisf를 이용해 계산할 수 있다.

logisf(formula = y ~ x)

 

일반적으로 베이지안 추론에서 사용되는 laplace prior 에서의 invariance가 부족한 문제를 개선하기 위해 사용되는 prior이다. 예를들어, 모수 $theta$를 추정하기 위해 prior를 laplace로 가정하였을 때 모수를 $exp(\theta)$ 로 transformation 하면 prior가 laplace prior라는 가정을 만족하지 못한다. jeffery's prior는 이와 같은 문제를 해결한다.