Fitting 한 회귀 모델이 데이터에 얼마나 잘 맞는지 정량적으로 어떻게 판단할 수 있을까요? R2, 결정계수는 회귀모형의 설명력을 측정하는 데 사용하는 대표적인 회귀모델 성능측정 지표입니다.

위와 같이 4개의 표본이 있고 b0+b1X 회귀직선을 그렸습니다 우상단의 한 점을 봤을 때 해당 Yi는 평균 ˉY로부터 Yi−ˉY 만큼 떨어져 있고 이 값은 회귀직선으로부터 ˆYi−ˉY 만큼 설명되고 Yi−ˆYi 부분이 설명이 되지 않습니다. 즉, 다음과 같이 Yi−ˉY 를 풀어쓸 수 있고
Yi−ˉY = (ˆY−ˉY)+(Yi−ˆYi) = (ˆYi)+ei
ei 를 잔차라고 합니다. 이를 모든 점에 대해 제곱해서 합치면 (차이는 양/음 이므로 단순히 더한다면 0이 될 수 있어 제곱해서 양수를 만들어 더합니다), 다음과 같이 표현할 수 있습니다.
∑(Yi−ˉY)2=∑(ˆYi−ˉY)2+∑e2i
Total Sum of Sqaures (SST) = Regression Sum of Squares (SSR) + Error Sum of Squares (SSE)
위 수시으로부터 R2는 다음과 같이 정의됩니다.
R2=SSRSST=1−SSESST
R2 가 클수록 회귀모델의 설명력이 높다고 할 수 있으며 최대값이 1인 것을 알 수 있습니다. 수식으로부터 알 수 있듯이 SSE가 작고 SSR이 클수록 모델이 데이터를 잘 fitting 했다고 볼 수 있습니다.
Adjusted R-square
그렇다면 R2 만으로 회귀 모델을 잘 설명할 수 있을까요? R2의 가장 큰 문제점은 독립변수가 2개 이상인 다중회귀 분석에서 새롭게 추가된 변수가 전혀 도움이 되지 않는 변수라도 변수를 추가하기만 하면 R2가 거의 무조건 증가하게 된다는 점입니다.
예를 들어 다음과 같이 두 개의 모델이 있다고 가정해 보겠습니다.
M1:Y=β0+β1X1+ϵ
M2:Y=β0+β1X1+β2X2+ϵ
이러한 상황에서 모델 M1은 모델 M2의 특별한 케이스이므로 M1의 SSE (Residual Sum of Square, RSS) 가 M2의 SSE보다 작을 수 없습니다. 대신 M2는 M1에 비해 변수를 하나 더 가지고 있으니 SSE 관점에서는 어떻게든 조금은 줄게 되어 M2의 R2가 M1보다 높을 수밖에 없습니다. 즉, R2는 모델의 fitting 력만 확인하지 모델의 복잡도는 고려하지 않는다는 것이죠.
이를 개선하기 위해 기존 R2는 변화량의 총합의 비중으로 나타냈다면 adjusted R2는 변화량의 평균 (분산) 으로 모델의 설명력을 다음과 같이 나타냅니다.
adjR2=1−SSE/(n−k−1)SST/(n−1)
n,k는 각각 데이터, 변수의 수로 다른 값들이 고정되었을 때 k가 클수록 결정계수가 작아지게 됩니다. 즉, 변수가 추가됨에 따른 모델의 복잡도를 penalize하여 R2를 조정하는 것이죠.
'Theory > Statistics' 카테고리의 다른 글
Regression - 다중 선형 회귀 in Python (0) | 2021.04.15 |
---|---|
Regression - 다중 선형 회귀 (0) | 2021.04.15 |
Regression - 단순 선형 회귀 (0) | 2021.04.14 |
파이썬으로 보는 통계 (7) - 분산분석, ANOVA (0) | 2021.04.02 |
파이썬으로 보는 통계 (6) - F-검정을 이용한 등분산검정 (2) | 2021.04.02 |