Linear Regression



3장. Linear Regression

이 장에서는 Supervised Learning의 가장 기본적인 방법인 Linear Regression을 다룹니다. 많은 머신러닝 기법들이 이를 기반으로 만들어졌으므로, 한번 더 살펴보고 가는 것도 의미있을 것 같습니다.


3.1. Simple Linear Regression

단순선형회귀는 하나의 설명변수 $X$ 에 기초하여 양적 반응변수 $Y$ 를 예측합니다. Y \approx \beta_0+\beta_1X

  • 질문 : 선형성의 가정을 판단하는 방법?

다들 아시다시피, 선형성을 가진다고 가정한다면 $\beta_0$와 $\beta_1$을 추정하는 과정에서 $MSE$를 최소화하는 방향으로 $\beta_0$와 $\beta_1$을 구하게 되고, 수식을 정리하면 결론은 다음과 같습니다.

\hat \beta_1 = \frac{\sum_{i=1}^{n}(x_i-\bar x)(y_i-\bar y)}{\sum_{i=1}^{n}(x_i-\bar x)^2} \hat \beta_0 = \bar y-\hat \beta_1\bar x 이 때, $\bar x$와 $\bar y$는 sample data의 평균입니다.

계수 추정값의 정확도 평가

$X$와 $Y$의 실제 상관관계는 어떤 알려지지 않은 함수 $f$에 대해 $Y=f(X)+\epsilon$의 형태를 가지며, 이때 $\epsilon$은 평균이 0인 랜덤오차항입니다. 실제 응용에서는 관측 자료를 사용하여 최소제곱선을 계산할 수 있지만, 모회귀선은 관측되지 않습니다. 보통 우리는 주어진 데이터로 모집단의 parameter를 추정하게 되는데요, sample이 작을 경우, $\hat \mu$는 $\mu$를 과소추정할 수도, 과대추정할 수도 있지만, 이는 단순히 sample의 크기가 커지면 해결됩니다.

  • 중요한 가정. 각 관측치에 대한 오차 $\epsilon_i$가 공통의 분산 $\sigma^2$과 uncorrelated되었다는 가정이 필요합니다. 이를 어떻게 확인할까?

보통 계수 추정값은 $\beta_0$든 $\beta_1$이든 $t$-test를 계산하여 $\beta=0$이라는 가설을 기각할지 채택할 지를 결정합니다. 이는 통계학입문 내용이므로 패스~

모델의 정확도 평가

가정에 따라 계수 추정값의 정확도를 평가하여, 모든 추청값이 유의미하다 라는 결론이 나왔다면, 이를 토대로 모델이 데이터에 얼마나 적합한지를 수량화할 수 있습니다. 보통 RSE$R^2$ 를 활용하여 평가합니다. 먼저 RSE는 데이터에 대한 모데의 적합성결여를 나타냅니다. 하지만, 단위에 따라 그 크기를 객관적으로 평가하기 힘들다는 단점이 있죠. 이를 해결한 것이 $R^2$인데, 그 식은 다음과 같습니다. R^2=\frac{TSS-RSS}{TSS}=1-\frac{RSS}{TSS} $R^2$가 클수록, 모델이 데이터를 잘 설명해준다고 볼 수 있습니다. 하지만 상황에 따라 좋은 $R^2$가 무엇인지는 달라집니다. 어떤 문제에서는 $R^2$가 0.9가 넘어도 문제가 있을 수도 있고, 어떤 상황에서는 $R^2$가 0.1 미만이어도 좋은 분석이 될 수 있습니다.

  • 상황에 따라 좋은 $R^2$가 무엇인지를 선정하는 기준이 있을까?

3.2. Multiple Linear Regression

여러 개의 설명변수를 통해 반응변수를 설명하는 다중선형회귀를 이제 살펴보겠습니다.

모델이 성립하는가?

3.1에서와 유사한 방식으로 $f$-statistic을 확인하여, 일단 모든 변수들이 다 무의미한지를 확인합니다. F=\frac{(TSS-RSS)/p}{RSS/(n-p-1)} 해당 반응변수가 설명변수들과 모두 전혀! 관계가 없다면, $f$-statistic은 1에 가까운 값이 나오게 됩니다.

모델이 성립한다면, 내가 선택할 변수들은?

모든 설명변수가 반응변수와 상관성이 있을수도 있지만, 중요한 변수들만을 찾아내는 것 또한 중요합니다. 보통 변수를 선택하는 과정은 다음의 3가지 고전적인(classic) 기법들이 있습니다.

  • Foward Selection
  • Backward Selection
  • Stepwise Selection

모델의 적합성

