본문 바로가기
고차원 자료분석

Penalized logistic regression

by be-favorite 2020. 6. 2.

 

❗️블로그 옮김:  https://www.taemobang.com

 

방태모

안녕하세요, 제 블로그에 오신 것을 환영합니다. 통계학을 전공으로 학부, 석사를 졸업했습니다. 현재는 가천대 길병원 G-ABC에서 Data Science를 하고있습니다. 통계학, 시계열, 통계적학습과 기계

www.taemobang.com

※ prerequisite

고차원 데이터에서 고전적인 회귀분석이 가지는 문제점

Ridge regression

Lasso regression

Bias reduction of Lasso estimator

Variance reduction of Lasso estimator

Logistic regression

 

 

로지스틱 회귀모형(Logistic regression model)은 $y$가 범주형 변수(Categorical variable)인 경우에 사용하는 회귀모형의 한 종류(GLM : Generalized Linear Model의 한 종류)로, 정확하게는 $x$에 관한 선형 함수(linear function)를 통해 관측치가 class = $K$에 속할 사후 확률(posterior probabilities)을 모델링한다. 로지스틱 회귀모형의 목적함수에도 앞서 배운 많은 penalty 함수(e.g. Ridge, Lasso, SCAD, Elastic net, MNet, etc.)들을 그대로 적용할 수 있으며, 이를 Penalized logistic regression model(벌점 로지스틱 회귀모형)이라고 한다.

 

1. 목적 함수(Objective function)

최소화(minimize)하는 문제로 바꾸기 위해 음의 로그가능도 함수(Negative log-likelihood function)를 고려한다.

 

$Q(\boldsymbol{\beta} | X, \boldsymbol{y}) = -l(\boldsymbol{\beta} | X, \boldsymbol{y}) + P_{\lambda}(\boldsymbol{\beta})$,  where $P_{\lambda}(\boldsymbol{\beta})$ : The penalty function

 

즉:

 

$Q(\boldsymbol{\beta} | X, \boldsymbol{y}) = -\sum_{i=1}^n \left \{ y_i log\pi_i + (1-y_i)log(1-\pi_i)\right \}+ P_{\lambda}(\boldsymbol{\beta})$

 

Ridge, Lasso, MCP, Elastic net 등의 penalty들이 선형 회귀의 계수 추정에 가지는 효과는 로지스틱 회귀모형의 회귀 계수 추정에도 비슷하게 적용된다. 앞서 고려했던 선형 회귀모형과 다른 점은 다음의 두 가지이다.

 

 (1) 모형 적합(회귀계수 추정)에 관한 새로운 알고리즘 : IRLS 알고리즘

Penalized logistice regression의 회귀계수 추정도 일반적인 로지스틱 회귀모형과 크게 다를바가 없다. Logistic regression - (3) 회귀계수 추정의 자세한 과정에서 정리했던 IRLS 알고리즘의 최종 식 또는 이차 추정(quadratic approximation)으로 표현한 식에 고려할 penalty 함수 $P_{\lambda}(\boldsymbol{\beta})$만 추가해주면 된다.

 

 (2) 예측 정확도의 측도

 이제부터 확률 표본(random sample) 하나하나의 의미를 추가하기 위해 아래 첨자 $i$를 추가한다.

 

  ○ 이탈도(Deviance)

 

$D = \sum_i d_i^2, $  where  $d_i^2  = -2 \left \{ y_ilog\hat{\pi}_{(i)} + (1-y_i)log(1-\hat{\pi}_{(i)}) \right \}$

 

  이탈도란 손실함수(i.e. 음의 로그가능도함수)를 정확도의 측도로 사용하는 것을 말한다. $\hat{\pi}_{(i)}$는 교차검증의 fold에서 제외된 관측치 $i$의 예측값을 의미한다. 이탈도를 이용하면, $R^2$의 계산을 통해 모형간 비교를 할 수도 있다:

 

$R^2 = \frac{D_0 - D(\lambda)}{D_0}$

 

