본문 바로가기
통계/고차원 데이터분석

[고차원 데이터분석] MCP와 SCAD (Bias reduction technique) (1)

by 근수짜세 2022. 8. 19.

 LASSO는 대표적인 규제화 방법(regularization method)으로써 추정치(estimator)의 분산을 줄여주는 수축(shrinkage)과 동시에 불필요한 추정치를 정확히 0으로 만들어줌으로써 변수선택(Variable selection)의 기능까지 수행한다. 이러한 이유로 LASSO는 고차원 자료이면서 희소성(Sparsity)의 특징을 가지는 유전체 데이터에 많이 활용된다. 하지만 추정치의 분산을 줄여줄 수 있지만, 편향 분산 트레이드오프(Bias variance tradeoff)에 의해 실제 회귀계수가 0이 아닌 큰 값을 가질 때 $\lambda$만큼의 추정치에 대한 편향을 발생시킨다. 이러한 문제는 penalty function을 수정해줌으로써 추정치의 편향을 줄일 수 있다. 가장 대표적인 방법인 MCP와 SCAD를 알아보자.


 우선 MCP와 SCAD는 다음과 같은 목표함수로 나타낼 수 있다.

$$Q(\beta) = Q(\beta | X,y) = \frac{1}{2n} || y-X\beta ||^{2} +\sum_{j=1}^{p}P(\beta_j |\lambda, \gamma) $$

여기서 $P(\beta | \lambda, \gamma)$는 folded concave penalty이다. folded concave penalty는 $ P(\beta | \lambda, \gamma)=P(-\beta | \lambda, \gamma)$를 만족하면서 $|\beta|$에 대해 concavity를 가지는 penalty 함수다. LASSO와 달리 많은 concave penalty는 $\lambda$에 의존하기에 $P(\beta | \lambda) \neq \lambda P(\beta)$이고, MCP와 SCAD의 penalty function은 concavity를 조절하는 tuning parameter $\gamma$가 존재한다. 



  • SCAD(Smoothly Clipped Absolute Deviations)의 penalty function :

$$ P(x | \lambda , \gamma) = \begin{cases} \lambda |x| & \text{if $|x|\leq \lambda $}\\
    \frac{2\gamma \lambda |x|-x^{2}-\lambda ^{2}}{2(\gamma-1)} & \text{if $\lambda < |x| < \gamma \lambda$}\\
\frac{\lambda^{2}(\gamma+1)}{2} & \text{if $|x| \geq \gamma \lambda $}
  \end{cases} $$

여기서 $\gamma > 2$. $|x| \leq \lambda $ 일 때 LASSO의 penalty와 동일하며, $|x| \geq \lambda \gamma$에서는 상수만 남는다. 

 

  • MCP(Minimax Concave Penalty)의 penalty function :

$$ P(x | \lambda ) = \begin{cases} \lambda |x| - \frac{x^{2}}{2\gamma} & \text{if $|x|\leq \gamma \lambda $}\\
\frac{1}{2} \gamma \lambda ^{2} & \text{if $|x| > \gamma \lambda $}
  \end{cases} $$

여기서 $\gamma > 1$


미분을 통해 두 penalty효과를 더 자세하게 알 수 있다.


  • derivative of SCAD :

$$ \dot{P}(x | \lambda , \gamma) = \begin{cases} \lambda, & \text{if $|x|\leq \lambda $}\\
    \frac{\gamma \lambda -|x|}{\gamma-1} & \text{if $\lambda < |x| < \gamma \lambda$}\\
0 & \text{if $|x| \geq \gamma \lambda $}
  \end{cases} $$

  • derivative of MCP :

$$ \dot{P}(x | \lambda ) = \begin{cases} \lambda |x| - \frac{x}{\gamma}sign(x) & \text{if $|x|\leq \gamma \lambda $}\\
0 & \text{if $|x| > \gamma \lambda $}
  \end{cases} $$


SCAD와 MCP 모두 회귀계수 0에서 LASSO와 같은 penalty 변화율을 적용한다. 회귀계수를 증가함에 따라 penalty의 변화율을 연속적으로 완화시킴으로써 최종적으로 0까지 낮춰주게 된다. 한편 MCP는 회귀계수가 0에서 벗어나면 바로 penalty 변화율을 완화시키지만 SCAD는 일정 수준까지 LASSO와 동일한 penalty 변화율을 적용한다. 

댓글