본문 바로가기
ISLR

Chap 07 Moving Beyond Linearity

by 지식광부키우기 2019. 12. 16.

 

Polynomial Regression

 

linaer function : $f(x) = \beta_{0} + \beta_{1}x$

 

quadratic functon : $f(x) = \beta_{0} + \beta_{1}x + \beta_{2}x^{2}$

 

cubic function : $f(x) = \beta_{0} + \beta_{1}x + \beta_{2}x^{2} + \beta_{3}x^{3}$

 

$\vdots$

 

$f(x) = \beta_{0} + \beta_{1}x + \beta_{2}x^{2} + ... + \beta_{d}x^{d}$

 

기존 선형 모델

 

$f(x_{1}, ,,., x_{d}) = \beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + ... + \beta_{d}x_{d}$에서

 

$x_{1} = x, x_{2} = x^{2}, ..., x_{d} = x^{d}$

 

계수 $\beta_{0}, \beta_{1}, ..., \beta_{d}$는 최소 제곱법을 사용하여 쉽게 추정할 수 있습니다.

 

$\hat{\beta_{0}}, \hat{\beta_{1}}, ..., \hat{\beta_{0}}$ 계수를 추정하는 것보다 

 

$\hat{f(x)} = \hat{\beta_{0}} + \hat{\beta_{1}}x + \hat{\beta_{2}}x^{2} + ... + \hat{\beta_{d}}x^{d}$ 예측치에 더 관심이 있습니다.

 

보통 $d$는 3 또는 4로 하거나 교차 검증을 사용하여 d를 정합니다.

 

그림1

 

왼쪽 그림에서 실선은 $\hat{f(x)} = \hat{\beta_{0}} + \hat{\beta_{1}}x + \hat{\beta_{2}}x^{2} + \hat{\beta_{3}}x^{3} + \hat{\beta_{4}}x^{4}$입니다.

 

점선은 추정된 95% 신뢰 구간 $\hat{f(x)} \pm 2 \cdot se{\hat{f(x)}}$을 의미합니다.

 

오른쪽 그림에서 실선은 $\hat{\pi(y > 250 | x)} = exp\left \{{\hat{f(x)}}  \right \}/[1 + exp\left \{ \hat{f(x)} \right \}] = sigm\left \{ \hat{f(x)}  \right \}$입니다.

 

점선은 추정된 95% 신뢰 구간 $sigm[\hat{f(x)} \pm 2 \cdot se{\hat{f(x)}}]$을 나타냅니다. 

 

 

Piecewise Polynomials

 

A Step function은 고차항의 다항적합을 피하기 위해 사용됩니다.

 

x의 범위 안의 Cutpoints 또는 knot $c_{1}, c_{2}, ..., c_{K}$가 선택되고 K + 1개의 더미 변수를 만들기 위해 사용됩니다.

 

$C_{0}(x) = I(x < c_{1}) $

$C_{1}(x) = I(c_{1} \leq x < c_{2}) $

$\vdots  $

$C_{K-1}(x) = I(c_{K-1} \leq x < c_{K}) $

$C_{K}(x) = I(x \geq c_{K})$

 

$f(x) = \beta_{0} + \beta_{1}C_{1}(x) + \beta_{2}C_{2}(x) + ... + \beta_{K}C_{K}(x)$ 적합을 위해 최소 자승법을 사용합니다. 

 

$c_{1} = 35, c_{2} = 50, c_{3} = 65$

 

그림2

 

계단 함수 (step functions)는 쉽게 작동합니다.

 

Interactions를 쉽게 만들 수 있고 해석도 쉽습니다.

 

Knots의 선택이 문제가 될 수 있습니다.

 

선이 연결되지 않은 함수가 될 수 있습니다.

 

A piecewise polynomial의 자유도는 

 

$\beta_{00} + \beta_{10}x + \beta_{20}x^{2} + ... + \beta_{d0}x^{d}$ if $x < c_{1}$ 

$\beta_{01} + \beta_{11}x + \beta_{21}x^{2} + ... + \beta_{d1}x^{d}$ if $c_{1} \leq x < c_{2}$ 

