표와 그래프(5): 다중회귀분석

단순회귀분석은 독립변수(혹은 예측변수)가 변함에 따라 종속변수 (혹은 반응변수)가 얼만큼 변하는지를 보여준다는 점에서 피어슨 상관계수의 한계를 적어도 한 가지는 보완하고 있다. 그러나 그것도 여전히 피어슨 상관계수와 마찬가지로 제3 변수의 영향을 통제하지 못하며, 다범주 변수를 분석에 포함하지 못한다. 이 문제를 해결하려면 다중회귀분석을 사용해야 한다.

다중회귀분석(multiple regression analysis)은 단순회귀분석에 독립 변수(들)가 추가된 것이다. 그것은 한 개의 독립변수가 아니라 두 개 이상의 독립변수를 가지고 종속변수를 설명하거나 예측할 때 사용하는 통계 기법이다. 하지만 그 확장이 그리 단순하지 않다. 회귀모형에서 독립 변수가 추가된다는 것은 분석 그래프의 차원이 증가함을 의미하기 때문이다. 단순회귀의 경우는 2차원 공간이었지만, 다중회귀는 독립변수(혹은 예측변수)의 수에 따라 3차원, 4차원, 100차원, 심지어 1,000차원의 공간일 수 있다. 3차원까지는 분석 그래프를 어떻게 직관적으로 이해할 수 있겠지만 4차원을 넘어서면 직관적 이해가 불가능해진다.

예컨대 아래 그래프는 독립변수가 2개인 3차원 공간이라서 직관적 이해가 가능하다. 연비(MPG)가 차량무게(Weight)와 음의 관계이고, 엔진의 힘(Horsepower)과도 음의 관계이며, 그 둘이 모여서 연비를 규정하는 평면(이것을 회귀평면이라고 부름)을 구성하고 있음을 직관적으로 느낄 수 있다. 3차원 공간의 회귀평면조차 직관으로 느끼기 쉽지 않지만 그나마 직관이 따라 줄 수 있는 그래프는 딱 3차원까지이다.

multiple linear regression graph에 대한 이미지 검색결과

분석 그래프의 차원이 증가하면 계산이 복잡해질 뿐 아니라 ‘다중공선성(multicollinearity)’, ‘과적합(over-fitting)’, ‘차원의 저주’ 등과 같은 문제가 발생하기도 한다. 그런 부수적인 문제들까지 논의해야 하기 때문에 사실 다중회귀분석의 소개는 쉽지 않다. 그래도 수고를 해서라도 배울만한 가치가 충분하니 함께 그것을  공략해 보자.

다중회귀분석에 대한 서술은 단계적 접근을 취하겠다. (1) 최소한의 수학적 배경만 가지고 다중회귀모형을 이해하고 사용하고자 하는 독자, (2) 행렬과 미적분에 대한 지식을 가진 독자, (3) 빅데이터의 데이터마이닝에까지 다중회귀모형을 활용하고자 하는 독자로 점차 설명 수준을 높여가겠다.

(1) 고등학교 인문계 정도의 수학적 배경을 가진 독자

단순회귀분석에서 종속변수 y의 값을 예측하는 일차함수는 다음과 같이 제시되었다(앞 게시글 참조).

다중회귀분석에서는 종속변수 y의 값을 예측하기 위한 독립변수(혹은 통제변수)가 추가되므로 아래와 같이 변수가 여러 개인, 따라서 항(term)이 여러 개인 다차원 함수가 된다.

식 (2)는 y의 예측값()을 가지고 표현되었다. 이 식을 아래와 같이 종속변수의 관찰값()을가지고 표현할 수도 있다. 예측(추정)되는 대상은 모집단이기 때문에 회귀계수들을 그리스 문자로 표기했다. 즉, 는 회귀계수의 표본통계치이고 는 모수이다. 이 경우 오차(혹은 잔차)항()이 추가되어야 할 것이다.각 y 값에 대한 예측값은 오차가 존재하기 때문이다.

귀찮은 사람은 다음처럼 식 (2)와 (3)에서 변수를 대문자 Y, X로 표시하고(확률변수는 대문자로 표기) 아래 첨자 중 를 떼어버려도 상관없다. 당연히 Y는 이고, X는 이며, 는 1부터 까지 일 것이기 때문이다. 수학 표기에 익숙하지 않은 독자는 다소 복잡하기는 해도 오히려 식 (2)와 (3)을 사용하는 편이 혼란이 적을 것이다.

