codestates / ds-blog

blog sharing for data science bootcamp course
2 stars 4 forks source link

[윤형준] Linear Regression #171

Open hy1232 opened 3 years ago

hy1232 commented 3 years ago

오늘은 Linear Regression이 무엇인지 알아보자!

<모집단 Linear Regression vs. 샘플 Linear Regression>

우리가 통계를 배울때, 모집단 (population)에 대해서는 전혀 모른다고 배웠다. 모집단은 우리가 절대 알수없는 사실(Truth)이다. 예를들어 한국 남성의 평균은 몇일까? 구글에 따르면 173cm 이라고 한다. 그렇다면 이 값이 한국 모든 남성의 키를 모두 합한다은에 전체 남성의 수로 나눈 값일까? 아니다. 이 값은, sampling을 통해 sample mean을 구한다음에 이것이 모집단 평균을 추정한다고 가정을 하는 것이다.

Linear regression에도 위와 같은 가정이 들어간다. 예를들어 아래와 같은 모집단이 있다고 해보자. 우리는 물론 모집단을 모르지만 안다고 가정을 해보자. 그렇다면, 아래와 같이 모집단의 x 와 y는 어떠한 correlation을 가지고 있다. 이 모집단으로 부터 우리는 많은것을 알수있지만 (ex: E[x], E[y], var(x), var(y)) 우리는 이해를 돕기위해 correlation coefficient만 보겠다.

Capture

위 모집단의 correlation coefficient (상과관계)는 다음과 같이 나온다. Capture

만약에 우리가 모집단의 데이터가 없다고 가정하자. (실제가 원래 그러하다. 모집단의 데이터는 원래 얻을수가 없는것이다.) 하지만 우리는 모집단의 correlation coefficient, 즉 진짜 correlation coefficient를 알고자 한다. 물론 이것을 알 방법은 없다. 하지만 우린 이것의 추정치란 것을 sampling을 통해 얻을수 있는 것이다.

예를 들어 우리가 sample size 41개로 4번의 sampling을 진행하였다고 가정해보자. 그러면 우리는 아래와 같은 그림을 갖을수있다.

Capture

위 그림을 보면, 각 sample이 다 다른 correlation coefficient들을 가지고 있다. 하지만 우리가 눈으로 볼수있듯이 모집단 correlation coefficient와 비슷하긴하다. 이런식으로 우리는 sample하나를 가지고 correlation coefficient를 계산한 후에 그것이 모집단의 correlation coefficient를 추정하는 통계라고 이야기 하는 것이다.

여기서 하나 더 추가할 점은, 우리는 hypothesis testing을 통해 어떠한 확률로 우리가 추출한 sample correlation coefficient가 population correlation coefficient와 같다라고 test 해 볼수있다. 하지만 이것은 논외이기 때문에 더 깊게 다루진 않겠다.

자 그렇다면 여기서 한가지 컨셉을 더 추가해 보겠다. 우리가 만약에, sample size 41개로 sampling을 4번만 하는 것이 아니라 10번 했다고 해보자. 그리고 거기서 추축한 correlation coefficient들을 평균내보면, population correlation coefficient와 매우 가까울 것이다. 그럼 100번, 1000번 아니면 무한대 까지 한다면, 그 평균값은 모집단 correlation coefficient와 더욱더 가까워 질 것이다.

위에서 말한 의미가 다음 수식을 풀어 놓은 것이다. Population_correlation_coefficient = E[sample_correlation_coefficient_i] (여기서 사용된 E[ ]는 expectation의 수식으로, 평균과 의미는 비슷하나 원론적으론 다르기때문에 정확한 내용을 알고자 한다면, 구글링이나 질문을 아래 코맨트를 남겨주길 바란다.)

<Linear Regression은 어떻게 구하는 것인가?> 답부터 말하자면 OLS (Ordinary Least Squares)라는 기법을 사용하여 구한다.

