이번 글의 핵심인 Regression Splines를 다루기 전에

Basis Functions를 먼저 정리하고 넘어가도록 하겠습니다.




사실, Basis Functions은 새로운 개념이 아니라

앞에서 소개한 polynomial and piecewise-constant regression models, 그리고

이번에 소개할 regression splines가 모두 basis functions에 해당합니다.




Basis functions이란,

변수 X에 적용될 수 있는 family of functions이나 transformations()를 사용하는 것입니다.


즉, X에 대해서 linear model을 적합하는 것이 아니라 아래의 모델을 적합하는 것입니다.




이때 는 고정되어 있으며 무엇인지 알고 있습니다.


이해가 잘 안되신다면 

polynomial regression에서는 에, 그리고

piecewise constant function에서는 에 해당한다는 것을 생각하신다면

쉽게 이해되실 것입니다.




Basis functions의 특징은

predictor  에 대한 standard linear model로 생각할 수 있기 때문에

계수를 추정하기 위한 least squares나 선형 모델을 위한 모든 도구들을 사용할 수 있다는 것입니다.













이제 본격적으로 Basis functions에 속하는 모델 중 하나인

Regression Splines에 대해서 살펴보도록 하겠습니다.



Degree- spline는, 각 knot에서 자기 자신과 도함수부터 계도함수까지 모두 연속인

piecewise degree- polynomial입니다.


※ 수학적으로 정리하자면 가 모두 연속인 함수 


※ knot = 함수의 계수가 변하는 점 (the point where the coefficients change)

knots가 많을수록 더욱 flexible해진다.




예를 들어, cubic spline은 자기 자신과 도함수, 그리고 이계도함수가 연속이어야 하고

linear spline은 함수가 연속이기만 하면 됩니다.



위의 그림은 wage 데이터에 대해서 knot가 age = 50 일 때의 여러가지 piecewise polynomials를 나타낸 것입니다.



윗줄의 왼쪽 그림은 piecewise cubic으로 곡선이 과도하게 flexible한 것을 확인할 수 있습니다.


이러한 문제를 해결하기 위해 곡선이 연속이라는 조건을 추가한 결과가 윗줄의 오른쪽 그림입니다.

하지만, 여전히 age = 50에서 곡선이 부자연스러운 V자형을 하고 있음을 알 수 있습니다.



다음으로 도함수와 이계도함수가 모두 연속이라는 두 가지 조건을 추가한 결과가 아랫줄의 왼쪽 그림입니다.

이러한 곡선을 위에서 설명한 것과 같이 cubic spline이라고 합니다.

일반적으로, K 개의 knots를 갖는 cubic spline은 4 + K degrees of freedom을 갖습니다.


그리고 아랫줄의 오른쪽 그림은 age = 50 에서 연속인 linear spline에 해당합니다.










그렇다면 이번에는 어떻게 연속 조건을 만족하는 piecewise degree-d polynomial을 적합시킬 수 있을지를 살펴보겠습니다.


연속 조건을 만족시키기 위해서 각 knot 마다 truncated power basis function(TPB)을 추가시킵니다.

[편의를 위해 TPB라 부르도록 하겠습니다.]


Piecewise degree-d polynomial의 TPB는 아래와 같습니다.



(이때, 은 knot입니다.)


위의 식을 통해 알 수 있듯이 TPB는 에서 계도함수까지 모두 연속임을 알 수 있습니다.




