머신러닝 20. 지도학습: 비선형회귀 (로버스트회귀 & 분위수회귀)


    목차
    1. 데이터셋 준비
      (1) 무작위 숫자로 데이터셋 생성: runif()
      (2) 반응변수 중 1개를 인위적으로 변경해 특이값 생성
    2. 로버스트 회귀분석 & 분위수회귀분석
      (1) 일반선형회귀모델 피팅: stats::lm()
      (2) 후버의 M 추정 모델 피팅: rlm()
      (3) 최소중앙값제곱(LMS) 모델 피팅: lqs(method = “lms”)
      (4) 최소절삭제곱(LTS) 모델 피팅: lqs(method = “lts”)
      (5) 최소절삭제곱(LTS) 모델 피팅: lqs(method = “lts”, quantile = 9)
      (6) 분위수회귀모델 피팅: rq()
    3. 모델 별 예측모델 추정 결과
    4. 회귀모델 간 성능비교
    5. 회귀모델 시각화
      (1) 각 모형별 적합선(추세선)
      (2) 각 모형별 잔차분포



024

일반회귀분석의 가정조건: 이상치/특이점 문제

  • 보통 일반 회귀분석은 예측식을 구성하는 독립변수들의 예측계수(회귀계수)를 구할 때 잔차의 제곱의 합이 최소과 되게하는 최소제곱법(Method of Ordinary Least Squares, OLS) 방법을 사용함

  • 잔차의 합=0이므로 제곱의 합이 최소가 되는 방법을 사용함

  • OLS로 회귀선을 추정하는 과정에서 특이점이 존재할 경우 이 특이점은 회귀직선의 결정에 큰 영향을 미치게 됨

로버스트 회귀(robust regresion)
  • OLS를 적용하는 모든 예측상황에서 사용가능하며, 가중치 메커니즘을 사용해 영향력 있는 관측치를 낮춰줌

  • 특히 데이터에서 이상치를 제외시킬 강력한 이유가 없는 경우에 유용함

  • 잔차의 제곱을 이용하는 최소제곱법 대신에 절대값의 합이 최소가 되도록 계수룰 추정하는 방식

● 절댓값을 이용.

분위수 회귀(quantile regresion)
  • 평균이 아닌 특정 분위값을 추정해서 그 위치에 있는 종속변수값을 사용해 아웃라이어의 영향을 해소

● 분위수를 구하면 단계별로 x가 변할 때 대충 y가 어느 위치인지 예상 가능. y축에 아웃라이어 있으니, x의 분위수를 나눠 상대적으로 아웃라이어에 대한 민감성을 낮춤.

예측모형의 성능(적합성) 평가척도

  • 오차들을 어떻게 모아서 오차의 평균값을 구할 것인가하는 관점

(1) MAE(Mean Absolute Error)

  • 평균절대오차: 오차들의 절대값의 평균

(2) MSE(Mean Squared Error)

  • 평균제곱오차: 오차를 제곱해서 평균을 구함

(3) RMSE(Root Mean Squared Error)

  • 제곱근 평균제곱오차: 오차를 제곱해서 평균한 값의 제곱근

(4) MAPE(Mean Absolute Percent Error)

  • 평균 절대퍼센트오차: MAE를 특정한 단위 대신 백분율로 고쳐서 계산한 것

● 수치예측할 때는 MAE, MSE, RMSE, MAPE를 많이 쓴다. 외부성능평가를 할 땐 이런 걸 쓴다. 이 오차도 실제 검증데이터를 가지고 y값과 추정된 y값(검증데이터를 활용해 구했던) 비교해보는 것이다. 여러가지 중에서도 오차가 가장 작은, 즉 각 4가지 지표 가장 낮은게 외부성능 평가에서 좋은 모델이 되는 것.

● 여러 모델 간에 내부적인 성능 평가를 할 때는 r-square, AIC, BIC, anova 함수의 RSS 를사용한다. (훈련데이터만 가지고 계산. 훈련데이터의 y값과 예측식에서 추정된 y값 을 가지고 내부 추정)


—————코딩——————————————————————————————————


1. 데이터셋 준비


(1) 무작위 숫자로 데이터셋 생성: runif()



(2) 반응변수 중 1개를 인위적으로 변경해 특이값 생성




2. 로버스트 회귀분석 & 분위수회귀분석


(1) 일반선형회귀모델 피팅: stats::lm()



(2) 후버의 M 추정 모델 피팅: rlm()



(3) 최소중앙값제곱(LMS) 모델 피팅: lqs(method = “lms”)



(4) 최소절삭제곱(LTS) 모델 피팅: lqs(method = “lts”)



(5) 최소절삭제곱(LTS) 모델 피팅: lqs(method = “lts”, quantile = 9)



(6) 분위수회귀모델 피팅: rq()




3. 모델 별 예측모델 추정 결과




4. 회귀모델 간 성능비교




5. 회귀모델 시각화


(1) 각 모형별 적합선(추세선)



(2) 각 모형별 잔차분포




<참고 문헌="">


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