본문 바로가기
통계학

[통계학] 7장 - 회귀분석의 오차

by Point-Nemo 2024. 12. 7.

1. 실제값과 추정치의 차이

(1) 제곱근-평균-제곱 오차(RMSE)

회귀분석은 x로부터 y를 예측하는 데 쓰인다. 하지만 실제값과 예측치 사이에는 차이가 나기 마련이다. 그 차이를 나타내는 방법 중 하나가 바로 제곱근-평균-제곱 오차(root-mean-square error : RMSE)다. RMSE는 표준편차를 구하는 것과 작동 방식이 같다. 그래서 회귀직선의 RMSE는 추정의 표준오차 혹은 회귀의 표준오차라고도 한다. 

 

2007년 국민건강 영양조사의 만 10-90세의 한국인 남성 1,503명의 자료를 살펴보자.

펑균키 = 167.08cm 키의 표준편차(SDx) = 8.81cm
평균몸무게 = 65.48kg 몸무게의 표준편차(SDy) = 12.08kg
키와 몸무게의 상관계수 = 0.69  

 

해당 자료의 회귀분석 과정을 살펴보면 다음과 같다. 

 

한 개인의 키에 대한 정보로부터 그의 몸무게를 추정하고자 한다. 

● 같은 키를 가진 사람들로 준거집단을 만든다.

● 이들의 평균 몸무게로 그의 몸무게를 추정한다. 

 

이미지 출처: 류근관 교수의 계량 경제학(ezstat.snu.ac.kr)

 

위 그림은 해당 자료의 산포도와 회귀직선을 보여준다. A의 키는 143.6cm이며, 회귀분석 방법을 이용해 143.6cm 키에 해당하는 사람들의 평균 몸무게를 추정하면 42.0kg이 된다. 그런데 A의 실제 몸무게는 56.7kg이다. 즉, 실제값이 예측치보다 14.7kg이나 크다. 그 오차는 위의 그림에서 점 A와 회귀직선간의 수직 거리로 나타난다. B 또한 마찬가지이다.

추정오차 = 실제 몸무게 - 예측된 몸무게

 

추정오차(estimation error)는 일반적으로 잔차(residual)라고 부른다. 잔차 또는 추정오차의 전반적인 크기는 제곱근-평균-제곱(RMSE) 방식으로 측정한다. 산포도상의 1,503개 점 각가에 대하여 추정오차는 각 점으로부터 회귀직선까지의 수직 거리로 측정되고 RMSE는 다음과 같이 계산된다.

 

 

분모에 표본크기인 1,503 대신 자유도인 1,503 - 2 = 1,501을 사용하였다. 이는 회귀직선상의 추정치인 집단별 평균 즉, 회귀직선상의 y값은 절편과 기울기에 의해서 결정된다. 집단별 평균을 구할 때 표본으로부터 계산한 두 개의 정보를 사용한 셈이니 자유도가 두 개 줄어 분모가 1,501이 된 것이다.

※ 표준편차를 구할 때 분모에 [표본크기-1]이 들어가는 것은 표본으로부터 '평균'이라는 한 정보밖에 사용하지 않았기 때문이다.

 

RMSE가 9.3kg이라는 것은 "그림에서 전형적인 점은 회귀직선으로부터 위 또는 아래로 9.3kg 정도 떨어져 있다. 즉, 실제 몸무게는 추정된 몸무게와 약 9.3kg 정도 다르다."로 해석된다.

회귀직선의 RMSE는 산포도상의 점들이 회귀직선으로부터 수직거리로 얼마나 떨어져있는지 그 전반적인 크기를 알려준다.

 

(2) RMSE와 표준편차

회귀직선과 RMSE의 관계는 평균과 표준편차의 관계와 똑같이 생각할 수 있다. 

 

● 첫째, 회귀직선과 평균은 자료의 중심을 나타낸다. 전체자료의 중심이 평균인 반면 회귀직선은 x값에 따른 부분집단별 중심을 알려준다.

● 둘째, RMSE와 표준편차는 개별 관측치가 중심으로부터 떨어져 있는 정도를 측정해준다. 표준편차는 개별 관측치가 전체 평균으로부터 떨어져 있는 정도를 알려주는 반면, RMSE는 개별 관측치가 그가 속한 준거집단의 평균으로부터 떨어져 있는 정도를 알려준다.

● 셋째, 회귀직선과 RMSE를 알면 평균과 표준편차를 알 때처럼 68-95 법칙을 적용할 수 있다. 즉, 히스토그램에서 전체자료의 약 68%가 평균 주위로 ±1SD 이내에 있는 것처럼 산포도에서도 전체자료의 약 68%에 해당하는 점들이 회귀직선 주위로 ±1RMSE 이내에 있다.

 

회귀직선에서의 68-95 법칙 적용

 

2. 두 변수간 상관계수를 이용한 RMSE의 계산

회귀직선의 RMSE와 y의 SD

 

