머신러닝 18. 지도학습: 비선형회귀 (스플라인 회귀)


    목차
    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()




<참고 문헌="">


  1. 최점기 박사님 강의
comments powered by Disqus