식 (2)와 (3)에서 는 회귀계수(절편 포함)의 갯수이다. 회귀계수는 우리가 구하려고 하는 미지수이니 는 곧 미지수의 갯수이기도 하다. 식 (2)는 다중회귀모형에서 종속변수가 독립변수의 효과(혹은 영향)를 선형적 결합하여 예측되는 것임을 보여준다. 간단히 말해 다중회귀모형은 독립변수들의 선형적 결합으로 종속변수를 예측(설명)하는 통계기법이다.

식 (2)에서 회귀계수는 단순회귀모형에서처럼 독립변수와 종속변수의 선형적 관계를 보여준다. 다만 단순회귀모형에서와 달리 다중회귀모형의 회귀계수는 회귀모형에 포함된 다른 독립변수들을 통제한 상태에서 특정 독립변수와 종속변수의 선형적 관계를 나타낸다.

논의를 단순화하기 위해 독립변수가 두 개인 아래 회귀식을 가지고 생각해보자.

식 (5)에서 회귀계수 은 변수 가 통제된 상태에서 독립변수 과 종속변수 사이의 선형적 관계를 나타낸다. 여기서 “통제된(be controlled for)”은 ‘를 변하지 못하게 한(holding constant)’이란 의미이다. 즉, 식 (5)에서는 회귀계수 은 를 변하지 못하게 했을 때 의 선형적 관계를 나타낸다는 말이다. 마찬가지로 회귀계수 는 변수 을 통제했을(변하지 못하게 했을) 때 의 선형적 관계를 나타낸다. 그래서 단순회귀모형의 회귀계수를 총 회귀계수(total regression coefficient)라고 부르는 반면 다중회귀모형의 회귀계수를 부분 회귀계수(partial regression coefficient)라고 부른다.

