이번 포스팅에선 평소 수업시간에 귀가 닳도록 들은 "결정계수는 X가 많아지면 증가하는 경향이 있으니 수정된 결정계수를 확인해야 한다." 라는 말을 해석해보고자 한다.
결정계수
결정계수를 이해하는 데에 필요한 식은 위 2개다. SST 는 Total Sum of Squares의 약자, SSR은 Residuals Sum of Squares 의 약자이다. (위 공식에선 SSR을 사용했는데, Residuals 대신 Errors를 사용해 SSE로 쓰는 곳도 많다. 이 경우엔 SSR이 Sum of Squares Regression으로 해석되므로 혼동하지 않도록 주의해야 한다.) SST의 공식을 보면 평균과의 차이의 제곱합을 의미함을 알 수 있고, SSR은 회귀직선과 실제값 사이의 오차제곱합임을 알 수 있다. 결정계수가 사용되는 선형회귀는 결국 평균과 분산을 바탕으로 그 이상의 결과를 뽑아내는 작업이기 때문에, 분산에 사용되는 오차제곱합이 아주 중요한 의미를 갖는다.
차치하고, SST와 SSR이 차이가 크지 않다는 것의 의미가 무엇인지 생각해보자. SST는 단순히 데이터 각각의 값을 일정한 직선(평균)에서 뺀 것이기 때문에, SST만을 지표로 사용하겠다는 것은 데이터를 평균으로만 설명하겠다는 말과 일치한다. 하지만 데이터가 평균에 아주 조밀하게 몰려있다면 모를까 이런 방법은 어디에서도 사용하지 않을 것이다. 그런데 SSR은 회귀직선과 데이터 각각의 오차이므로, 이 값이 SST에 가깝다면 결국 회귀직선이 평균에 가까운 평평한 직선임을 의미한다. 이러한 직선은 데이터를 잘 표현했다고 말하기 힘들다.
따라서 이 직선이 얼마나 데이터를 잘 표현했나를 확인하기 위해 결정계수라는 지표를 만들었고, 공식이 위와 같은 것이다. SSR이 SST에 비해 작을수록 좋은 직선일 것이므로, 결정계수는 클수록 좋은 회귀직선임을 이해할 수 있다.
결정계수의 문제
그럼 이제 "결정계수는 X가 많아지면 증가하는 경향이 있으니 수정된 결정계수를 확인해야 한다."는 말의 실체가 무엇인지 살펴보도록 하자. (이 점은 혼자 머리를 굴려보다 도저히 모르겠어서 서치를 했다.)
https://www.youtube.com/watch?v=KjRrdb2x6dA&t=79s&ab_channel=Prof.Essa
결론부터 말하자면, SSR은 단순히 오차합이 아닌 오차제곱합이므로, 그 어떤 쓸모없는 독립변수가 추가된다 한들 SSR은 감소하지 않는다. 제곱은 근본적으로 음의 값을 띌 수 없기 때문이다.
https://m.blog.naver.com/sharp_kiss/221874092331
이와 관련해 직접 실험도 진행하신 분이 계셔서 글을 읽어보았다. 마지막 즈음에 완전히 랜덤한 값으로 X를 하나 더 추가해서 선형적합을 한 뒤 결정계수를 비교하는데, 소수점 셋째짜리까진 똑같은 값이 나왔지만 더 자세히 확인해보면 0.00001 정도라도 결정계수가 증가했다.
즉 별로 상관이 없는 설명변수가 추가된다 한들, 전혀 상관없다면 SSR이 그대로 멈추고 말지 증가하지는 않으며, 설명력이 떨어지는 변수가 추가되면 그 조금의 설명력이라도 찾아내어 SSR이 감소한다는 것이다. 여기서 "그 조금의 설명력" 이라는 것이 참 애매해서, 수정된 결정계수를 도입하여 변수를 추가하는 것이 옳은지 그른지를 확인해보는 것이다.
수정된 결정계수
수정된 결정계수 공식을 보면, 샘플의 크기와 독립변수의 개수를 사용하는 것을 알 수 있다. 샘플의 크기 N을 고정시켜놓고 독립변수의 개수 p만 고려해보면,(N-1) / (N - p -1) 을 k로 치환할 수 있다. 그러면 아래처럼 공식을 변형할 수 있다.
p가 0일 때 k는 1이고, p가 커질수록 k는 1보다 점점 커진다. 그러면 수정된 결정계수는 점점 작아지므로, 독립변수가 증가할수록 결정계수가 증가하는 현상을 보정할 수 있다.