모델이 성립하는지 확인하고, 어떤 변수들을 선택할지 결정했다면, 이 모델이 얼마나 적합한지를 확인하면 됩니다. 이는 앞과 마찬가지로 $R^2$와 $RSE$로 판단합니다.

3.3. 회귀모델에서 다른 고려할 사항

Quantitive vs Qualitative

양적 변수가 아니라, 질적 변수일 경우, 우리는 보통 dummy화를 통해 이를 해결했습니다. 이 책에서 확인한 결과, 자동적으로 변수를 하나씩 제거한 효과가 나긴 하더라구요. 실제 분석 과정에서도 이렇게 하면 될 것 같습니다.

2가지 가정

선형회귀의 가장 기본적인 가정 2가지는 바로

  1. 설명변수와 반응변수는 additive하다.(설명변수들끼리 독립이다.)
  2. 설명변수와 반응변수는 linear하다.

입니다. 물론, 이 가정들을 다 만족하면 좋겠지만, 이를 확인하기 위해서 다음과 같은 방식으로 분석을 진행합니다. 만약, $X_1$와 $X_2$가 상호작용이 존재한다면(이를 시너지 효과라고도 부른답니다.) 단순히 상호작용 항($X_1X_2$)을 넣는 것만으로도 additive 가정을 좀더 충족시킬 수 있습니다. Y=\beta_0+\beta_1X_1+\beta_2X_2+\beta_3X_1X_2+\epsilon Y=\beta_0+(\beta_1+\beta_3X_2)X_1+\beta_2X_2+\epsilon

= \beta_0+\tilde \beta_1X_1+\beta_2X_2+\epsilon 계층적 원리에 의하면, 모델에 상호작용을 포함한다면, 그 계수와 연관된 변수들의 $p$값이 유의하지 않더라도 모델에 포함시켜야 됩니다.

  • 상호작용 vs 상관관계

비선형 상관관계

비선형 상관관계를 해결하는 방법들은 여러가지 있지만, 이 장에서 소개하는 가장 간단한 방법은 단순히 다항식을 다 선형회귀 때리는 것입니다 ㅋㅋ

데이터의 비선형성

잔차 그래프를 통해 비선형성을 식별합니다. 만약 잔차 그래프가 비선형 상관성이 있다는 것을 나타낸다면 설명변수 를 비선형적으로 변환하여 회귀모델에 적용하는 것이 간단한 접근법이라고 볼 수 있습니다.

오차항의 상관성이 없다라는 가정

선형회귀에서의 중요한 가정은 오차항들이 서로 상관되어 있지 않다는 것입니다. 잔차에서 강한 패턴이 드러난다면 데이터가 비선형적이라는 것을 나타냅니다. 오차항들의 패턴은 주로 시계열에서 일어난다고 하는데요, 이를 줄이기 위한 실험계획이 필요하다고 하는데, 어떻게 줄이는 지는 잘 안나와있네용 ㅠ

오차항의 분산이 상수라는 가정

오차항들끼리 분산이 일정한 지는, 잔차 그래프의 형태로 확인할 수 있습니다. 잠시 뒤에 그래프로 보실 텐데, 잔차 그래프가 오른쪽처럼 크게 바뀌지 않으면 상수 분산을 가진다고 볼 수 있지만, 왼쪽처럼 패턴이 보인다면 이분산성이 있다 라고 볼 수 있습니다. 이를 해결하려면 뒤에서도 나오지만 반응변수의 형태를 바꿔주면 될 것 같습니다.

Outlier vs Leverage

Collinearity

두 개 이상의 설명변수들이 서로 밀접한 상관이 있는 경우를 말합니다. Collinearity를 검출하는 가장 간단한 방법은 설명변수들의 상관행렬을 살펴보는 것입니다. 하지만 이로 완벽하게 볼 수 없으므로, VIF(variance inflation factor)를 계산하여 확인한다고 합니다. Collinearity를 발견하였을 경우, 이를 해결하는 방법에는 크게 2가지 방법들이 있습니다. 회귀에서 문제가 있는 변수들 중 하나를 해결하거나 문제가 있는 변수들을 합쳐서 하나로 만드는 방법이 있습니다.

3.5. 선형회귀 vs K-NN

다음의 그래프에 따르면, KNN은 상관관계가 선형적일 때는 선형회귀보다 약간 나쁘고 만약 비선형인 관계에서는 훨씬 좋다고 합니다. 즉, 관계가 선형적인지를 먼저 판단하고 만약 선형이라면 선형회귀를, 비선형이면 KNN을 하면 됩니다. 차원에 따라서 또 얘기는 달라지는데요, 설명변수의 수가 2개 이하면 KNN이 훨씬 좋고, 4개 이상이면 선형회귀가 더 좋다고 합니다.