본문 바로가기

ML & DM/Linear Regression

Simple linear regression

단순선형회귀 혹은 우리가 흔히 말하는 회귀분석은 X와 Y두 변수사이의 선형관계를 분석하는 것을 말한다.  따라서 단순회귀라고 했을 때 이 말속에는 두개의 변수와 선형관계라는 두가지 의미가 내포되어 있다. 변수가 3개 이상일때는 다중회귀를 실행하면 된다.


1. 산점도


X,Y축에 있는 두 변수의 값을 각각 하나씩의 축에 할당하여 이를 좌표축에 표시하였을 때 이를 산점도(혹은 점산도,scatter plot)라고 한다.

아래 그림에서 다섯 개의 점은 우상향 하면서 산포되어 있음을 알 수 있다. 여기에 있는 모든점을 통과하는(100% 표현하는)직선을 그릴 수는 없지만 가장 가까이 통과하는 직선을 그리고 이 직선의 방정식을 알아낼 수 있다면, x값에 따른 y값을 예측 할 수 있을 것이다. 이때 산점도에 나타난 점들을 가장 가까이 통과하는 직선을 회귀직선이라고 한다. 



2. 단순회귀모형



단순회귀모형은 X,Y두 변수 사이의 관계를 선형적으로 표현한 '통계적모형(Statistical model, 확률적 모형(stochastic model)의 집합)'으로서 다음과 같은 식으로 나타낸다. 여기서 통계적 모형이라 함은 선형관계식에 확률오차항(random error term)이 포함되어 있는 경우를 말한다. 이와 반대되는 말로는 '결정론적모형(Deterministic model)'이라고 한다. 이는 반대로 확률오차항이 없는 모형을 말한다. 

통계적 모형의 개념은 이렇다. 단순회귀모형은 X,Y 두 번수 사이의 관계를 선형적으로 분석하는 것이기는 하나 여기에는 확률오차항 이 들어 있는 통계적 모형이기 때문에, 확률오차항이 모두 '0'이 아닌 한 이들 두 변수에 대한 산점도를 그렸을 때 산점도 상의 점들이 모두 일직선상에 놓있다고 볼수는 없다.

만약 산점도들의 점들이 우상향이든 우하향이든 직선의 모향에 가깝게 위치해 있다면 이들 점들을 가장 가까이 통과하는 직선의 방정식을 도출함으로써 X값이 변했을 때 이에 대응하는 Y값을 예측할 수 있을 것이다. 

산점도의 점들을 가장 가까이 통과하는 직선 즉 회귀선의 식을 라 했을 때 이를 회귀식 또는 회귀방정식이라 한다. 여기서 회귀라고 이름을 지은 이유는 X값에 따른 모든 Y값들이 평균(회귀선)으로 돌아간다(회귀)한다는 의미에서 지은것이다. 여기서 중요한 것은 회귀식의 절편과 기울기가 어떠한 값을 가질때 회귀선이 산점도의 점들을 가장 가까이 통과할 것인가 하는점이다. 따라서 회귀분석에서 가장 중요한 일은 회귀식의 모수 를 추정하는 일이다. 



일반적으로 표본에 의해 얻은 데이터로 회귀분석을 하기 때문에 표본산점도를 가리키는 것이 보통이다. 그러나 회귀분석에서 중요한 역할을 하는 확률오차의 분포를 잘 이해하기 위해서는 먼저 모집단의 산점도와 표본의 산점도를 구분하여 그 차이를 이해해야 한다. 모집단에는 같은 X(독립변수)의 값을 같는다 해도 이들의 Y(종속변수)의 값은 다양할 것이다. 이를 산점도에 나타내면 수직선을 따라 여러개의 점들이 퍼져 있는 형태 일 것이다. 그러나 회귀분석을 위한 자료는 일반적으로 모집단이 아닌 표본에 의한 것이므로 표본의 산점도는 모집단의 산점도에서 수직으로 산포되어 있는 여러 개 점들중 일부가 될 것이다. 




