본문 바로가기
Machine&Statistical Learning/GAM

Smoothing splines

by be-favorite 2020. 6. 9.

 

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

 

방태모

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

www.taemobang.com

※ prerequisites

선형 모형의 한계

다항 회귀와 계단 함수

Regression splines

 

Smoothing splines도 기저 함수(Basis functions)를 이용한 모델링 방식으로, 기저 함수로 polynomial function만을 이용하는 Regression splines와 달리 오차를 최소화하는 적절한 기저 함수를 찾아 $y_i$에 대한 예측을 수행한다.

 

목적 함수

관측된 데이터에 잘 적합하는 smooth 곡선(curve) $g(x)$를 찾기 위해서는, 결국 다음의 식을 최소화해야 한다.

 

$RSS = \sum_{i=1}^n (y_i - g(x_i))^2$

 

이때 만약 $g(x_i)$에 아무런 제약을 주지 않으면, 우리는 관측된 데이터의 모든 $y_i$를 반환하는 $g$를 선택함으로써 항상 RSS를 0으로 만들 수 있다. 이는 곧 지나치게 flexible한 곡선을 만들어내며 데이터에 과적합(overfitting)을 야기시킨다. 그래서 RSS를 최대한 작게 하면서도 smooth한 함수 $g$를 찾아야 하며, 이를 위해서는 적절한 penalty term이 필요하다:

 

$\sum_{i=1}^n (y_i - g(x_i))^2 + \lambda\int {g}''(t)^2dt$

where  $\lambda$  is a nonnegative tuning parameter.  $\cdots$  식 (1)

 

이를 최소화하는 $g$가 곧 smoothing spline이다. 즉, 위 식은 smoothing spline에서 최소화하고자 하는 목적함수에  해당한다. Penalty term은 $g$의 2차 미분에 적분을 취한 형태를 보이고 있는데, 이러한 penalty term이 가지는 의미에 대해 생각해보자. 먼저, ${g}''(t)$는 $g$의 2차 미분으로 기울기 변화량을 나타낸다. 이러한 이유로 함수의 2차 미분은 해당 함수의 roughness에 대한 측도로 여겨진다. 즉, $g(t)$가 t 근처에서 꾸불꾸불한 복잡한 모형을 띨수록 ${g}''(t)$의 절댓값은 커지며, 그 반대로 단조로운 형태를 띨수록 0에 가까워진다(그래서 직선의 2차 미분은 0이며, 직선은 완벽히 smooth함). 또한, 적분 기호 $\int$은 $t$의 범위에서 summation을 취하는 것으로 생각할 수 있다. 즉, Penalty term $\int {g}''(t)^2dt$은 함수 ${g}'(t)$의 전체 범위에서 총변화량을 의미한다. 만약 $g$가 매우 smooth한 함수라면, ${g}'(t)$는 상수에 가까워지므로 penalty term은 매우 작은 값을 가진다. 그러므로, $\lambda\int {g}''(t)^2dt$는 g가 smooth하게 만드는 역할을 한다. $\lambda$가 커질수록 penalty가 커지므로 $g$는 더 smooth 해질 것이다(간단한 모형을 의미함). 즉, $\lambda$는 smoothing spline의 bias-variance trade-off를 통제한다고도 볼 수 있다.

 

식 (1)을 최소화하는 $g(x)$는 특별한 성질을 갖는데, 그것은 $g(x)$는 $x_1, x_2, \cdots, x_n$를 knots으로 갖는 natural cubic spline과 같다는 것이다. 그러나, 둘은 정확하게 동일하진 않다. 목적함수에 penalty term이 포함되어 $g(x)$는 natural cubic spline의 shrunken 버전으로 볼 수 있으며, 이 shrinkage의 정도는 $\lambda$로 조절한다.

 

$\lambda$의 선택