위의 그림들은 2-D로 x축과 y축을 가지고 있다. 우리가 중학교때나 고등학교때 그래프에 선을 그릴때 어떻게 배웠나? y = a + bx

이런식으로 y 값이 있고, y-intercept 를 a 로 표현하고, 그리고 slope를 b로 표현한다.

우리 데이터에 하나의 feature, 그리고 하나의 target 값이 있다면, target = a + b(feature) 이렇게 수식을 나타낼수있다. 그리고 OLS는 a와 b를 결정하여 선을 그리는데, 이 선이 'best fitted line', 즉 scatter된 데이터를 가장 잘 설명하는 선이라는 것이다. 그렇다면 a와 b는 어떻게 결정되는가?

그림으로 한번 보자. (아래 그림은 위 그림중 sample 1에 해당된다. 다만 그림 크리가 달라 그림이 달라보이지만, 같은 데이터이다.) Capture

우리가 y=a+bx 라는 선을 위의 빨간선처럼 그렸다고 가정해보자. 이 선은 a (intercept)를 35로 취하고 있고, b는 0으로 취하고 있다. a=35, b=0. 과연 이 그림은 이 scatter 되어있는 데이터를 잘 설명하는 선이라고 볼수 있을까? 절대 아니다. scatter된 데이터를 보면 x 늘어날수록 y 는 줄어들고 있는데, 이 빨간선은 x가 늘어나도 y에는 변화가 없다. 따라서 이 선은 데이터를 잘 설명하고 있다고 할 수 없다.

그럼 이번 선은 어떤가? Capture 이 오렌지 선은 위의 빨간선 보다는 낫다. 하지만 OLS의 정의에는 딱 맞아 들어가는 선은 아니다. 그렇다면 OLS의 정의는 무엇인가?

OLS란 모든 residual을 제곱하여 모두 합한 값을 가장 작게 만드것이다. 아래 수식들에 대해 조금더 설명하자면, y_hat은 우리가 그리는 선, 즉 위에 그림에서는 오렌지 선이 y_hat이 되는것이다. 각 x값 마다 우리는 y_hat값과 실제 y값을 알수있으며, 해당 x값다마다 y_hat과 y의 값을 빼주어 residual을 얻을수있다. 모든 데이터마다 residual을 만들수 있는 것이다. 이 모든 residual을 다 제곱하여 다 합했을때 그 값이 가장 작으려면, a와 b가 과연 무엇이 되어야 할까라는 질문을 답하는 것이 OLS라는 것이다.

Capture

아래의 파란선은 OLS정의에 들어맞는 선이다. Capture

Linear Regression에는 OLS와 같이 여러가지 기법이있다. 위에 설명과 같이 구하는 것은 OLS Linear Regression이라고 한다. 서두에 Linear Regression을 어떻게 구하는가에 대한 대답을 OLS라고 했지만, OLS에만 한정되어있는 것은 아니다. 다만 처음부터 Linear Regression에 여러가지 기법이 있다고 시작을하면 더 헷갈림을 초래할까봐 시작을 그리 하였다.

johnnykoo84 commented 3 years ago

좋은 점

  1. 하나의 주제를 깊이 파는 취지에 맞게 깊은 고민이 드러나는 설명 입니다.
  2. 적절한 인트로
  3. 적절한 시각화 자료와 이에 따른 설명, 논리 스토레틸렝에 자료들이 적절히 사용됨
  4. 필요한 경우, hand writing + photo + embed 를 해서라도 내용을 설명

아쉬운 점

  1. 모집단의 데이터를 얻는 것은 불가능한 것으로 표현해 주셨는데, 데이터의 종류에 따라 대부분 구하기 어려운 경우가 많은 것이 아닐까요? 정말 전수조사해서 얻을 수 있는 모집단 데이터의 경우도 있어서..
  2. 독자가 해당 분석을 reproduce 할 수 있도록, 데이터 링크 안내, 혹은 소개 등도 있었으면 더 좋았을 것 같습니다.