위 그림처럼 하나의 X값에 따른 Y값들의 분포가 중심극한의 정리를 이용하여 나온 정규분포임을 가정하자, 이 분포에서 일부가 표본으로 추출된 것이라고 가정하고, X,Y 두변수 사이의 모집단에 기초한 (굳이 이를 명시한 이유는 나중에 말하겠지만 표본에 기초한 회귀선을 그리게 된다면 대표성에 문제가 생기기 때문이다. 뒤에가서 자세히 다룰것이다.) 회귀 방정식이 라고 하면 X에 30을 넣을때 추정값은 으로서 X=30인 점에서 회귀선까지의 수직거리가 되나 실제 표본에서 측정된 값은 회귀선과는 떨어진 어느 점일것이다. 여기서 실제 측정값과 회귀선위의 점사이의 차이가 나타날 것인데, 이것이 바로 확률오차(random error)라고 한다.  오차앞에 확률이라는 단어를 붙이는 이유는, 표본으로 추출될 수 있는 점은 X=30에서 모집단의 산점도를 구성하는 산포되어 있는 수직선에서 어느 점이나 추출 될 수 있기 때문이다. 모집단에서 우리는 모집단의 회귀선상에 있는 표본이 뽑일 확률이 높음을 안다 (평균이니까). 회귀선상에 있는 표본평균이 뽑힐 경우 확률오차는 0이 된다. 하지만 X가 30인 곳에서 Y값의 확률분포에서 회귀선과 상당히 떨어진 곳에서의 데이터 또한 뽑힐수 있는 확률이 극소하지만 있다. 만약 회귀선과 멀리 떨어진 곳에서의 데이터가 뽑힌다면, 이 데이터에 대한 회귀모형의 확률오차는 높아진다.


여기서 확률오차에 대한 가정이 있다. 


1. 에서 는 확률변수(random-variable)이다.

2. 독립변수 X의 값에 관계없이 확률변수 은 평균이 0이고 분산이 인 정규분포를 한다.(identity)

3. 확률오차  은 독립변수 X에 대해 독립적(Independent)이다.


이쯤에서 다시 단순회귀모형을 보면 에서 보듯 Y는 을 포함하고 있으므로 확률변수임을 알 수 있다. 또한 확률오차 이 평균이 0이고 분산이 인 정규분포를 한다고 가정하고 있으므로 = 0 일때 의 값을 표시하는 종속변수 Y값은 회귀선상에 있는 

를 의미하는 것이다. 따라서 회귀선위의 점들은 X의 값 중 하나를 통과하는, 수직선상에 위치한 여러 Y값의 평균인 를 의미하는 것이다.



3. 회귀모형의 추정



그런데 실제로는 사실 모집단 자체를 안다는것이 불가능하다. 실제로 분석을 할 때 우리는 현재 가지고 있는 데이터 또한 모집단의 한 표본을 가지고 있는것이다. 여기에 우리가 회귀선을 그린다고 해서 우리는 표본집단내에서만 유효한 예측을 하는 회귀선을 그린것이다(overfitting). 실제 다른 표본을 뽑아 이 회귀선으로 예측을 한다면 오차가 클 확률이 높다. 그렇다면 모집단을 알수 없으므로 회귀분석자체가 불가능해 지는것인가? 여기서 크게 2가지 방법으로 모집단을 추정할 수 있는데., 최소자승법(Oridinary Least Square)와 최대우도법(Maximum Likelihood Estimation)이다. 


일단 최대우도법을 살펴보면 ,여기서 우리는 한가지 가정을 하는데, 모집단이 어떠한 분포를 따르던 상관없이, (보통) 30개 이상의 표본크기를 가지는 표본을 상당히 많이 반복적으로 추출을 한다면, 이는 정규분포를 따를것이라는 가정을 한다. 이것이 바로 중심극한 정리이다. 우리는 이러한 중심극한 정리를 이용하여 정규분포를 얻게 된다면, 우리는 이제 여기서 나온 분포함수로 최대우도법(Maximum likelihood estimation)을 활용하여, X값의 수직선 상에서 주어진 Y값 (표본)이 나올 확률(우도, likelihood)이 최대가 되는 모집단을 추정하고 이에 맞는 회귀선을 그리게 되면 모집단에 근거한 회귀직선을 그릴수 있게 되고 다른 표본데이터에서 이 학습한 회귀선을 이용해 예측을 한다. 