조절 모수(tuning parameter) $\lambda$는 smoothing spline의 roughness를 조절한다. 구체적으로 말하면, $\lambda$는 모수(회귀계수)에 제약을 주거나 크기를 축소(shrinkage)하여 roughness를 조절한다. 그래서, smoothing splines의 자유도 계산에는 $\lambda$가 관여한다(자유도는 자유롭게 움직이는 모수의 수로도 표현되므로). 이러한 이유에서, smoothing splines의 자유도는 $df$가 아닌 $df_{\lambda}$(effective degrees of freedom)로 표기한다. 예를 들어, $\lambda$가 0에서 $\infty$로 움직이면 $df_{\lambda}$는 $n$에서 $2$까지 움직인다. $\lambda = 0$일 때 $df_{\lambda} = n$인 이유는 penalty가 없는 경우 smoothing splines은 모든 data points에 knots을 놓아서, 모든 data points를 따라가는 곡선을 추정하기 때문이다. 이러한 이유로, $df_{\lambda}$를 smoothing spline의 flexibility를 나타내는 측도로 생각할 수도 있다(클수록 flexible : Bias 감소, Variance 증가). 

 

effective degrees of freedom $df_{\lambda}$를 수식으로 정의할 수도 있는데, 그전에 먼저 다음과 같이 표현할 수 있는 식을 알아둬야 한다.

 

$\hat{g}_{\lambda} = S_{\lambda}y$  $\cdots$  식(2)

 

$\hat{g}$은 특정 $\lambda$ 값에 대한 식 (1)의 해를 의미한다. 즉, $\hat{g}$은 training points $x_1, \cdots, x_n$에 대한 smoothing splines의 적합 값 $n$개를 요소로 갖는 벡터이다. 식 (2)는 데이터를 smoothing splines에 적합시켜 나오는 적합값이 $n \times n$ 행렬 $S_{\lambda}$와 반응 변수 벡터 $y$의 곱으로 표현됨을 나타낸다. 그럼 이제 우리는 effective degrees of freedom $df_{\lambda}$를 다음과 같이 정의할 수 있다.

 

$df_{\lambda} = \sum_{i=1}^n \left \{ S_{\lambda} \right \}_{ii}$ 

 

 

$\lambda$에 따라 knots이 결정되는 smoothing spline에서는 regression splines에서처럼 knots의 수나 위치를 따로 선택할 필요가 없으며, 우리는 $\lambda$ 값만 결정해주면 된다. 이때 교차 검증(Cross-validation)을 통해 RSS(Residuals sum of squares)를 최소화하는 $\lambda$를 선택한다. smoothing splines에서는 data point를 하나 씩만 빼가며 모형을 적합하고 RSS를 계산하는 Loo-CV(Leave one-out)가 효율적으로 수행되며, 이는 regression splines 뿐만 아니라 임의의 기저 함수(basis functions)를 사용하는 least squares regression에서도 그렇다. Loo-CV Error를 계산하는 수식은 다음과 같다:

 

$RSS_{cv}(\lambda) = \sum_{i=1}^n (y_i - \hat{g}_{\lambda}^{(-i)}(x_i))^2 = \sum_{i=1}^n [\frac{y_i - \hat{g}_{\lambda}(x_i)}{1 - \left \{ S_{\lambda} \right \}_{ii}}]$ 

 

이때 위 첨자 $(-i)$는 i-번째 관측값만 빼고 적합시킨 것을 의미한다.

 

Figure 1 출처 - ISLR(2013)

 

다음의 그림은 앞전의 포스팅에서 쭉 사용했던 급여($Y$, 단위 : 1000달러) 데이터에 smoothing splines를 적합시킨 것이다. 빨간색 선은 사전에 $df_{\lambda} = 16$으로 설정하여 모형을 적합시킨 것이며, 파란색 선은 Loo-CV를 통해 선택된 최적의 $\lambda$로 적합시킨 smoothing splines에 해당한다. 이 데이터에서는 두 모형의 차이가 딱히 없어 보이지만, 자유도가 더 큰 빨간색 곡선이 좀 더 꾸불꾸불해(wigglier) 보이는 것은 명백하다. 또한, 이렇게 더 복잡한 모형을 적합시키더라도 모형 간에 큰 차이가 없기 때문에, 이러한 경우 $df_{\lambda} = 6.8$인 더 간단한 모형을 선호한다.

 

 

참고 문헌
James, Gareth, et al. An Introduction to Statistical Learning. Springer. 2013

'Machine&Statistical Learning > GAM' 카테고리의 다른 글

GAMs: Generalized additive models  (3) 2020.06.22
Local regressions  (0) 2020.06.10
Regression splines  (0) 2020.06.08
다항 회귀와 계단 함수  (0) 2020.06.08
선형모형의 한계  (0) 2020.06.06

댓글