다음 그림은 회귀직선의 RMSE와 y의 표준편차를 비교하여 보여준다. y의 표준편차(SDy)는 y의 평균값을 지나는 수평선으로부터의 RMSE와 같다.

 

일반적으로 회귀직선의 RMSE는 y의 표준편차보다 작을 것이다. 왜냐하면 수평선보다는 회귀직선이 산포도상의 보다 많은 점들에 가까이 위치하기 때문이다. 또한 회귀직선은 사실 산포도상의 '보다 많은 점들에 보다 가까이' 가도록 그려진 맞춤형 직선이다. 회귀직선의 RMSE는 SDy에 비해 (1 - r^2)의 제곱근의 비율로 작아진다. 이때 r은 x와 y간의 상관계수이다.

회귀직선의 RMSE는 대략 (1 - r^2)의 제곱근 * SDy와 같다 

SDy는 추정 대상 변수인 y의 표준편차이다.

 

상관계수에 따라 세 가지 경우를 나눠보자.

 

ⓛ r = 1인 경우

상관계수가 1이라는 것은 산포도상의 모든 점들이 하나의 우상향하는 직선 위에 놓인다는 뜻이다. 회귀직선은 산포도상의 모든 점을 지나며 추정오차는 모두 0이 된다. 따라서 RMSE도 0이다. 

 

② r = -1인 경우

산포도상의 모든 점들이 하나의 우하향하는 직선 위에 놓이게 된다는 점만을 제외하면 앞의 경우와 동일하다. RMSE는 여전히 0이다.

 

③ r = 0인 경우

상관계수가 0이라는 것은 두 변수간의 선형관계가 전혀 없다는 것이다. 즉, 회귀직선은 x값으로부터 y값으 추정하는 데 전혀 도움을 주지 못한다. 따라서 회귀직선은 y의 평균값을 지나는 수평선이 되고 RMSE는 SDy와 대략 같게 된다. 위의 수식에 0을 넣으면 1 * SDy가 된다는 것을 알 수 있다.

 

※ RMSE와 SDy가 정확히 같지 않고 대략적으로 같은 이유는 RMSE를 구할 땐 '표본크기 -2'로 나누어준 반면, SDy를 구할 땐 '표본크기 -1'로 나누어주기 때문이다.

 

이러한 이유로 상관계수를 이용하면 SDy로부터 RMSE를 구할 수 있다. 회귀분석과 상관계수의 관계를 정리해보겠다.

 

● 상관계수는 산포도상의 점들이 회귀직선 주위로 밀집해 있는 정도를 나타낸다.

● x값이 1SDx 증가함에 따라 y값은 평균적으로 r * SDy만큼 증가한다.

● 상관계수는 RMSE (1-r^2)의 제곱근 * SDy의 공식을 통해 y의 표준편차로부터 RMSE를 구할 수 있게 해준다. RMSE는 회귀직선이 자료를 얼마나 잘 요약하는지 나타낸다. 

 

3. 잔차도

잔차도 그리기

 

다음 그림은 산포도의 각 점을 잔차도(residual plot)로 옮겨 그린 것이다. x값은 그대로 둔 채, y값만을 잔차로 바꾸어 좌표축에 표시하면 된다. 잔차도를 보면 전반적으로 양의 값을 갖는 잔차들이 음의 값을 갖는 잔차들과 균형을 이루고 있다. 잔차들의 합과 평균은 모두 0이기 때문에 그렇다.

 

 

뚜렷한 패턴을 보이는 잔차도

 

잔차도 상의 점들은 일반적으로 우상향 혹은 우하향 등의 특정한 패턴을 보이지 않는다. 반면 위의 잔차도는 비선형(non-linear)의 뚜렷한 패턴을 보이는데, 이와 같이 잔차도가 어떤 체계적인 패턴을 보이는 경우 회귀직선에 무언가 문제가 있다고 보아야 한다. 이는 설정된 직선의 회귀식이 체계적인 비선형의 관계까지 포착하는 데 역부족이었음을 시사한다. 

뚜렷한 패턴을 보이는 잔차도는 회귀직선이 두 변수간의 관계를 충분히 반영하지 못했기 때문에 얻어진다.

 

4. 세로띠

한국 남성의 (키, 몸무게) 산포도와 히스토그램

 

그림은 위에서도 등장했던 만 10-90세 한국 남성의 (키, 몸무게)로 이루어진 1,503개의 점들이다. 산포도엔 두 개의 세로띠가 있으며, 키가 큰 사람은 평균적으로 몸뭄게가 더 많이 나가기 때문에, 점선으로 이루어진 히스토그램(165cm 그룹)이 더 왼쪽에 위치함을 알 수 있다. 다만 두 히스토그램은 비슷한 모양을 띠고 있다. 중심은 다르지만 퍼진 정도는 거의 같은 것이다.

 

