ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • R과 기초통계 - 좋은 회귀 모형? 회귀분석의 확장 LASSO
    머신러닝 with R 2019. 8. 24. 17:43

    회귀분석을 쓰는 이유

     

    두개의 포스팅을 통해 회귀분석을 공부해 보았다.

    회귀분석을 사용 하는 이유는 무엇일까?

    두 가지로 정리할 수 있는데 간단히 '해석'과 '예측' 을 위해서 사용한다고 할 수 있다.

    • 해석: 회귀식을 통해 입력 변수들이 목표 변수에 미치는 영향력을 측정
    • 예측: 입력변수를 통해 목표 변수를 예측
      • 해석 필요 없이 예측만을 위한 모델: random forest, kenel machine, deep learning... 

     

     

    좋은 회귀 모형이란?

    또 한가지 생각해 봐야할 부분은 좋은 회귀 모형은 과연 어떤 것인가에 대한 것이다.

    바로 "가장 적은 수의 독립변수로 종속 변수의 분산을 가장 많이 설명할 수 있는 모형" 이다.

     

    하지만 100개의 입력변수로 95% 설명한 모형과 10개의 입력변수로 80%를 설명한 모형이 있다고 할 때

    과연 어떤 모형이 좋은 것인가에 대해 생각해 볼 필요가 있다.

     

    일반적으로 입력 변수의 수가 증가하면 할 수록, 설명할 수 있는 종속변수의 분산도 증가한다.

    하지만, 입력변수가 늘어날 수록 에러도 함께 늘어난다. 

    통계학에서 데이터는 "에러를 포함하고 있는 확률 변수"라고 정의하기도 한다. 

    즉,  입력된 데이터가 늘어나면 오차의 영향력도 증가하는 것이다.

    입력변수가 일정 개수 이상 증가하게 되면 설명력이 오차의 양보다 커지게 되고 따라서 유의하지 않은 모형이 될 수 있다.

     

     

     

    회귀분석의 변수를 줄이는 방법

    그러면 회귀분석의 변수를 줄이는 방법에는 어떤 것이 있을까?

    먼저 필요가 없는 변수를 제거하는 방법이 있는데, 바로 선택을 이용한 제거법이다.

    저번에 공부한 전진선택, 후진제거, 단계선택 등이 있다.

    이 방법은 먼저 선택된 변수에 영향을 많이 받게 된다.

     

    두번째로, 변수의 개념을 2개의 요약된 변수로 줄이는 방법이 있다. 

    이 것은 "주성분 분석" 이라고 하는데, n 차원의 변수를 2차원 변수로 줄이는 방법이며,

    보통 이미지 분석에서 많이 쓰인다.

     

    세번째로 Lasso가 있다. 이는 변수 선택과 함께 변수의 영향력을 추정하는 방법이다.

     

    LASSO의 식 

    Lasso에서는 패널티의 의미가 중요하다.

    회귀분석의 최소제곱 추정(OLS)와 함께, 변수의 영향력이 t 보다 작으면 0으로 끌어내어 패널티를 준다.

    Lasso의 변수 선택 방법을 정리하면

    • 회귀식에서 베타값을 0으로 잡아당기는 역할을 하는것이 LASSO이다.
    • 람다(λ)는 패널티 함수로 베타 값을 0으로 끌어들이는 힘이다. 
    • 람다는 데이터로부터 cross - validation을 통해 영향력이 작은 베타를 회귀식에서 제거 한다. (변수 축소)

     

    LASSO의 문제점과 SCAD

    그렇다면, Lasso가 가진 단점은 무엇일까?

    바로 0으로 끌어들이는 힘이 모든 입력변수에 작용한다는 것이다.

    즉, 영향력이 큰 변수까지 잡아 당겨져 왜곡이 생길 수 있다는 것이다.

     

     

    LASSO의 결과

     

    OLS 그래프와 비교 했을 때, 베타값이 음수 일때는 과대 추정이 되고

    반대로 양수 일 때는 과소추정이 된 것을 볼 수 있다. 

    이러한 모형의 왜곡을 최소화 하기 위해 LASSO를 향상시킨 방법이 있는 "SCAD" 라는 변수 선택 법이다.

     

     

    SCAD의 결과

     

     

     

     

    [출처] 실무에 써먹는 머신러닝 with R

    반응형

    댓글

Designed by Tistory.