이번 포스팅은 Multi linear regression이다. Multi linear regression이 뭐냐? 기본적으로 linear regression이기는 한데 linear regression에서는 x와 y축만 가지고 2 dimension linear line을 그린다. 3 dimension 이상이면 Multi linear regression이다. x1, x2, ..., xn의 값을 가지고 y의 값을 결정하는데 그것이 n dimension plane을 이룰 경우 Multi linear regression라고 한다. vector를 배우신 사람들이라면 알고 있겠지만, n dimension에서의 plane은 


ax1 + bx2 + ... + d = 0 (a,b, ..., d는 constant)


이런 식으로 나타낼 수 있다. 그래서 3 dimension 이상에 있는 data들에 대하여 linear regression을 적용시키고 싶을 경우에는 Multi linear regression를 적용시키면 된다. 3 dimension 이상에 있는 data? 쉽게 말해서 attribute이 3개 이상있는 data들을 의미한다. 그래서 어떻게 적용하면 될까?


기본적으로 적용하는 방법은 Multi linear regression과 똑같다. error에 대한 Least Square를 구하면 된다. 이전 포스팅에서 error가 뭔지 least square는 뭔지 설명해두었으니 참고하도록 하자. 참고로 아래에 나와있는 모든 수식은 직접 작성한 것이 아니고 다른 사람 것을 퍼온 것이다. 같은 출처지만 그림마다 출처를 남겨놨다. (작성하신 분께 감사를 표하며...)


우선 y와 X를 행렬로 나타내보자.

수식 출처 : http://www.uv.es/uriel/3%20Multiple%20linear%20regression%20estimation%20and%20properties.pdf


X에 첫번째 column에 1이 들어가는 이유는 아래의 수식을 보면 이해할 수 있다. y = bX + u와 같은 행렬 곱샘식으로 나타내면 아래의 식이 된다. 정리를 하고 넘어가야 할 것이, 여기서 X와 y는 실제 data들이다. 실제 data들은 100% linear 하게 표현이 되지 않기 때문에 약간의 error가 생기는데 그것을 u로 표현한 것이다.

수식 출처 : http://www.uv.es/uriel/3%20Multiple%20linear%20regression%20estimation%20and%20properties.pdf


그럼 위의 수식이 이해가 갈것이다. 이것을 이제 matrix로 표현하면 아래와 같다.

수식 출처 : http://www.uv.es/uriel/3%20Multiple%20linear%20regression%20estimation%20and%20properties.pdf


자 여기서 y는 실제 data값이라는 것을 다시 한번 집고 넘어가자. 아까도 말했듯이 우리는 y를 가장 비슷하게 표현하는 linear model을 원한다. X를 그 linear model에 집어넣었을 때 생기는 값은 당연히 y와는 차이가 난다. 그것을 우리는 y^으로 표현할거다. 그럼 아래와 같다.(b와 b^은 같은 거라고 생각하자.)

수식 출처 : http://www.uv.es/uriel/3%20Multiple%20linear%20regression%20estimation%20and%20properties.pdf


y^ = Xb^은 다시 한번 설명하면, 우리가 가장 원하는 100% 이상적인 공식이다. 그런데 실제 data는 x와 y이므로 그 차이 u가 존재하는데, 그것을 우리는 error라고 하고 그것의 제곱(square)를 최소로 하는 값을 찾고 싶은 것이다. 그래서 least square이다. 같은 내용을 계속 계속 반복하고 있는데, 중요해서이다. 가장 핵심이라...

수식 출처 : http://www.uv.es/uriel/3%20Multiple%20linear%20regression%20estimation%20and%20properties.pdf


이전의 linear regression 포스팅에서 그랬던 것 처럼 각각의 coefficient로 편미분을 한다. (b1, b2, ..., bk 이것들을 coefficient라고 한다.) 

수식 출처 : http://www.uv.es/uriel/3%20Multiple%20linear%20regression%20estimation%20and%20properties.pdf


편미분한 각각의 식이 0일 때 최소이므로, 위와 같이 0으로 수렴한다고 놓고 그것을 matrix식으로 고치면 위와 같이 X'Xb^=X'y와 같은 식이 나온다.(X'는 X의 transpose matrix이다.) 이 식 어디선가 많이 봤다. 몇 달 전에 linear algebra 포스팅할 때, projection 설명할 때 나오던 식과 많이 비슷하다. 그렇다 결국 projection에서 나온 식인 것이다.

참고 : http://operatingsystems.tistory.com/entry/Linear-Algebra-Projection-onto-a-line-and-a-subspace


결국은 같은 식의 유도가 편미분을 통해서도 가능하고 이전에 설명했던 방식으로도 증명이 가능하다는 샘이 되었다. 이제 한번 맞는지 실제로 테스트를 해보도록 하자.

data 출처 : http://reliawiki.org/index.php/Multiple_Linear_Regression_Analysis


위의 data를 위의 python code로 실행을 하면, 아래와 같은 결과를 얻을 수 있다.


r_value(correlation coefficient) 구하는 공식은 아래와 같다. 증명은 모르므로... 공식만 살짝 익히고 넘어가자.

수식 참고 : https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=33&ved=0ahUKEwjg4aysiOjJAhWJ1RoKHeCkCHk4HhAWCCowAg&url=http%3A%2F%2Fwww.stat.ufl.edu%2F~winner%2Fsta6126%2Fchapter11.ppt&usg=AFQjCNGMOESgJt97JoLmRy8YXCXqHZ4fcw&sig2=UeSD-gwbw7iumInjG_WlrA&cad=rja


위의 공식에서 SSE는 Sum of Square of Error인데 correlation coefficient을 구할 때 직접적으로 사용되지는 않는다. correlation coefficient을 구할 때는 SSR/TSS의 root를 씌워주면 된다. (SSR/TSS이 R^2이기 때문이다.)


후 Multi linear regression 끝냈다. 다음에 포스팅할 내용은 확률이 조금 들어간다. logistic regression이다. 예전에 공부할 때 완벽하게 이해를 못 해서 조금 고생했던 기억이 있는 부분인데, 이번엔 잘 이해했으면 한다.

'Data Mining' 카테고리의 다른 글

[Data Mining] kNN Classification  (0) 2015.12.21
[Data Mining] Logistic Regression  (3) 2015.12.20
[Data Mining] Linear Regression  (0) 2015.12.18
[Data Mining] Basic of Statistical data  (0) 2015.12.18
[Data Mining] Basic of Data  (1) 2015.12.18
Posted by 빛나유
,