세로띠 내에서 점들이 위 아래로 퍼진 정도가 세로띠마다 같을 때, 자료가 등분산성(homoscedasticity)을 띤다고 한다. 라틴어로 같게 퍼져있다는 뜻이다. 그림의 산포도는 등분산성을 보인다. 세로띠별로 살펴보면 몸무게의 범위 즉, 최대값과 최소값의 차이는 다르지만 퍼진 정도는 같다. 실제로 세로띠별로 표준편차를 구해보면 표준편차는 모든 세로띠에 걸쳐 거의 비슷하다.

 

산포도가 위와 같이 타원형을 보일 때, 세로띠별로 추정오차의 전반적인 크기는 어느 세로띠에서나 비슷하다. 즉, 산포도가 타원형일 때 등분산성을 띤다고 할 수 있다.

 

교육과 소득의 산포도

 

반면 (교육년수, 소득)의 산포도인 위 그림은 이분산성(hetero-scedasticity)을 보인다. 라틴어로 다르게 퍼져있다는 뜻이다. 교육년수가 증가함에 따라 소득이 퍼진 정도는 증가하다가 감소한다. 산포도가 이와 같이 이분산성을 보일 때, 실제의 값이 추정지로부터 벗어나는 정도는 세로띠마다(x값마다) 다르다. 

 

자료에서 RMSE는 73만원으로 밝혀졌다. 하지만 이를 모든 세로띠에 일률적으로 적용하는 데는 무리가 있다. 교육년수가 6년인 경우 추정오차는 평균 25만원, 교육년수가 12년인 경우 추정오차는 평균 83만원이다.

 

등분산성의 가정

 

등분산성은 회귀직선을 중심으로하여 점들이 위 아래로 퍼진 정도가 모든 세로띠에 걸쳐 같다는 가정이다. 이는 세로띠별로 그 세로띠 안의 y 값들을 히스토그램으로 나타낼 때 그 퍼진 정도가 비슷하다는 점, 그리하여 각각의 히스토그램에 해당되는 표준편차들이 상호 비슷하다는 점을 의미한다.

산포도가 타원형이면 등분산성을 가정해도 무리가 없다.
이때, 세로띠 안의 점들이 회귀직선으로부터 떨어져 있는 거리는 대략 RMSE의 크기와 같다.
하지만 산포도가 이분산성을 띤다면 x값에 따라 점들의 퍼진 정도가 달라진다.
이때 RMSE는 위아래로 퍼진 정도의 평균적인 크기에 지나지 않는다.

 

5. 세로띠 안의 분포를 정규분포로 근사시키기

중간고사 평균 = 27.9 표준편차 = 8.5
기말고사 평균 = 56.4 표준편차 = 13.8
상관계수 = 0.49  

 

다음은 한 대학에서 계량경제학 과목을 수강한 학생들을 대상으로 중간고사 점수(범위 0 - 50)와 기말고사 점수(범위 0 - 100)를 조사한 것이다. 산포도는 타원형을 띤다.

 

예시문제) 중간고사 점수가 33점인 학생들 중에서 기말고사 점수가 66점 이상인 학생은 몇 %쯤 되겠는가?

 

위의 문제는 기존 정규분포 근사 문제와는 다르다. 중간고사에서 33점을 받은 학생들만을 대상으로 묻고 있다. 즉, 특정 세로띠로 범위를 제한했다. 중간고사에서 33점을 받은 학생들은 기존의 자료와 성격이 다르다. 이들을 정규분포로 근사시키려면 '새로운 평균'과 '새로운 표준편차'가 필요하다. 

 

① 회귀분석으로 새로운 평균을 구한다

-> 중간고사 점수(33점)가 평균보다 0.6SDx만큼 높으므로 이들의 기말고사 점수는 평균보다 0.49 * 0.6SDy만큼, 즉 0.49 * 0.6 * 13.8 = 4.1점만큼 높다. 따라서 새로운 평균은 56.4 + 4.1 = 60.5점이 된다.

 

② 새로운 표준편차를 구한다

-> 산포도가 타원형이므로 세로띠별로 퍼진 정도가 같다고 가정할 수 있다. 이때 표준편차는 RMSE와 거의 같게 된다. (1-r^2)의 제곱근 * SDy = 12로, 새로운 표준편차는 12가 된다. 

 

③ 정규분포로 근사시킨다.

 

다음과 같은 표준화를 통해, 중간고사 점수가 33점인 학생들 중 기말고사 점수가 66점인 학생들의 비율은 대략 50%로 예측할 수 있다.

회귀직선의 RMSE는 대략 (1-r^2)의 제곱근 * SDy와 같다.
자료의 산포도가 타원형일 때, 각 세로띠의 표준편차는 대략 RMSE의 크기와 같아 새로운 자료의 SD는 회귀직선의 RMSE로 구한다.

 

 

* 해당 글은 류근관 저서의 <통계학> 제 3판의 내용을 바탕으로 합니다 *