다중회귀모형에서는 단순회귀모형에서와 마찬가지로 잔차제곱의 합()을 최소화하는 최소자승법을 적용하여 회귀계수와 절편(을 구할 수 있다. 최소자승법을 사용해 식 (5)의 을 추정하면 다음과 같다.

위 추정식들은 언뜻 복잡해 보이지만 찬찬히 들여다보면 몇 가지 간단한 정보들의 조합이다. 회귀계수는 표본평균(), 표준편차(), 상관계수()을 알면 도출될 수 있다.

다중회귀계수는 모형(회귀함수) 내의 다른 독립변수(들)를 통제했을 때 어떤 독립변수가 한 단위 변화할 때 종속변수가 변화하는 양을 나타낸다. 예컨대 식 (5)에서 를 통제한 상태에서 한 단위의  이 변화할 때 가 변화되는 양을 나타낸다. 마찬가지로 을 통제한 상태에서 한 단위의 가 변화할 때 가 변화되는 양을 나타낸다.

결정계수를 구하는 방법은 단순회귀모형에서와 동일하다.

여기서 이며, 다만 SSE를 구할 때 필요한 를 구하는 식이 에서 로 바뀔 뿐이다.  값은 두 변수 로 이루어진 회귀모형이 종속변수의 변량(총제곱합)의 몇%를 설명하고 있다고 해석된다.

결정계수의 유의성은 역시 F 검정으로 수행된다. 검정을 위한 가설은 다음과 같이 달라진다.

 

모수들 중 적어도 하나는 0이 아니다.

만약에 가 기각되면 하나 이상의 모수는 0이 아니며 종속변수 와 독립변수의 집합  사이의 전반적인 관계는 통계적으로 유의미하다고 결론을 내릴 수 있을 것이다.

F 검정통계량은 MSR(회귀에 의한 제곱합의 평균)을 MSE(잔차제곱합의 평균)로 나눈 값이며, MSR과 MSE는 SSR과 SSE를 그에 대응하는 자유도로 나눈 값이다.

식 (7)에서 p는 독립변수의 갯수이다. 그리고

따라서 검정통계량 F는,

검정통계량을 구하면, 분자의 자유도가 이고, 분모의 자유도가 인 F분포에서 p값이 구해진다. 그 값이 유의수준(대체로 0.05)보다 작으면 영가설이 기각되고, 유의수준보다 크면 영가설이 기각될 수 없다.  자유도의 크기만 다를 뿐이지 F 검정 역시 단순회귀분석과 동일함을 알 수 있다.

만약 F검정에서 다중회귀 관계가 유의미하다고 나온다면, 각각의 개별 모수(회귀계수)의 유의성을 검증하는 t 검정을 실시할 수 있다. t 검정의 목표는 개별 모 회귀계수가 0이 아니라고() 결론내릴 수 있는지를 확인하는 것이다. 모  회귀계수의 개별 유의성에 대한 t 검정에는 다음과 같은 가설이 적용된다. 모수 에 대하여

검정통계량 t는

식 (10)에서 영가설이 참이라면 이다. 다른 회귀계수들의 모수에 대해서도 동일한 방식으로 t 검정을 실시할 수 있다.

검정통계량이 구해지면, 자유도 인 t분포에서 양측 검정의 p-값을 구하고, 그 값이 선택한 유의수준(대체로 0.05)보다 작으면 영가설을 기각하고 그렇지 않으면 영가설을 기각하지 못한다.

이상으로 회귀함수, 회귀계수, 결정계수, 회귀 모형의 통계적 유의미성 검증(F 검정), 모 회귀계수의 통계적 유의미성 검정(t 검정) 등 다중회귀분석에 기초가 되는 내용을 두루 살펴보았다. 기초 단계의 다중회귀분석 학습에서는 모수(회귀계수), 검정통계량, 결정계수를 도출하는 과정을 수학적으로 이해하는 것보다 실제로 통계 프로그램이 제공하는 회귀분석 결과를 얼마나 잘 해석할 수 있는가가 더 중요하다. 아무튼 지금까지 논의한 정도면 회귀분석 결과를 이해하는 데 필요한 최소한의 지식은 갖추는 것이 아닐까 생각된다.

한 가지 논의만 추가하자. 모든 통계기법은 적용되기 위한 전제조건이 있으며, 어떤 통계기법도 적절히 사용되려면 전제조건이 충족되어야 한다. 현실에서는 왕왕 전제조건이 무시된 채 통계기법들이 적용되곤 하지만 그것은 좋은 태도가 아니다.

회귀분석에는 세 가지 전제조건(가정)이 있다.

(1) 선형성(linearity):  독립변수의 각 수준에서 종속변수의 분포의 평균은 직선상에 위치한다. 즉, 회귀 모형은 종속변수와 독립변수(들)가 선형적 관계(linear relationship)를 갖는다고 가정될 수 있을 때 사용된다. 위 식 (4)에서처럼 회귀함수에서 모수(population parameters)는 그 선을 규정하며, 표본 데이터에 적합(fit)하여 추정된다(앞 게시글 참조).

(2) 동질적 분산(homogeneous variance): 의 모든 값에서 는 동일한 퍼짐(spread)의 정규분포를 갖는다. 다시 말하면, 조건부 확률분포   은 모두 동일한 분산 을 가진다. 이를 등분산성(homoscedasticity)이라고 한다.

(3) 독립(independence): 확률변수 는 통계적으로 독립적이다. 이 요건은 아래와 같이 오차항(error term, , 모수는 )를 가지고 표현할 수 있다.

위 식은 관찰값 를 기댓값과 오차()의 합으로 표시하고 있다. 여기서  는 독립적인 오차(independent errors)이며, 오차는 확률변수로서 평균()이 0이고 분산이 인 정규분포를 갖는다. 이는 독립변수 ()의 모든 값에 대하여 동일하다. 앞에서 최소자승법을 소개했는데 최소자승법을 가지고 회귀계수를 추정하려면 독립변수 와 오차항()이 통계적으로 상호독립적이어야한다.

이 세 가지 조건은 다중회귀분석 뿐 아니라 단순회귀분석에서도 충족되어야 한다. 그렇다면 우리가 분석하려는 데이터가 이 조건을 충족하는지는 어떻게 확인할 수 있을까? 가장 간편한 방법은 산포도(scatter plot)를 그려보는 것이다. 산포도는 데이터 분포의 선형성을 보여줄 뿐 아니라 이상값(outliers)과 영향력 있는 관측값을 탐지할 수 있게 해준다.

다중회귀분석의 경우는 산포도 대신 잔차 플롯(residual plot)을 사용한다. 종속변수의 관측값과 예측값의 차이()가 잔차(residuals) 혹은 오차(errors)이다. 식 (3)에서 가 잔차이다. 는 오차라고 불리기도 하고 잔차라고 불리기도 한다. (다소 혼란스럽지만 학계의 관행이라 오차플롯 대신 잔차플롯이라는 이름을 따랐다.) 실제로는 이 잔차들을 표준화한 표준화된 잔차(standardized residuals)–간단히 표준 잔차라고 불린다–가 분석에 사용된다. 실제로 각 잔차값을 잔차들의 표준편차로 나눈 값이 사용된다. 그 값들은 표준화된 잔차의 근사값들이다. 원래 표준화된 잔차는 추정된 표준오차를 사용하여 계산해야 정확한 값이겠지만 그렇게 간단히 계산된 근사값으로 대체해도 무방할 것이다.

잔차플롯에는 두 가지가 있다. 하나는 독립변수 에 대한 잔차플롯이다. 전차를 세로축으로, 독립변수 를 가로축으로 하여 표시한 그래프이다. 모든 값에서 잔차(오차)의 분산이 같아야 하는데 만약 그 전제조건이 충족되면 잔차가 폭이 일정한 가로 선 안에 존재하는 페턴을 보일 것이다(아래 그림에서 세번 째 잔차플롯). 만약 다른 잔차가 다른 패턴을 보인다면 전제조건이 깨져있거나 선형분석이 적합하지 않음을 시사한다.

patterns of residual plots에 대한 이미지 검색결과

이 방법은 다중회귀분석에 사용되면 독립변수 하나하나 잔차플롯을 그려야 한다. 그 경우 독립변수의 갯수가 늘어나면 대단히 번거로운 작업이 될 것이다. 그래서 다중회귀분석에는 흔히 독립변수 대신 종속변수에 대한 예측값()을 가로축으로 놓고 플롯한 잔차플롯이 사용된다. 이 잔차플롯은 데이터에 이상값 혹은 영향력이 큰 값이 존재하는 지를 보여준다. 만약 그런 값들이 있다면 잔차가 정규분포를 가져야 한다는 전제조건이 깨졌음을 암시한다. 그리고 회귀선이 심각하게 데이터의 분포를 왜곡하고 있음을 시사하기도 한다. 표준잔차의 값이 -2보다 작거나 +2보다 크면 이상값으로 간주하는 것이 좋다.

이상값이나 영향력이 큰 값이 존재할 경우 그 값을 낳은 와 의 관측값을 살펴보아야 한다. 그것이 데이터 측정에 오류가 발생했기 때문일 수도 있고, 데이터 오기의 결과일 수도 있으며, 단지 독립변수의 값이 비정상적으로 큰 때문일 수도 있다. 이상값이 측정오류나 데이터 오기 때문이면 그것을 제외하거나 수정하면 될 것이다. 만약 정확하게 측정되고 기록된 값이라면, 그 사례(들)가 꼭 적합에 포함되어야 하는지를 재고해 보아야 한다. 만약 그 값을 포함한 회귀선보다 그 값을 제외하고 적합한 회귀선이 데이터의 분포를 더 정확히 대표한다고 판단된다면 그 값을 제외하는 편이 나을 것이다.

전제조건까지는 아니지만 다중회귀분석에서는 한 가지 점이 더 고려되어야 한다. 다중회귀분석에는 독립변수들이 두 개 이상인데, 그 독립변수들 사이의 상관성이 아주 높지 않아야 한다. 예컨대 두 독립변수 사이의  피어슨 상관계수가 7.0 이상이면 소위 다중공선성(multicollinearity)이 발생할 가능성이 있다. 다중공선성이란 회귀모형 안의 두 독립변수의 상관성이 아주 높아 회귀모형이 차원을 잃게 되는 현상이다. 그 독립변수들 중 둘 중의 하나는 회귀계수가 0이 되어 모형의 결정력에 전혀 기여를 하지 못하는 것이다.

다중공선성이 발생할 경우 F검정(모형 전체적으로는)은 통계적으로 유의미한데, 회귀계수들의 t검정 결과는 모두 통계적으로 유의미하지 않을 수도 있다. 독립변수들 사이의 상관성이 높지 않으면 그런 문제점을 피할 수 있다. 다중회귀분석을 실시할 때 먼저 모든 변수들 사이의 상관관계(영차상관관계, zero-order correlations라고도 부름) 행렬을 구해서 살펴보아 잠정적인 독립변수들 사이에 상관계수 값이 아주 크게 나올 경우 둘 중 하나를 모형에 포함시키지 않는 방식으로 다중공선성을 예방할 수 있을 것이다.

이제 구체적인 사례를 가지고 다중회귀분석을 차근차근 수행해 보자. 괄호 안에 링크된 데이터파일(CruiseShips.xlsx)에는 소형 크루즈 선박에 대한 고객들의 평가가 담겨있다. 데이터파일에서처럼  여정/일정(I), 해안 여행(CT), 음식/식사(F) 점수가 주어졌을 때 전반적인 점수(OR)를 예측할 수 있는 추정회귀식을 구하는 것이 목표이다.

먼저 변수들 사이의 상관계수행렬을 구하면 아래와 같다. 독립변수들 사이의 상관계수가 0.2259, -0.0090, -0.1074로 다중공선성의 가능성은 없다고 판단된다.

일단 추정회귀모형을 식 (11)과 같이 쓸 수 있을 것이다.

엑셀의 자체 애드인 ‘데이터 분석’의 회귀분석을 적용하면 아래와 같은 결과를 얻는다.

위 그림의 첫번 째 표는 ‘회귀분석 통계량’이라는 제목에 다섯 가지의 정보가 담겨있다. 먼저 다중 상관계수는 종속변수의 관찰값()과, 종속변수에 대한 회귀모형에 의한 예측값() 사이의 관계에 대한 피어슨 상관계수이다. 그 값이 0.8659로 상당히 높은 상관성을 보인다. 그것은 표본의 관찰값이 회귀선 주위에 잘 모여있으며, 다시 말해 주어진 회귀모형이 종속변수를 잘 예측하고 있음을 짐작할 수 있다.

결정계수는 모형의 결정력을 보여준다. 그것은 다중 상관계수를 제곱하면 얻을 수 있다(). 그것은 식(6)이 보여 주듯이 총제곱합(SST) 중 회귀모형에 의해 설명된 부분인 회귀제곱합(SSR)의 비율이기도 하다(). 주어진 회귀모형이 전반적인 점수라는 종속변수의 변량을 잘(74.98%) 설명하고 있음을 알 수 있다.

조정된 결정계수()는 소위 과적합(over-fitting)을 예방하는 도구로 볼 수 있다. 과적합이란 통계분석에서 얻은 결과를 일반화하기 어려운 현상을 말한다. 모형의 결정력을 높인다고 독립변수들을 무리해서 추가하면 결정력의 수치는 높아지겠지만 그 모형을 다른 사례에 사용하기는 어려워질 것이다.

과적합의 위험성에도 불구하고 연구자들은 자신이 만든 회귀모형의 결정계수가 높을수록 좋아하는 경향이 있다. 그래서 조정된 결정계수는 별로 도움이 되지 않는 독립변수를 무리해서 추가하는 경우 벌점(penalty)을 주는 방식으로 계산된다(아래 식 (12) 참조).

식 (12)에서 n은 사례수, p는 독립변수의 갯수이다. 조정된 결정계수 값이 0.7029로 결정계수(0.7498)와 약간 다르지만 문제가 될 정도는 아니라고 판단된다. 아마도 모형에 포함된 독립변수 중 어떤 것의 회귀계수가 통계적으로 유의미하지 못한 때문일 것이다.

표준오차는 추정값의 표준오차로 표본의 실제 관측값이 표본회귀선 주위에 얼마나 흩어져 있나를 측정한다. 추정표준오차가 작으면 관측값과 예측값 사이의 차이가 작다고 볼 수 있다. 실제 계산은 아래와 같이 하면 된다.

따라서 표준오차는 이다.

위 그림에서 두번 째 표는 분산분석표이다. 분산분석표에서

총제곱합(SST) = 회귀 제곱합(SSR) + 잔차 제곱합(SSE).

SSR은 92.35202, SSE는 30.81348이며, 이 둘을 합한 SST는 123.1655이다. SSR에 대응하는 자유도는 독립변수의 갯수인 3, SSE의 자유도는 20-3-1=16, 총자유도는 20-1=19이다. MSR(회귀 제곱평균)은 92.35202/3 = 30.7840063이고, MSE는 30.81348/16 = 1.92584256으므로 F-값은 30.7840063/1.92584256 = 15.9847이다. 분포에서 검정통계량 15.9847의 단측검정 p-값은 0.00005이다. 따라서 모든 모 회귀계수가 0이라는 영가설()은 기각된다.

모형 전체가 통계적으로 유의미하므로 이제 각각의 회귀계수 값과 그것의 통계적 유의성을 살펴볼 차례이다.  그에 관한 정보는 그림의 세번 째 표에 제시되어 있다.

그 표에 다음과 같은 회귀계수 값들이 나와 있다.

이 값들을 식 (11)에 대입하면 아래와 같은 회귀식을 얻는다.

회귀계수들의 값이 지닌 의미를 새겨보자. 모든 변수들이 1점부터 100점 사이의 값을 가지며 소숫점 첫째 자리까지 측정되어 있다. 여정/일정의 평가 점수가 1점 올라가면, 해안여행과 음식/식사에 대한 평가를 통제할 때 전반적인 점수가 0.1105점 올라가며, 해안여행의 평가 점수가 1점 올라가면, 여정/일정과 음식/식사에 대한 평가를 통제할 때 전반적인 점수가 0.2445점 올라가고, 음식/식사의 평가 점수가 1점 올라가면, 여정/일정과 해안여행을 통제할 때 전반적인 점수가 0.2474점 올라간다.    

그런데 이 회귀계수들은 통계적으로 유의미한가? 이 질문에 답하려면 각각의 p-값을 보면된다. p-값은 절편부터 순서대로 0.0160, 0.4069, 3.69e-05, 0.0011이다. 유의수준 0.05에서 여정/일정()의 회귀계수는 0.05보다 크기 때문에 여정/일정의 모 회귀계수()에 대한 영가설은 기각에 실패하고, 절편과 다른 회귀계수들()은 p-값이 0.05보다 작으므로 영가설이 기각된다.

이 결과를 참조해서 크루즈 선박에 대한 만족도 예측 모형을 구성한다면, 여정/일정 변수를 빼고 해안여행과 음식/식사라는 두 개의 독립변수로만 회귀모형을 만들어도 충분할 것으로 생각된다.

위 그림의 맨 아래 쪽에는 ‘잔차출력’이라는 제목의 표가 있다. 이 표는 ‘데이터 분석’의 회귀분석 창에서 ‘잔차’와 ‘표준잔차’를 체크하면 얻을 수 있다. 잔차도와 선적합도를 체크하면 각 독립변수에 대한 잔차플롯을 얻을 수 있지만 위에서 언급한 것처럼 표준잔차에 대한 분석으로 대신한다.

잔차들의 표준편차(STDEV.S 함수를 사용)를 구하면, 1.273484259이다. 각 잔차를 이 표준편차로 나누면 ‘표준잔차’을 얻는다. 그렇게 모든 표준잔차를 구해서 엑셀에 준 표준잔차와 비교해 보면 일치함을 알 수 있을 것이다. 실제로 엑셀은 그 방법을 사용해서 표준화된 잔차의 근사값을 구한다. 아래 그래프는 종속변수의 예측값을 가로축, 표준잔차를 세로축으로 놓고 그린 것이다.

그래프를 보면 -2나 +2를 넘어가는 표준잔차가 없으니 이상값이 없다고 판단해도 될 것이다. 표준잔차 표만 봐도 확인할 수 있지만 잔차플롯을 그려 본 것이다. 참고로 표준잔차 대신 잔차를 세로축에, 예측값 대신 각 독립변수를 가로축에 놓으면 독립변수에 대한 잔차플롯이 된다. 엑셀의 데이터분석의 회귀분석 창에서 ‘잔차도’를 체크하면 그 잔차플롯들을 구할 수 있다.  (2019-11-30)

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.