결정계수(R²)란?
결정계수는 보통 \(R^{2}\)로 표기하며, 모델의 예측값이 실제 관측 데이터를 얼마나 잘 설명하는지를 나타내는 지표입니다. 다시 말해, 종속변수의 전체 분산 중에서 모델이 설명해 내는 비율을 뜻합니다. \(R^{2}\)는 예측값이 실제값과 완벽하게 일치하는 1(완벽한 적합)에서 시작해, 단순히 평균만 예측하는 수준과 다를 바 없는 0까지 이어지며, 모델이 평균을 그대로 쓰는 것보다 더 나쁠 경우에는 음수가 될 수도 있습니다.
계산기 사용법
실제 관측값(y) 목록과 그에 대응하는 예측값(ŷ) 목록을 입력하세요. 두 목록 모두 같은 순서로, 쉼표로 구분한 숫자로 넣어주면 됩니다. 계산기는 두 값을 짝지어 실제값의 평균을 구한 뒤, 잔차제곱합(\(SS_{res}\))과 총제곱합(\(SS_{tot}\))을 산출해 \(R^{2}\)와 설명된 분산 비율(%)을 돌려줍니다.
공식 풀어보기
$$R^{2} = 1 - \frac{SS_{res}}{SS_{tot}}$$ 입니다. 여기서 \(SS_{res} = \sum (y_{i} - \hat{y}_{i})^{2}\) 는 모델 예측 이후에도 남아 있는 오차를 나타내고, \(SS_{tot} = \sum (y_{i} - \bar{y})^{2}\) 는 데이터가 자기 평균을 중심으로 얼마나 흩어져 있는지(전체 변동)를 나타냅니다. \(SS_{res}\)를 \(SS_{tot}\)로 나누면 모델이 설명하지 못한 변동의 비율이 나오고, 이를 1에서 빼면 모델이 설명해 낸 비율이 됩니다.
예제로 살펴보기
실제값 = [3, −0.5, 2, 7], 예측값 = [2.5, 0.0, 2, 8]. 실제값의 평균 = 2.875. $$SS_{res} = 0.5^{2} + 0.5^{2} + 0^{2} + 1^{2} = 0.25 + 0.25 + 0 + 1 = 1.5$$ $$SS_{tot} = (0.125)^{2} + (3.375)^{2} + (0.875)^{2} + (4.125)^{2} \approx 0.0156 + 11.3906 + 0.7656 + 17.0156 = 29.1875$$ 따라서 $$R^{2} = 1 - \frac{1.5}{29.1875} \approx 0.9486$$ 이며, 이 모델은 전체 분산의 약 94.9%를 설명한다고 볼 수 있습니다.
자주 묻는 질문
\(R^{2}\)가 음수가 될 수도 있나요? 네, 가능합니다. 예측값이 매번 평균을 그대로 찍는 것보다도 못한 경우, \(SS_{res}\)가 \(SS_{tot}\)보다 커지면서 \(R^{2}\)가 음수가 됩니다.
\(R^{2}\)가 높으면 무조건 좋은 모델인가요? 꼭 그렇지는 않습니다. 과적합(overfitting)이나 의미 없는 변수를 추가하는 것만으로도 \(R^{2}\)가 부풀려질 수 있습니다. 잔차 그래프나 표본 외(out-of-sample) 성능과 함께 종합적으로 확인하는 것이 좋습니다.
\(R^{2}\)와 상관계수는 어떻게 다른가요? 단순 선형 회귀에서는 \(R^{2}\)가 실제값과 예측값 사이의 피어슨 상관계수(\(r\))를 제곱한 값과 같습니다.