머신러닝 18. 지도학습: 비선형회귀 (스플라인 회귀)
Written on October 22nd , 2019 by MJ 목차
1. 데이터셋 준비
(1) 무작위 숫자로 데이터셋 생성: runif()
(2) 예측변수와 반응변수 관계 시각화: plot()
2. 데이터탐색: 선형성에 대한 의심을 중심으로
(1) 선형회귀분석 실시: stats::lm() / summary()
(2) 회귀모델 성능(데이터 적합성) 파악: rcompanion::compareLM / anova()
(3) 회귀모델 시각화
3. 스플라인 회귀분석
(1) 스플라인 모델 피팅: quantile()
(2) 회귀모델 간 성능 비교: AIC() / BIC() / summary() / rcompanion::compareLM / anova()
(3) 회귀분석 모델 간 시각화 비교
(4) 스플라인회귀 그래프: predict()
4. 자연스플라인 회귀분석
(1) 자연스플라인 모델 피팅: stats::lm() / summary()
(2) 회귀모델 간 성능 비교: rcompanion::compareLM / anova()
(3) 회귀분석 모델 간 시각화 비교
(4) 자연스플라인회귀 그래프: predict()
024
1. 독립변수와 종속변수간 선형관계가 아닌경우의 대안
- 곡선회귀(Curvilinear regression); 비선형회귀(Nonlinear regression)
● 예측선이 하나의 직선으로 나오지 않으므로 새로운 그래프 모양을 찾은게 비선형회귀. y = a x x^2 + b 나, 거기서도 예측선이 잔차를 품지 못하면 삼차식, 사차식의 곡선의 예측선을 만든다. 이걸 다항회귀라고 한다.
● 수학에서 x에 제곱을 씌우니까 그래프의 곡선 모양이 나오던 거에서 착안한 것. 그래서 독립변수에 제곱을 씌워서 원하는 그래프를 만드는 것.
(2) 스플라인회귀분석(Spline Regression)
-
다항회귀의 차수를 높이는 방식은 예상치 못한 이상한 회귀함수 모양이 나타날 가능성이 있음
-
회귀스플라인은 매듭(knot)으로 나누어진 일정한 구간마다 낮은 차원의 다항식 모형을 적합하는 방식을 채택함
-
조각별 다항식(piecewise polynominal)이라고도 함
● 스플라인이라는 건 곡선이라는 뜻.
● x축 구간을 단계별로 쪼개서 이 구간 정도의 x가 투입되었을 때의 y값 예측하는 예측선을 그리고, 다음 구간의 x에 대한 예측선을 구하는 것.
● 컴퓨터는 직선 밖에 그리지 못하지만, 부드러운 벡터 곡선을 그리기 위한 기법.
—————코딩——————————————————————————————————
1. 데이터셋 준비
(1) 무작위 숫자로 데이터셋 생성: runif()
(2) 예측변수와 반응변수 관계 시각화: plot()
2. 데이터탐색: 선형성에 대한 의심을 중심으로
(1) 선형회귀분석 실시: stats::lm() / summary()
(2) 회귀모델 성능(데이터 적합성) 파악: rcompanion::compareLM / anova()
(3) 회귀모델 시각화
3. 스플라인 회귀분석
(1) 스플라인 모델 피팅: quantile()
(2) 회귀모델 간 성능 비교: AIC() / BIC() / summary() / rcompanion::compareLM / anova()
(3) 회귀분석 모델 간 시각화 비교
(4) 스플라인회귀 그래프: predict()
4. 자연스플라인 회귀분석
(1) 자연스플라인 모델 피팅: stats::lm() / summary()
(2) 회귀모델 간 성능 비교: rcompanion::compareLM / anova()
(3) 회귀분석 모델 간 시각화 비교
(4) 자연스플라인회귀 그래프: predict()
<참고 문헌="">참고>
- 최점기 박사님 강의