결정계수 R^2, 상관계수의 제곱 r^2의 차이 증명(Coefficient of determination VS Squared correlation coefficient)
Introduction
많은 이들이 결정계수 R^2과 상관계수의 제곱 r^2을 동등하게 여긴다. 이는 통계학에서 두드러지는데, 실제로 책 <앤디 필드의 유쾌한 R 통계학>에서는 결정계수를 r^2으로 계산하도록 하고, 통계학 특화 프로그래밍 언어 R의 매우 유명한 package, caret package의 함수 postResample마저도 그렇다.
“상관계수를 제곱한 값, 즉 을 결정계수(coefficient of determination)라고 부른다. 이 값은 한 변수의 변이성(variability) 또는 변동(variation)을 다른 변수가 어느 정도나 공유하는지 말해주는 척도이다.”
책 <앤디 필드의 유쾌한 R 통계학>
Caret package 개발자의 설명 문서, topepo.github.io/caret/measuring-performance.html#measures-for-regression
그러나 이는 사실이 아니다. 정확히는, 성립할 수도 있지만 일반적으로 그렇지 않다.
우리가 어떤 수학 성적 예측 모델을 만들었다고 해보자. 이 모델은 학생 10명의 수학 성적을 각각 31점, 24점, 45점, 27점, 60점, 0점, 71점, 65점, 51점, 57점으로 예측하였고, 실제 수학 성적은 10점, 20점, 30점, 40점, 50점, 60점, 70점, 80점, 90점, 100점이였다. R의 postResample 함수와 excel의 rsq는 이 모형의 결정계수를 0.1832로, python의 sci-kit learn package는 0.012로 계산한다. 분명히 같은 데이터와 모델에 대한 같은 지표인데도, 값이 다르다. 결정계수의 정의가 모호하기 때문일까? 그렇지 않다.
결정계수의 정의는 이렇다.
$R^{2}=1-\dfrac{\sum 잔차^{2}}{\sum 편차^{2}}$
이때 잔차는 실제값-예측값, 편차=실제값-평균값이다. 또한 $\sum 잔차^{2}$를 $SS_{res}$로, $\sum 편차^{2}$를 $SS_{tot}$로 표기하며, $SS_{reg}=\sum(편차-잔차)^{2}=\sum(예측값-평균값)^{2}$도 사용한다. 즉 $R^{2}=1-\dfrac{SS_{res}}{SS_{tot}}$이다.
정리하면 아래 표와 같다. 이때 $y$는 실제값, $\hat y$는 예측값, $\overline{y}$는 평균값이다.
표기 | 정의 |
$SS_{res}$ | $\sum(y-\hat y)^{2}=\sum(잔차)^{2}$ |
$SS_{tot}$ | $\sum(y-\overline{y})^{2}=\sum(편차)^{2}$ |
$SS_{reg}$ | $\sum(\hat y -\overline{y})^{2}=\sum(편차-잔차)^{2}$ |
즉 모델이 완벽한 예측에 성공했다면, 혹은 완벽히 데이터를 설명한다면 예측값이 실제값과 같아져 $R^{2}=1$ 이 된다. 반면 예측에 크게 실패했을 때는 제한 없이, 이를테면 $R^{2}=-100$이 될 수도 있다.
이를 실제 데이터로 생각해보자. 파란색 직선은 예측 모델, 검은색 직선은 실제 데이터의 평균값이다. 빨간색 수직선은 편차=실제값-평균값, 하늘색 수직선은 잔차=실제값-예측값이며 겹치는 부분은 혼합하여 나타냈다. 또한 편차-잔차=예측값-평균값은 검은색 직선과 점들 사이의 거리이다. 이 경우 $R^{2}=0.8192$ 로, 모델이 상당히 훌륭하게 데이터를 설명하고 있음을 알 수 있다.
이 부분에서 결정계수를 상관계수의 제곱으로 처리하는 것이 타당하지 않음을 알 수 있다. 상관계수는 실수이기 때문에 상관계수의 제곱은 항상 0 이상이기 때문이다. 그러나 앞서 서술하였듯이 결정계수는 0 미만이 될 수 있다. 저런 등식이 성립하는 경우는 오직 일부 알고리즘 기반 모델뿐이다. 왜 이러한 오해가 생겼는지 수식적으로 접근해보자. (실제로 결정계수와 상관계수의 제곱은 같을 때가 있으니 말이다.)
피어슨 상관계수(pearson correlation)
우선 상관계수의 정의를 명확히 하고 가겠다. 이 정의를 명확히 아는 사람들은 스크롤을 내려 다음 내용을 봐도 무방하다.
우리는 어떤 하나의 변수의 분포를 표현하기 위해 평균과 분산 또는 표준 편차를 가장 많이 이용한다. 그렇다면 두 개의 변수의 분포는 어떻게 표현할까? 두 변수는 서로 독립적일 수도 있지만 하나의 변수에 따라 다른 하나의 변수가 증가 또는 감소하는 어떤 상관관계를 가지고 있을 수 있다. 물론 단순히 증가나 감소가 아닌 복잡한 관계를 가질 수 있다. 일단 선형 관계를 생각해보자. 이러한 관계는 단순히 각 변수에서의 평균과 분산을 통해 잘 나타날까? 다음 예시를 보자.
위 세 개의 예시는 x, y축 모두 1부터 12까지의 자연수를 갖는 분포를 나타내기 때문에 평균과 표준 편차는 같다. 실제로 변수가 퍼져있는 정도(분산)는 같지만 그 방향(상관관계)은 다르다. 첫 번째는 오른쪽 위 방향으로 퍼져있고, 두 번째는 오른쪽 아래 방향, 세 번째는 모든 방향으로 고르게 퍼져있다. 따라서 두 변수의 분포를 잘 표현하기 위해선 두 변수를 함께 고려하여 산포도를 나타내야 한다. 공분산(covariance)이 이를 위한 지표다. 다음은 공분산에 대한 식으로 분산에 대한 식과 비교해 본다면 더 잘 이해할 수 있을 것이다.
$ {E}(X)=\mu ,\: {E}(Y)=\nu$로 표기한다면,
$ {Cov}(X,\:Y)= {E}((X-\mu)(Y-\nu))=\dfrac{\sum_{i=1}^{N}(X_{i}-\mu)(Y_{i}-\nu)}{N-1}$
이를 조금 정리하면
${Cov}(X,\:Y)={E}((X-\mu)(Y-\nu))={E}(XY-X\nu -\mu Y+\mu\nu)={E}(XY)-{E}(X)\nu -\mu{E}(Y)+\mu\nu$
즉 ${Cov}(X,\:Y)={E}(XY)-\mu\nu$
분산(var)이 다음과 같이 정의된 것과 그 성질을 생각해보자.
${Var}(X)={E}((X-\mu)^{2})=\dfrac{\sum_{i=1}^{N}(X_{i}-\mu)^{2}}{N-1}$
${Var}(X)={E}(X^{2})-\mu^{2}$
이러한 공분산은 두 변수가 양의 상관관계(위 그림에서 1번)를 가지면 양의 값을 가지게 되고 음의 상관관계(위 그림에서 2번)를 가지면 음의 값을 가지게 된다. 그리고 두 변수가 강한 상관관계(직선에 가까운)를 가지면 절댓값이 커지며 반대로 상관관계가 약할수록 0에 가까워진다. 하지만 이런 공분산을 상관성에 적용하기에는 치명적인 단점이 하나 있다. 공분산은 절대적인 크기를 비교할 수 없다. 공분산의 절댓값은 선형성에 영향을 받지만 데이터의 절대적인 크기(더 정확히는 산포도)에도 영향을 받기 때문이다. 즉, 공분산의 절댓값이 더 크더라도 개형이 직선에 가깝다고 말할 수 없다. 이는 같은 분포의 수에 각각 10배씩만 해 보아도 알 수 있다. 10배를 한다고 데이터의 모양은 바뀌지 않지만 공분산은 100배가 된다.
이런 단점을 보완하기 위해 값을 각각의 산포도로 나누어 줄 수 있다. 이와 같이 공분산을 각각의 변수의 표준 편차로 나누어준 값을 피어슨 상관계수라고 한다. 이렇게 정의하면 값이 –1에서 1 사이로 계산되고 각각의 변수의 산포도에 영향을 받지 않게 된다.
$r_{XY}=\dfrac{\sum_{i=1}^{n}(X_{i}-\mu)(Y_{i}-\nu)}{\sqrt{\sum_{i=1}^{n}(X_{i}-\mu)^{2}}\sqrt{\sum_{i=1}^{n}(Y_{i}-\nu)^{2}}}$
모든 것은 최소자승법으로부터 시작되었다
앞서 서술하였듯 상관계수의 제곱은 마치 결정계수처럼 다뤄져 왔다. 이 시발점은 선형 회귀를 위한 최소자승법이다. 최소자승법은 잔차 $e_{i}=Y_{i}-\hat Y_{i}$ 의 제곱합, 즉 $SS_{res}$ 를 최소화하는 방법으로, 통계학에서 매우 널리 사용된다.
최소자승법을 이용한 선형 회귀에서, 실제값과 예측값 사이의 상관계수 $r(Y,\:\hat Y)$ 은 $r(Y,\:\hat Y)^{2}=\dfrac{SS_{reg}}{SS_{tot}}$ 가 성립하게 된다. 이는 최소자승법을 이용한 선형 회귀의 두 가지 성질 때문이다. 첫째로 ${E}(Y)={E}(\hat Y)=\overline{y}$ 가 되는 성질(다르게 말해 잔차의 합이 0이 되는 것이다), 두 번째로 예측값과 잔차 사이에는 상관관계가 없다는 성질이다. 여기서 상관관계가 없다는 말은 예측값 $\hat y$ 와 잔차 사이의 공분산이 0임을 의미한다. 이 두 성질은 모두 근본적으로 최소자승법에서의 잔차의 성질로부터 유도된다. 이를 이제부터 알아보도록 하자.
$$r(Y,\:\hat Y)^{2}=\dfrac{\left(\sum_{i=1}^{n}(Y_{i}-\overline{y})(\hat Y_{i}-\overline{y})\right)^{2}}{\left(\sum_{i=1}^{n}(Y_{i}-\overline{y})^{2}\right)\left(\sum_{i=1}^{n}(\hat Y_{i}-\overline{y})^{2}\right)}=\dfrac{\left(\sum_{i=1}^{n}(Y_{i}-\hat Y_{i})(\hat Y_{i}-\overline{y})+\sum_{i=1}^{n}(\hat Y_{i}-\overline{y})^{2}\right)^{2}}{\left(\sum_{i=1}^{n}(Y_{i}-\overline{y})^{2}\right)\left(\sum_{i=1}^{n}(\hat Y_{i}-\overline{y})^{2}\right)}$$
$$=\dfrac{\left(\sum_{i=1}^{n}(\hat Y_{i}-\overline{y})^{2}\right)^{2}}{\left(\sum_{i=1}^{n}(Y_{i}-\overline{y})^{2}\right)\left(\sum_{i=1}^{n}(\hat Y_{i}-\overline{y})^{2}\right)}=\dfrac{\sum_{i=1}^{n}(\hat Y_{i}-\overline{y})^{2}}{\sum_{i=1}^{n}(Y_{i}-\overline{y})^{2}}=\dfrac{SS_{reg}}{SS_{t ot}}$$
최소자승법을 이용한 선형회귀에서 잔차의 성질
선형 회귀 모형을 $\hat Y_{i}=\hat\beta_{0}+\hat\beta_{1}X_{i}$로, 잔차를 $e_{i}=Y_{i}-\hat Y_{i}$로 표현하면 아래 성질들이 성립한다. ($\hat\beta_{1}$과 $X_{i}$를 벡터로 생각하여 곱셈 대신 내적을 이용하면 더 많은 변수에도 일반화 가능하다.) $\hat Y_{i}$ 는 예측값을 의미함을 상기하자.
$\sum_{i=1}^{n}e_{i}=\sum^{n}_{i=1}X_{i}e_{i}=\sum^{n}_{i=1}\hat Y_{i}e_{i}=0$
이제 이것이 성립하는 이유를 알아보자!
최소자승법의 정의에 의해 $\hat\beta_{0}$와 $\hat\beta_{1}$은 $\sum_{i=1}^{n}e_{i}^{2}$을 최소로 만들어야 한다. 따라서, $\hat\beta_{0}$와 $\hat\beta_{0}$을 각각에 대하여 편미분하였을 때 그 편미분계수가 0이라는 사실을 이용할 수 있다. $\sum_{i=1}^{n}e_{i}^{2}=\sum_{i=1}^{n}(Y_{i}-\hat\beta_{0}-\hat\beta_{1}X_{i})^{2}$로 표현하여 편미분계수가 0임을 이용하면 아래의 두 식을 얻을 수 있다.
$-2\sum_{i=1}^{n}X_{i}(Y_{i}-\hat\beta_{0}-\hat\beta_{1}X_{i})=0$
$-2\sum_{i=1}^{n}(Y_{i}-\hat\beta_{0}-\hat\beta_{1}X_{i})=0$
다시 $e_{i}=Y_{i}-\hat\beta_{0}-\hat\beta_{1}X_{i}$임을 이용하면 $\sum_{i=1}^{n}e_{i}=\sum_{i=1}^{n}X_{i}e_{i}=0$이 성립한다.
$\hat Y_{i}=\hat\beta_{0}+\hat\beta_{1}X_{i}$이므로 $\sum_{i=1}^{n}\hat Y_{i}e_{i}=0$ 또한 성립한다.
한편, 공분산의 정의에 잔차의 평균이 0이라는 사실을 적용하면, 예측값과 잔차 사이의 공분산의 분자에는 '모든 것은 최소자승법으로부터 시작되었다'의 마지막 수식처럼 $\sum_{i=1}^{n}(Y_{i}-\hat Y_{i})(\hat Y_{i}-\overline{y})$ 항이 존재하게 된다. 이때 $e_{i}=Y_{i}-\hat Y_{i}$이므로 식은 $\sum_{i=1}^{n}\hat Y_{i}e_{i}-\overline{y}e_{i}$ 으로 표현되고, $\overline{y}$ 는 상수이다.
따라서, $\sum_{i=1}^{n}(Y_{i}-\hat Y_{i})(\hat Y_{i}-\overline{y})=0$ 이므로 '모든 것은 최소자승법으로부터 시작되었다'의 마지막 수식으로부터 상관계수의 제곱이 잔차의 성질에 의해 $\dfrac{SS_{reg}}{SS_{tot}}$ 와 같아짐을 확인할 수 있다.
결정계수가 때때로 상관계수의 제곱과 같은 이유
우리는 바로 전에 최소자승법을 이용한 선형 회귀에서 상관계수의 제곱이 $\dfrac{SS_{reg}}{SS_{tot}}$와 같아지는 것을 확인하였다. 지금부터는 결정계수와 $\dfrac{SS_{reg}}{SS_{tot}}$ 사이의 관계를 알아볼 것이다. 두 식이 같기 위해서, $SS_{t ot}= SS_{res}+ SS_{reg}$가 성립해야 하지만 이는 일반적으로 성립하지 않는다. (이 이유는 결정계수의 정의를 조금만 생각해본다면 알 수 있다.) 그렇다면 최소자승법을 이용한 선형 회귀에서는 어떨까? 최소자승법을 이용한 선형 회귀에서 예측값과 잔차 사이의 공분산이 0이었다는 점을 기억하자.
$SS_{tot}=\sum_{i=1}^{n}(Y_{i}-\overline{y})^{2}=\sum_{i=1}^{n}\left((Y_{i}-\hat Y_{i})+(\hat Y_{i}-\overline{y})\right)^{2}=SS_{res}+SS_{reg}+2\sum_{i=1}^{n}(Y_{i}-\hat Y_{i)(}\hat Y_{i}-\overline{y})=SS_{res}+ SS_{reg}$
즉 최소자승법을 이용한 선형 회귀에서 $SS_{t ot}= SS_{res}+ SS_{reg}$가 성립하므로 이 경우에 $R^{2}=1-\dfrac{SS_{res}}{SS_{t ot}}=\dfrac{SS_{reg}}{SS_{tot}}$임을 알 수 있다. 또한 이때 상관계수의 제곱도 $\dfrac{SS_{reg}}{SS_{tot}}$와 같기 때문에 결정계수와 상관계수의 제곱이 같아진다.
왜 상관계수의 제곱은 결정계수로 둔갑했을까
위에서 살펴본 것처럼 결정계수는 때때로 상관계수의 제곱과 같지만, 결코 등식으로 일반화할 수는 없다. 그럼에도 불구하고 상관계수의 제곱이 결정계수로 둔갑한 이유는 무엇일까? 같은 알파벳이기 때문에 발생한 발음상 혼란, 그리고 대표적 통계적 분석 기법인 최소자승법을 이용한 선형회귀 등에서의 동등성이 있을 것이다. 하지만 이런 이유는 표면적일 뿐, 보다 근본적인 이유가 있다. 바로 통계학과 인공지능이 데이터를 바라보는 관점의 차이다. 통계학 서적들에서 결정계수와 상관계수의 제곱이 혼동된 반면 인공지능 개발에 특화된 sci-kit learn 패키지에서는 명확히 구분되었다는 점을 상기하자. 통계학에서는 데이터를 ‘설명’하기 위해 노력한다. 반면 인공지능은 데이터를 ‘예측’하는 것을 목표로 한다. 즉 각 학문은 같은 데이터를 서로 다른 관점으로 접근한다. 통계학으로부터 파생된 결정계수는, 선형 모델을 집중적으로 다루어 온 통계학의 관점에서 주로 ‘설명력’으로 비추어진다. 상관계수 또한 데이터를 ‘설명’하기 위한 통계적 수단이기 때문에 통계학에서만 유난히 두 계수가 혼동되어 사용되고 있으리라 추정된다. 통계학과 달리 인공지능 분야에서는 비선형 모델들이 적극적으로 활용될 뿐만 아니라 상관계수가 거의 사용되지 않는다. 즉 인공지능 분야에서는 모델들이 얼마나 데이터를 정확하게 ‘예측’하는지의 지표를 훨씬 중요하게 간주하기 때문에 결정계수를 정확한 정의대로 계산한다고 생각할 수 있다.
Written by Xylene & Killer T Cell