댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
사이트 로그인
1. 기본 개념
회귀 분석에서는 X'X 가 역행렬이 존재한다는 가정하에서 회귀계수를 추정합니다.
하지만 역행렬이 존재 하지 않는다면 어떤 방식으로 회귀계수를 추정할까요?
회귀분석에서 발생할 수 있는 여러가지 문제점 중에서
다중공선성의 문제를 해결함과 동시에 변수 선택이 가능한 회귀분석의 한 종류를 소개하고자 합니다.
먼저 본격적으로 ridge와 lasso 회귀분석을 소개하기 전에, Gauss-Markov Theorem에 대해 간략히 소개하자면,
"선형 회귀에서 구한 회귀계수 추정량이 선형이고 비편향적인 추정량 중에서 분산이 가장 작다"라는 정리 입니다.
이런 추정량 외에도 편의를 주더라도 더 작은 분산을 가진 추정량을 찾아보자! 라는게 축소추정의 기본 idea입니다.
첫 번째로 Ridge 회귀분석 입니다. Ridge 회귀분석은 맨 처음에는 X'X가 역행렬이 존재하지 않을때,
대각원소에 어떤 수를 더해주어서 역행렬이 존재하도록 만들었다고 합니다.
후에, 원래의 회귀계수 추정량을 구하는 최소제곱법 방법에서, 아래의 제약 조건을 부여하여, 회귀계수를 추정하게 됩니다.
최소제곱법의 추정량을 살펴보시면, 회귀계수의 입장에서는 타원의 형태를 띄고 있고,(회귀계수가 2개일 때)
제약조건은 원의 형태를 띄고 있음을 알 수 있습니다.
이를 라그랑주 승수법을 통해 위와 같은 방정식으로 바꾸어, 회귀계수의 추정량을 구할 수 있습니다.
lasso 회귀분석도 마찬가지로 원래의 최소제곱법에 제약조건을 부여합니다.
Ridge 회귀분석과는 다르게 제약조건이 사각형의 형태라는 것을 알 수 있습니다.
마찬가지로 라그랑주 승수법을 통해 다음과 같은 방정식으로 바꾸어, 회귀계수의 추정량을 구할 수 있습니다.
그림으로 표현하자면 다음과 같이 Ridge 회귀분석 같은 경우에는 제약조건이 원 형태로, lasso 회귀분석 같은 경우에는
제약조건이 사각형 형태로 나타나는 것을 확인 할 수 있습니다.
여기에서 lasso 회귀분석에서 회귀계수 중 하나가 0이 되는 경우를 위의 그림과 같이 확인할 수 있습니다.
이는 lasso 회귀분석은 분산을 축소시킴과 동시에 변수를 선택하여 추정하는 방법임을 알 수 있습니다.
2. 실제 분석
mlbench 패키지의 Sonar 데이터를 활용, 로지스틱 분석을 해보면,
위와 같이 회귀 계수가 매우 크게 나타나여, 완벽한 분류를 하는 overpitting 문제가 발생되었다고 볼 수 있습니다.
이를 해결하기 위해 다른 여러 방법이 있겠지만 lasso 회귀분석을 통해 위의 데이터를 분석해보도록 하겠습니다.
glmnet 패키지를 이용, lasso 회귀분석을 하기 전에 cv.glmnet 함수를 통해 축소계수를 구해야 합니다.
축소 계수의 값에 따라 Deviance가 변화하는 그래프를 plot(cv.lasso)를 통해 확인 할 수 있고,
여기에서의 분산을 가장 줄여주는 축소계수를 찾아 lasso 회귀분석을 할 수 있습니다.
마지막으로 lasso 회귀분석을 통해 축소된 회귀계수를 확인 해보면,
다음과 같습니다. 위의 로지스틱 회귀분석보다 계수가 매우 축소된 것을 확인 할 수 있으며, . 으로 표시된 변수는
계수가 0인 변수를 뜻하며, 이를 통해 회귀분석 동시에 변수선택이 가능함을 직접 확인 할 수 있습니다.
이상으로 Ridge와 lasso 회귀분석에 대한 포스팅을 마치겠습니다.
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5