(출처 : https://www.youtube.com/watch?v=Es0aXmCshm4&index=13&list=PLUXWLrdMaU9vK0mvcRRbg83RqwFvTjHJq&t=0s)


더욱 자세한 이해를 위해 위의 그림을 살펴보도록 하겠습니다.


knot가 1개일 때, TPB를 추가한 linear spline의 식은 아래와 같습니다.



여기서 이므로 위의 식을 아래와 같이 정리할 수 있습니다.




위의 그림을 다시 살펴봅시다.

주어진 data에 대해서 식을 적합시킨 결과는 그림에 있는 식과 동일합니다.


그림을 통해 TPB는 함수의 연속성을 보장해준다는 것을 확인할 수 있습니다.






이번에는 TPB를 cubic spline에 대해 적용시켜 보도록 하겠습니다.


TPB가 추가된 cubic spline은 아래와 같습니다.




 

따라서 절편(intercept)과 3 + K개의 predictors를 least squares regression을 이용해 추정하는 것입니다.

이러한 이유로, cubic spline을 K개의 knots로 적합시키는 것은 K+4 degrees of freedom입니다.







하지만, splines는 predictors의 외부 영역(outer range)에서는 높은 variance를 가집니다.

즉, X가 매우 작거나 매우 큰 값을 가질 경우에 해당합니다.


위의 그림은 wage 데이터에 대해 cubic splines을 3개의 knots를 이용해 적합시킨 결과를 나타낸 것입니다.

파란색의 cubic splines를 보면 X가 매우 작은 영역과 매우 큰 영역에서 신뢰 구간의 영역(band)가 넓어짐을 알 수 있습니다.



이와 달리, natural cubic spline은 다소 안정적인(stable) 형태를 갖고 있습니다.

Natural spline이란, additional boundary constraints를 추가한 것입니다.


Additional boundary constraints는 가장 작은 knot보다 작거나, 가장 큰 knot보다 큰 X에 해당하는 영역에서

함수가 직선(linear)이어야한다는 조건을 부여합니다.










Regression Splines에서 고려할 것은

'knots를 어디에 놓을 것인가'와 'knots를 몇 개 놓은 것인가' 입니다.



우선, knots를 어디에 놓을지를 생각해봅시다.


더 많은 knots를 포함하는 regression splines은 더욱 flexible해집니다.

이를 통해, 함수가 급격하게 변하는 곳에 knots를 많이 놓고

함수가 안정적으로 보이는 구간에는 적은 knots를 놓는 것이 효율적이라는 것을 알 수 있습니다.


이러한 방법이 잘 작용하기는 하지만 일정한 간격으로 knots를 놓는 것이 일반적입니다.

이를 구현하는 방법 중 하나는 원하는 자유도(degrees of freedom)을 구체화(specify)한 다음에

컴퓨터로 하여금 알아서 일정한 분위(uniform quantile)에 knots를 위치하도록 하는 것입니다.


이 방법을 wage 데이터에 적용한 결과가 아래의 그림 중 왼쪽에 해당합니다.

아까 Natural cubic spline을 설명할 때 가져왔던 그림과는 달리

knots가 자동으로 25, 50, 그리고 75 백분위수로 정해졌습니다.


그림을 통해 알 수 있듯이 함수가 급격하게 변하는 구간에 knots가 많이 놓였으며

동시에 knots의 간격이 일정하다는 조건을 만족시키고 있습니다.





이번에는 knots를 몇 개 놓아야 할지에 대해서 정리해보겠습니다.

Knots를 몇 개 놓을지를 정하는 것은 자유도(degrees of freedom)을 몇으로 할지를 정하는 것과 동일합니다.


첫 번째 방법은 여러 개의 knots를 시도해본 다음에 가장 보기 좋은 (the best looking) 곡선을 만드는 K를 고르는 것입니다.


두 번째 방법은 cross-validation입니다.

Cross-validation을 이용해 가장 작은 cross-validated RSS를 만드는 K를 고르는 것입니다.




위의 그림은 Natural spline과 Cubic splines를 10-fold cross-validation 했을 때,

자유도(degrees of freedom)에 따른 MSE(Mean Squared Error)를 나타낸 것입니다.


그림을 통해 알 수 있듯이,

두 가지 방법은 거의 동일한 결과를 보입니다.


또한 Natural Spline은 three degrees of freedom을, cubic spline은 four degrees of freedom일 때가 적절하다는 것을 알 수 있습니다.








일반적으로 Regression splines이 polynomial regression보다 훨씬 좋은 결과를 냅니다.

그 이유는 polynomial regression은 flexibility를 위해 high degree를 사용해야 하지만

regression splines은 knots의 개수를 추가함으로써 동일한 degree를 유지하면서 flexibility를 높일 수 있기 때문입니다.



이러한 사실은 위의 그림을 통해서도 확인할 수 있습니다.


위의 그림에서 degree-15 polynomial과 15 degrees of freedom의 natural cubic spline을 비교한 것입니다.

파란색 곡선의 degree-15 polynomial은 양 끝의 boundaries에서 바람직하지 않은 결과를 보임을 확인할 수 있습니다.

이와 달리 빨간색 곡선의 natural cubic spline은 boundary에서도 데이터에 꽤나 잘 맞아 떨어지는 결과를 보입니다.



'An Introduction to Statistical Learning > 7. Moving Beyond Linearity' 카테고리의 다른 글

Smoothing Splines  (0) 2018.05.07
Step Functions  (0) 2018.05.02
Polynomial Regression  (0) 2018.05.02
The Methods to Move Beyond Linearity  (0) 2018.05.02