이때 $D_0$는 절편(intercept)만을 고려하는 Null 모형의 이탈도로 데이터로 고려할 수 있는 모든 모형중 항상 가장 큰 값을 가진다. 절편만을 고려하므로 이탈도가 가장 큰 것은 상식적으로도 타당하다. $D(\lambda)$는 주어진 $\lambda$ 값에 대해 교차 검증된 이탈도에 해당한다. 즉, $D_0$ 대비 우리가 고려한 모형이 얼마나 덜 이탈을 했는지 계산한 것이며, 이는 결국 모형의 설명력을 이야기해주는 $R^2$와 동일하다. 또한, 이탈도는 표준오차(Standard error)의 계산을 통한 신뢰구간의 추정도 가능하다.

 

$SE = SD(d_i^2)/\sqrt{n}$

 

  ○ Misclassification error

  Misclassification error란, 말 그대로 모형의 예측들 중 잘못 분류한 것의 비율이다. 해석이 가장 직관적이라는 장점이 있다. 그러나, $\lambda$를 조금만 변화시켜도 민감하게 변화하여 이탈도보다 더 불안정한 측도라는 단점이 있다. Misclassification error도 교차 검증을 통해 표준 오차의 계산으로 신뢰구간의 추정이 가능하다.

 

  ○ AUC(The Area under the curve)

  로지스틱 회귀모형은 $y$가 어떤 범주에 속할 사후확률을 추정한다고 했었으며, 보통 $\hat{\pi}_{(i)} > 0.5$이면 class = 1로 분류한다. 그러나, AUC를 모형 평가 기준으로 사용할 경우 $\hat{\pi}_{(i)}$의 cut-off를 0.5뿐만이 아니라, 다양하게 사용하여 각 모형을 평가할 수 있다. 즉, AUC는 가능한 cut-off들에 대한 전반적인 정확도 측도라고 할 수 있다. 다음은 $\lambda_{CV}$에 대한 ROC(Receiver Operating Characteristic) curve의 AUC를 계산한 그림과 $\lambda$의 변화에 따른 AUC를 나타낸 것이다.

 

 

출처 - High-Dimensional Data Analysis (Patrick Breheny)

 

2. 벌점 다범주 회귀(Penalized multinomial regression)

실제 데이터에서는 $y$가 이진 변수가 아닌 3개 이상의 수준을 가지는 다범주(Multinomial)의 경우도 존재한다. 이럴 경우 벌점 다범주 회귀모형을 고려할 필요가 있다. 벌점 로지스틱 회귀모형의 확장이므로 다른점만 간단하게 소개한다.

 

 (1) 목적함수

 $y$는 $K$개의 범주를 가진다고 가정한다($y_i \in \left \{ 1, 2, \cdots, K \right \}$). 

 

$Q(\boldsymbol{\beta} | X, y) = - \sum_{k=1}^K \sum_{i|y_i = k} log\pi_{ik} + \sum_k P_{\lambda}(\boldsymbol{\beta_k})$

 

Logistic regression의 첫번째 단락 소개 부분에서 간단하게 언급했듯이 일반적인 다범주 로지스틱 회귀모형(또는 Baseline-category logit regression 이라고도 함)의 경우, $K$개의 범주를 가지는 $y$를 모델링할 때 하나의 수준은 reference로 두어 $k-1$개의 선형 분류기(linear classifier)가 필요로 된다. 그러나, 이에 대해 벌점 회귀를 고려할 경우 이 제한(restriction)이 필요하지 않아서 $k$개의 분류기를 추정한다.

 

 (2) 모형 적합

 벌점 다범주 회귀의 모형 적합은 벌점 로지스틱 회귀를 적합할 때와 같은 framework를 반응변수의 각 범주에 반복하는 것으로 이루어진다:

 

Repeat

   for $k = 1, 2, \cdots, K$

      $\hat{\boldsymbol{\beta}}^{old}$를 기반으로 이차 추정(quadratic approximation)

      좌표 하강법(Coordinate Desenct algorithms)을 이용해 $\hat{\boldsymbol{\beta}}^{old}$ 갱신

until convergence

 

 

 

 

'고차원 자료분석' 카테고리의 다른 글

Penalized robust regression  (0) 2020.06.02
Variance reduction of Lasso estimator  (0) 2020.05.26
Bias reduction of Lasso estimator  (2) 2020.05.26
Lasso regression  (0) 2020.04.28
Ridge regression  (0) 2020.04.10

댓글