일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 제주2주살이
- 혼자공부하는SQL
- GenAI
- RStudio
- 책리뷰
- Jupyter notebook
- digital marketing
- 에이바우트
- 티스토리챌린지
- PRIMARY KEY
- 맛집
- 클러스터형인덱스
- 독후감
- 유럽여행
- 김호연작가
- PRML
- 스플라인
- 스토어드 프로시저
- 제주도여행
- 제주도
- Github
- 혼공S
- 런던
- SQL
- 영국여행
- R
- Linux
- 보조인덱스
- 디지털마케팅
- 오블완
- Today
- Total
Soy Library
[논문리뷰] [Xuming He, Pin Ng, 1999] COBS: qualitative constrained smoothing via linear programming 본문
[논문리뷰] [Xuming He, Pin Ng, 1999] COBS: qualitative constrained smoothing via linear programming
Soy_Hwang 2021. 10. 13. 00:14
이때까지 많은 smoothing spline기법이 많이 개발되어왔지만, monotonicity(단조성)나 convexity/concavity, periodicity 등과 같은 제약조건을 젹용하는데에는 어려움이 있었다. 해당 논문에서는 이러한 제약조건을 만족하는 smoothing spline 기법을 소개한다. COBS 모형은 Xuming He 와 Peide Shi에 의해 맨 처음으로 고안되었고 그 이후 다른 연구자들에 의해 추가 연구가 진행되었다.
COBS 모형은 몇몇 데이터에 대해 flexible한 옵션들을 통해 이점을 갖는다고 말한다. COBS에서 fit에 대해 smoother를 제공하는 두 가지 옵션이 있는데 이를 (1) smoothing splines (with a roughness penalty)와 (2) regression splines (without roughness penalty) 라고 본 논문에서 칭한다.
Smoothing splines는 사용자가 직접 정하는 user-interactive한 모수로, 여기서는 $\lambda$라고 표기한다. 따라서 $\lambda$값을 조절함으로써 전체적인 fit의 매끄러운 정도가 달라진다. (user-defined의 람다값을 input으로 넣으면 knots가 selection 되지 않음.)
(* smoothing spline에 대해서 나중에 다뤄봐야겠다. 기본적으로 모든 데이터에 대해 knot를 가지고 그 knot 사이에 이어진 스플라인을 매끄럽게 만드는 방식이라고 생각하면 될 것 같다. )
아래는 샘플 사이즈가 100개인 데이터에 cobs모형을 적합한 선에 대한 그림이다. 검은색, 파란색, 빨간색 세 개의 경우 모두 knots의 개수를 99개(degree = 2인 quadratic spline으로 지정하였기 때문에 knots의 개수가 데이터의 개수와 같으면 코드가 돌아가지 않음.)로 지정하였고, 람다값을 바꿔서 적합해보았다. 검은색 선은 $\lambda = 0$인 케이스로 앞서 말한 (2) regression B-spline로써 fit을 적합한다. 즉, smooth하게 만드는 모수는 지정되지 않았지만 automatic하게 knots를 selection하여 fit을 정하게 된다. 다른 fit들에 비해 상대적으로 굴곡이 나타나는 것을 확인할 수 있다.
검은색 선에서의 knots를 출력한 결과, 99개로 initial knots를 주었지만 결과적으로 5개의 interior knots만 남은 것을 알 수 있다. 즉, 다섯 개의 interior knots 사이를 quadratic spline으로 이어 적합선을 만든 것.
> # the final knots
> fit_cobs$knots
[1] -0.0000010 0.5353535 0.6262626 0.7171717 0.8080808
[6] 0.8989899 1.0000010
$\lambda$값을 지정하면, 검은색 선과 같이 knots의 selection은 진행되지 않고 99개의 knots 사이의 quadratic spline의 smoothing이 진행이 된다.
> # the final knots of fit_cobs2
> fit_cobs2$knots
[1] -0.00000100 0.01010101 0.02020202 0.03030303 0.04040404
[6] 0.05050505 0.06060606 0.07070707 0.08080808 0.09090909
[11] 0.10101010 0.11111111 0.12121212 0.13131313 0.14141414
[16] 0.15151515 0.16161616 0.17171717 0.18181818 0.19191919
[21] 0.20202020 0.21212121 0.22222222 0.23232323 0.24242424
[26] 0.25252525 0.26262626 0.27272727 0.28282828 0.29292929
[31] 0.30303030 0.31313131 0.32323232 0.33333333 0.34343434
[36] 0.35353535 0.36363636 0.37373737 0.38383838 0.39393939
[41] 0.40404040 0.41414141 0.42424242 0.43434343 0.44444444
[46] 0.45454545 0.46464646 0.47474747 0.48484848 0.49494949
[51] 0.50505051 0.51515152 0.52525253 0.53535354 0.54545455
[56] 0.55555556 0.56565657 0.57575758 0.58585859 0.59595960
[61] 0.60606061 0.61616162 0.62626263 0.63636364 0.64646465
[66] 0.65656566 0.66666667 0.67676768 0.68686869 0.69696970
[71] 0.70707071 0.71717172 0.72727273 0.73737374 0.74747475
[76] 0.75757576 0.76767677 0.77777778 0.78787879 0.79797980
[81] 0.80808081 0.81818182 0.82828283 0.83838384 0.84848485
[86] 0.85858586 0.86868687 0.87878788 0.88888889 0.89898990
[91] 0.90909091 0.91919192 0.92929293 0.93939394 0.94949495
[96] 0.95959596 0.96969697 0.97979798 1.00000100
# lambda value of fit_cobs2
> fit_cobs2$lambda
[1] 0.03
적합된 결과에서 knots를 출력해보니 99개가 그대로 있다. 하지만 이때의 람다값은 내가 0.03으로 지정하여 검은색 선보다 선이 매끄럽게 나타나는 것이다.
자 그러면 람다 값은 사용자가 직접 조절하여 fit을 결정하는데, knots는 어떻게 selection되는 것일까? 이것이 이제 automatically 진행되는 것으로 본논문에서 강조하는 모양이다. 본 방법론에서의 knots는 회귀분석에서 variable selection step과 비슷하게 진행된다.
맨 처음에 다음의 AIC 값을 가장 작게 만드는 $N$ 값을 이용하여 initial interior knots의 수를 정한다.
$$ AIC(T) = \log \left({1 \over n} \sum_{i} \rho_\tau (y_i - \hat{m}_T (x_i) ) \right) + 2 (N + m) / n $$
Initial knots의 수를 정하였다면 knots를 sequentially deletion하면서 AIC 값이 가장 크게 감소되는 knot를 지우게 된다. 이는 회귀분석의 stepwise elimination과 매우 흡사한 방법이다.
'Study > Statistics' 카테고리의 다른 글
[개념] Necessity and sufficiency (0) | 2021.11.28 |
---|---|
[통계분석방법론] 기초 통계 지식 (1) | 2020.09.07 |
[통계계산방법론] Gaussian Elimination Algorithm과 Cholesky Algorithm (0) | 2020.04.30 |
[통계계산방법론] RIDGE 와 LASSO (0) | 2020.04.25 |