수학적으로 증명을 하는 과정은 위키피디아에 정말 잘 나와있으니 위키피디아를 확인하도록 하자 (수식유도 과정중 우도(혹은 모든 관찰치의 joint probablity)에 로그를 씌우는 것이 나오는데 이렇게 로그를 씌우는 이유는 계산을 간단하게 하기위해서 로그를 씌운것이다. 그런데 여기서 많은 사람들이 궁금해 할 것이다. 과연 이렇게 마음대로 로그를 씌워도 결과값에 지장을 주진 않을까? 라는... 우리가 구하는것은 Y의 확률을 구하는 것이 아니다. 즉 결과값을 구하는 것이 아니다. 결과값은 우리가 이미 아는 값이다. 이 결과값이 나올 확률이 가장 큰 해당 분포의 모양을 결정해주는 파라미터를 찾는것이다.(정규분포이므로 여기서는 평균, 분산,표준편차)를 찾는 것이다. 따라서 양변에 log를 취하여 y값을 변화시킨다 하여도 우리가 구하려는 X값의 파라미터에는 아무런 영향을 주지 않는다. 어짜피 둘의 최대값이 나올 파라미터는 같을 것이기 때문에, 단지 그냥 최대우도값이 나오는 파라미터를 찾는 문제에서 최대'로그'우도값이 나오는 파라미터를 찾는 문제로 바뀐것 뿐이다.)


다음은 최소자승법이다. 위에서도 말했듯, X,Y 두변수 사이의 선형관계를 단순회귀모형 에 따라 분석하고자 할 때 항상 주의해야 할 것은 실제 이 모형을 적용하는 데이터는 모집단이 아닌 표본자료가 일반적이라는 사실이다. 위에서 보듯 표본을 통해 모평균을 추정하듯이 표본 산점도상의 점들을 통해 단순회귀모형인 의 을 추정해야 한다는 것을 의미하는 것이다. 여기서 일반적으로 이용되는 것이 최소자승법(Ordinary Least Square method)이다. 파라미터를 추정하는데 있어서 최소자승법의 기준은 표본을 통해 얻은 파라미터의 추정값은 이라고 했을때, 이를 이용해 추정한 종속변수의 추정값 과 실제값 사이의 오차인 의 절대값의 합을 최소화하는 ,를 구하는 것이다. 실제 최소자승법에서는 절대값 대신에 오차의 제곱합 을 최소화하는 파라미터들을 구하게 된다. 여기서 왜 절대값 또는 제곱을 기준으로 오차를 최소화 하느냐? 이러한 과정을 거치지 않고 바로 오차들을 합을 계산한다면, 위에서 했던 확률오차의 가정 때문에, 오차들의 평균이 0이 되기 위해서는 합이 0이 되어야 한다. 따라서 실제 오차(혹은 잔차(residual))가 심하게 발생됨에도 오차들끼리 상쇄가 되어 오차가 0으로 되는 것으로 나타날 수 있기 때문이다.


아래는 normal equation 방법(한번에 최적의 기울기를 구하는 것, 한걸음 앞,뒤를 계산하여 기울기가 줄어드는 쪽으로 내려가는 기울기 강하법과는 데이터의 크기가 커졌을 경우, 계산비용 측면에서 차이가 있다.)을 이용하여 회귀계수 도출 공식을 유도하는 과정이다. 



위의 연립방정식을 에 대해서 풀면 다음과 같은 회귀계수 도출공식을 얻을 수 있다.



위에서 를 구하는 공식은 1번을 정리한 2번째 줄의 식의 양변을 n으로 나누어 직접 도출할 수도 있다.


4. 적합성 검정


이렇게 하여 우리는 회귀모형을 데이터에 적합시켰다. 이제는 이렇게 적합시킨 회귀모형이 예측모형으로서 적합한가에 대한 적합성검정을 실시한다. 여기 회귀모형에서는 주어진 독립변수와 종속변수 사이에 선형관계가 존재하는 지의 여부를 검정하는 단계이다.