$\vdots$  

$\beta_{0K} + \beta_{1K}x + \beta_{2K}x^{2} + ... + \beta_{dK}x^{d$} if $x \geq  c_{K}$

 

그림3

 

 

Regression Splines

 

A degree-d spline은 각 knot에 자유도 d-1까지 미분가능한 연속성을 갖는 a piecewise degree-d polynomial입니다.

 

A piecewise polynomial보다 복잡성을 훨씬 줄여줍니다.

 

자유도 d인 piecewise polynomial의 파라미터의 개수는 

 

$(K+1)(d+1) = Kd + K + d + 1$ (# intervals x # coefficients)

 

제약의 개수는 Kd (# knots x # constraints per knot) 입니다.

 

자유도 d spine의 파라미터 개수는 K + d + 1입니다.

 

결과적으로, degree-d spline에 더 작은 $var{\hat{f(x)}}$이 나타납니다. 

 

 

A degree-d spline은 선형 모델로 나타낼 수 있습니다.

 

$f(x) = \beta_{0} + \beta_{1}b_{1}(x) + ... +  \beta_{d}b_{d}(x) + \beta_{d+1}b_{d+1}(x) + ... + \beta_{d+K}b_{d+K}(x) $

 

$b_{1}(x) = x$ 

$b_{2}(x) = x^{2} $

$\vdots  $

$b_{d}(x) = x^{d}$

 

$b_{d+k}(x)$ = $(x-c_{k})^{d}$ if $ x > c_{k} $ 다른 경우엔 0 입니다. (for k = 1, ..., K)

 

 

A linear spline

 

$f(x) = \beta_{0} + \beta_{1}b_{1}(x) + \beta_{2}b_{2}(x) + ... + \beta_{1+K}b_{1+K}(x)$

 

$b_{1}(x) = x $

 

$b_{1+k}(x) = x - c_{k} $ if $x > c_{k}$ 다른 경우엔 0 입니다. (for k = 1, ..., K)

 

 

A quadratic spline

 

$f(x) = \beta_{0} + \beta_{1}b_{1}(x) + \beta_{2}b_{2}(x) + ... + \beta_{2+K}b_{2+K}(x) $

 

$b_{1}(x) = x$ 

$b_{2}(x) = x^{2}$

 

$b_{2+k}(x) = (x-c_{k})^{2}$ if $ x > c_{k}$ 다른 경우엔 0입니다. (for k = 1, ..., K)

 

 

A cubic spline

 

$f(x) = \beta_{0} + \beta_{1}b_{1}(x) + \beta_{2}b_{2}(x) + ... + \beta_{3+K}b_{3+K}(x) $

$b_{1}(x) = x $

$b_{2}(x) = x^{2} $

$b_{3}(x) = x^{3} $

$b_{2+k}(x) = (x-c_{k})^{3}$ if $ x > c_{k} $ 다른 경우엔 0입니다. (for k = 1, ..., K)

 

 

안타깝게도, a spline은 x의 범위가 벗어난 곳에서는 높은 분산을 가질 수 있습니다.

 

A natural spline은 x의 극한 범위에서는 선형성을 강제합니다.

 

그림4

 

 

K knots를 어디에 놓아야 할까요?

 

f(x)가 더 빠르게 변할 것이라 기대되는 지역에 더 많은 knots를 f(x)가 더 안정적이라 기대되는 지역에 더 적은 knots를 놓습니다.

 

데이터의 균일 quantiles를 고려합니다.

 

Knots placement at the 25th, 50th, and 75th percentiles of x

 

그림5

 

 

어떻게 많은 knots를 사용해야 할까요?

 

최고로 보이는 커브를 생성하는 숫자를 시도합니다.

 

숫자가 다른 knots에 대해 교차 검증을 실행합니다. 

 

-> 전체적으로 가장 작은 교차 검증된 RSS를 보이는 K 값을 선택합니다. 

 

 

Smoothing Splines

 

$(x_{1}, y_{1}), ..., (x_{n}, y_{n})$은 관측된 샘플 데이터입니다.

 

A smoothing spline은 $\sum_{i=1}^{n}\left \{ y_{i} - f(x_{i}) \right \}^{2} + \lambda \int f''(x)^{2}dx$을 최소화하는 함수입니다.

 

$\lambda$는 고정된 nonnegative 튜닝 또는 smoothing 파라미터입니다.

 

첫 번째로 RSS를 구하기 위해 f(x)를 데이터에 맞게끔 만듭니다.

 

두 번째는 roughness penalty이며, f(x)의 변동을 제어합니다.

 

$\lambda$가 작을 수록, f(x)는 더 변동합니다. 결국 $\lambda = 0$일 떄 $y_{i}$는 보간합니다.

 

$\lambda -> \infty$이면 함수 f(x)는 선형이 됩니다. 

 

Unique values of $x_{1}, ..., x_{n}$에서 knots를 가진 natural cubic spline이 smoothing spline입니다.

 

Smoothing splines은 $\lambda$를 선택함으로써 knot-selection issue를 피합니다.

 

$\lambda$ 대신에 the effective degrees of freedom이 구체화 될 수 있습니다. 

 

교차 검증으로 RSS를 가장 작게 만드는 $\lambda$ 또는 $df_{\lambda}$의 값을 선택합니다. 

 

그림6

 

 

Local Regression

 

$x_{0}$에서 local regression Algorithm

 

$x_{0}$과 제일 가까운 x 값의 케이스들 s = k/n을 모읍니다.

 

각 k 케이스들에 $w_{i}$의 가중치를 할당합니다.

 

가중된 제곱의 합을 최소화합니다. $\sum_{i=1}^{k}w_{i}\left \{ y_{i} - f(x_{i}) \right \}^{2}$

 

$x_{0}$에 적합된 값은 $\hat{f(x_{0})}$입니다. 

 

그림7

 

선택해야 사항들

 

가중치 $w_{1}, ..., w_{k}$

 

$f(x)$의 형태

 

The span s

 

The span s는 smoothing spline의 $\lambda$ 역할을 합니다. 

 

s가 작을 수록 변동이 커집니다.

 

교차 검증은 s를 고르기 위해 사용됩니다. s를 직접 고를 수도 있습니다.

 

그림8

 

 

Generalized Additive Models

 

$x_{1}, ..., x_{p}$로 부터 y를 예측하는 유연한 방법입니다.

 

기존의 다중 선형 회귀 모델을 확장시켜 비선형 관계를 위해 만든 방법입니다. 

 

$f(x_{1}, ..., x_{p}) = \beta_{0} + \beta_{1}x_{1} + ... + \beta_{p}x_{p}$ 

 

$f(x_{1}, ..., x_{p}) = \beta_{0} + \beta_{1}f_{1}(x_{1}) + ... + \beta_{p}f_{p}(x_{p})$

 

$f_{1}(x_{1}), ..., f_{p}(x_{p})$는 (smooth) 비선형 함수입니다. 

 

 

Prediction of y = wage from $x_{1}$ = year, $x_{2}$ = age, and $x_{3}$ = education

 

그림9

 

$f(x_{1}, x_{2}, x_{3}) = \beta_{0} + f_{1}(x_1) + f_{2}(x_{2}) + f_{3}(x_{3})$

 

$f_{1}(x_{1})$과 $f_{2}(x_{2})$는 natural splines입니다.

 

$f_{3}(x_{3})$는 piecewise linear function입니다.

 

 

Prediction of y = wage from $x_{1}$ = year, $x_{2}$ = age, and $x_{3}$ = education

 

그림10

 

$f(x_{1}, x_{2}, x_{3}) = \beta_{0} + f_{1}(x_1) + f_{2}(x_{2}) + f_{3}(x_{3})$

 

$f_{1}(x_{1})$과 $f_{2}(x_{2})$는 smoothing splines 입니다.

 

$f_{3}(x_{3})는 piecewise linear function입니다.

 

 

결론

 

비선형성을 위한 많은 접근들이 있습니다.

 

교차검증은 다른 선택지들을 만드는데 도움을 줄 수 있습니다.

댓글