회귀 방정식에서 회귀계수 은 회귀 직선의 기울기로서 독립변수 X가 1단위 증가할 때 종속변수 Y의 추정치 이 만큼 변화한다는 것을 의미하는 것이다. 만약 이 양수라면, X가 증가함에 따라 Y도 증가할 것이고 음수라면, 반대의 추세를 보일 것이다. 또한 절대값이 작다는 것은 X의 변화에 Y가 영향을 적게 받고 있음을 나타내는 것이다. 그런데 사실 이 회귀모형은 모집단이 아닌 표본에 의해 얻어진 것으로 추정된 파라미터의 값을 전적으로 믿을 수 없다. 이러한 이유로 우리는 회귀분석을 한 후 모수에 대해 귀무가설(현 회귀모형에서 X에 따른 Y값을 예측하지 못한다. 즉 두 변수간의 선형관계가 없다는 가설, )을 세우고 이를 검정해야 한다. 독립변수 X와 종속변수 Y사이에 선형관계가 성립하는지는 인지의 여부에 따라 결정된다. 즉 파라미터 이라면 표본에 의해 얻어진 은 역시 0일 확률이 높다. 따라서 는 수평선이 되고 두 변수 사이에는 어떠한 선형 관계도 존재하지 않음을 의미한다. 



대립가설은 위와 같이 양측검정이 아닌 단측검정(0보다 크거나(같거나), 0보다 작거나(같거나))으로도 설정할 수 있다.


회귀 방정식의 회귀 계수 은 평균이 이고 추정된 표준오차가 인 정규분포를 하는 표본분포의 확률변수이므로 표본분포의 확률 변수 의 평균이 인지를 유의수준 에서의 채택역에 속하는지 기각역에 속하는지를 확인하여야 한다. 이때 표본크기가 소표본이고 회귀모형 에서 의 표준편차 가 알려져 있지 않은 경우 가설검정의 위한 의 표준화 값으로 자유도(n-2)의 t 통계량을 사용한다. 그러나 대표본인경우는 Z값을 검정 통계량으로 사용한다.



만약 대립가설이 채택되어 X,Y사이에 선형관계가 존재한다는 결론이 나왔을 경우, 다음으로 궁금해지는 것은 얼마나 영향을 미치는지이다. 물론 현재 회귀계수 이 그 정도를 표현하고 있으나 이것은 어디까지나 점추정치이므로, 모집단의 회귀모수과 정확히 일치한다고 보기에는 위험도가 크다. 따라서 으로만 영향정도를 파악하는것 보다,  신뢰구간추정을 하여 점추정에 대한 위험성을 보완한다.



또 다른 적합성 검정으로는 F검정이 있다. 이는 분산분석을 이용한 검정으로 검정 목적(종속변수와, 독립변수간의 선형적 관계가 있느냐의 유무)은 t검정과는 같지만, 다른점은 모형(SSX)과 오차항(SSE)간의 비를 이용한다는점과 독립변수가 두개 이상인 경우 독립변수들의 회귀모수인 중 적어도 하나이상의 가 인지의 여부를 검정하는 것을 의미한다. 따라서  t검정은 하나의 독립변수의 회귀모수와 종속변수간의 선형성을 검정하는 것, 즉 변수에 대한 적합성검정이였다면 F검정은 하나의 독립변수가 아닌 전체의 독립변수와 종속변수간의 선형성을 검정하는 것이다. 이를 다르게 말하면, 모형에 대한 적합성 검정이라고 한다. 이 단순회귀분석에서는 독립변수가 1개 뿐이므로 t검정이 곧 F검정이 된다. 다시말해 변수에 대한 적합성검정이 바로 모형에 대한 적합성검정으로 되는 상황인것이다. 따라서 단순회귀모형에서는 둘의 검정결과는 같을 것임을 예상할 수 있다.


다음 포스팅에서는 단순회귀모형에서 더 나아가 결정계수와 상관분석에 관해서 알아보겠다.



참고문헌 


SAS 데이터분석과 해석 (저자 : 권혁제 교수 )

http://stats4you-textcube.blogspot.kr/2009/10/%EC%9A%B0%EB%8F%84%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%B5%9C%EB%8C%80%EC%9A%B0%EB%8F%84%EC%B6%94%EC%A0%95%EB%B2%95maximum-likelihood.html

https://ko.wikipedia.org/wiki/%EC%B5%9C%EB%8C%80%EA%B0%80%EB%8A%A5%EB%8F%84_%EB%B0%A9%EB%B2%95