Statistics/Practical Statistics for Data Scientists

[Practical Statistics for Data Scientists] Simple & Multiple Linear Regression

lfgwy 2022. 5. 12. 02:04

회귀분석

회귀분석의 목적은 관심이 있는 종속변수(Y)에 영향을 주는 독립변수(X)를 찾고, 두 변수 간의 관계를 잘 설명하는 모델을 만드는 것입니다.

보통 회귀분석은 Linear Regression(선형회귀분석)을 의미하고 선형회귀분석의 모델은 다음과 같이 표현됩니다.

 

$Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_nX_n + \epsilon$

 

설명드릴 Simple Linear Regression(단순선형회귀)와 Multiple Linear Regression(다중선형회귀)는 독립변수(X)의 숫자로 구분됩니다. 독립변수의 수가 1개일 때 단순선형회귀라 부르고, 2개 이상일 경우 다중선형회귀가 됩니다. 

 

Simple Linear Regression(단순선형회귀)

단순선형회귀는 한 변수와 다른 변수 간의 관계에 대한 모형을 제공해줍니다.

두 변수 사이의 관계를 측정할 수 있는 다른 방법으로는 상관계수(Correlation)이

있는데, 상관계수는 두 변수의 연관성의 강도를 측정하고, 회귀모형은 두 변수의 관계의 성질을 수량화해준다는 데에서 차이가 존재합니다. 

단순선형회귀모델은 다음과 같이 표현됩니다.


$Y = \beta_0 + \beta_1X_1 + \epsilon$

 

 

핵심 용어

  • Response(Dependent variable, Y variable, Target, Outcome): 예측하고자 하는 변수
  • Independent variable(X variable, Feature, Attribute, Predictor): Response를 예측하기 위해 사용되는 변수
  • Record(Row, Case, Instance, Example): 특정 사례에 predictor와 outcome values의 벡터
  • Intercept($\beta_0$): X(independent variable)가 0일때의 predicted value
  • Regression Coefficient($\beta_1$): 회귀선의 기울기, Feature가 1 증가할 때의 Target의 증가량
  • Fitted values(Predicted values, ): 회귀선으로부터 얻은 추정치
  • Residuals(errors): 관측값과 추정값의 차이

        $e_i = y_i - \hat{y_i}$

 

 

 

https://en.wikipedia.org/wiki/Linear_regression

모델과 target간의 거리가 작은 모델을 사용하는 것이 좋다는 것은 직관적으로 이해가 가능합니다. 모델과 target간의 거리를 재기 위해 저희가 최초로 생각할 수 있는 것은 잔차들의 합일 것입니다. 하지만 실제로는 잔차의 합은 사용되지 않고 잔차의 제곱합이 사용됩니다.

그 이유는 다음과 같습니다.

 

잔차의 절대값 합을 잘 사용하지 않는 이유는 잔차의 절대값은 미분이 불가능해 제곱합을 사용하는 경우보다 계산에서의 용이성이 떨어지기 때문입니다. 따라서 저희는 잔차제곱합을 최소로 만드는 회귀계수 $\beta_0, \beta_1$을 사용합니다.

이를 수식으로 나타내면 다음과 같습니다. 그리고 이때의 회귀계수들을 LSE(Least Squares Estimator)라고 부릅니다.

$\beta_0, \beta_1$은 다음과 같습니다.

$\beta_1$은 상관계수를 이용하여서도 표현 가능합니다.

그림으로 나타내면 다음과 같습니다.

KU STAT409 신승준 교수님 자료

다만 그래프의 제목이 regression toward the mean이라고 되어있긴 하지만, 상관계수와 회귀계수 간의 관계가 평균으로의 회귀 현상을 설명한다고 이해하기보다는, 회귀선은 언제나 실제 데이터의 기울기보다 평균에 가깝게 나타나는 것을 보여주는 수식이라고 이해하는 것이 맞을 것 같습니다.

 

제곱합을 사용하는 회귀계수의 특성상, 선형회귀는 이상치의 영향을 많이 받습니다. 이런 문제를 해결하기 위해 앞서 언급한 잔차의 절대값 합을 사용하는 median regression이나 quantile regression 등의 기법을 사용할 수 있습니다. 

또, 주의할 것은 선형회귀분석은 feature와 target간의 관계를 설명하는 것이지 인과관계를 설명하는 것이 아닙니다.

 

 

Multiple Linear Regression(다중선형회귀)

 

$Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + ... + \beta_nX_n + \epsilon$

이때 $\beta_i$는 i번째 X변수 X_i를 제외한 나머지 feature들이 고정되어있을 때, x_i가 1만큼 증가할 때의 Y의 증가량을 나타냅니다.

벡터를 사용하면 다음과 같이 표현이 가능합니다.

 

$y_i = \beta_0 + \boldsymbol{\beta^Tx_i} + \epsilon_i, i = 1, 2, 3, ..., n$

$\boldsymbol{x_i}= (x_{i1}, x_{i2}, ..., x_{ip})^T, \boldsymbol{\beta} = (\beta_1, \beta_2, ..., \beta_p)^T$

 

 

계산의 편의를 위해 $y_i = y_i - \bar{y}$, $x_i = x_i - \bar{x}$를 통해 $\beta_0$ = 0을 가정하겠습니다.

이런 과정을 거친 형태를 centered form이라고 부릅니다. 실제로도 centered form을 이용하여 문제를 해결한 후

$\hat{\beta_0} = \bar{y} - \boldsymbol{\hat{\beta}^T\bar{x}}$의 관계를 이용하여 $\beta_0$는 나중에 고려해주는 방법이 많이 사용된다고 합니다.

 

다중선형회귀를 matrix form으로 다시 써주게 되면, 

$\boldsymbol{y = X\beta + \epsilon}$과 같이 나타낼 수 있으며, y X, $\boldsymbol{\beta}$는 각각 다음과 같이 표현됩니다.

 

다음과 같이 $\boldsymbol{\hat{\beta}}$를 구할 수 있습니다. 

 

 

핵심 용어

  • Root mean squared error(RMSE): $\sqrt{\frac{\sum_{i=1}^{n}{(y_i - \hat{y_i})^2}}{n}}$, RMSE는 regression model의 overall accuracy를 측정할 수 있는 값 중 하나입니다. regression model을 통한 predicted value와 observed value간의 차이를 측정하는 metric입니다.
  • Residual standard error(RSE): $\sqrt{\frac{\sum_{i=1}^{n}{(y_i - \hat{y_i})^2}}{n-p-1}}$ RMSE와 비슷하나 자유도에 따라 보정된 값으로, n이 굉장히 큰 big data에서는 RMSE와 사실상 차이가 없습니다. 
  • R-squared($R^2$): 모델에 의해 설명되는 변동의 비율(0과 1 사이의 값을 가짐), $1- \frac{\sum_{i=1}^{n}{(y_i - \hat{y_i})^2}}{\sum_{i=1}^{n}{(y_i - \bar{y})^2}}$ 
  • Adjusted R-squared($R^2_{adj}$): $1 - (1-R^2)\frac{n-1}{n-p-1}$
  • t-statistic: $\frac{\hat{b}}{SE(\hat{b})}$
  • AIC: $2p + n\log{\frac{\sum_{i=1}^{n}{(y_i - \hat{y_i})^2}}{n}}$

$R^2$는 feature의 수가 증가하면, 그 feature가 유의한지 그렇지 않은지와 무관하게 항상 증가한다는 문제점을 갖고 있습니다. 그 문제점은 LSE를 구하는 과정에서 오는데, 저희는 언제나 잔차제곱합을 최소로 하는 $\hat{\beta}$값을 추정하기 때문에, 새로이 $\beta$가 추가된 잔차제곱합은 언제나 그 이전의 잔차제곱합보다 작게 될 것입니다. 

 

다시, $R^2$ = $1- \frac{\sum_{i=1}^{n}{(y_i - \hat{y_i})^2}}{\sum_{i=1}^{n}{(y_i - \bar{y})^2}}$ 이었습니다. 위에서 살펴본 바에 따르면, 새로운 변수의 추가는 분자를 감소시킬테니, $R^2$값은 새로운 변수의 추가와 함께 언제나 증가할 것입니다.

Adjusted $R^2$ = $1 - (1-R^2)\frac{n-1}{n-p-1}$, 변수가 추가될 , 분모의 p 함께 증가하면서 분자의 $R^2$ 어느정도 상쇄시켜줍니다. 따라서 Adjusted $R^2$ 변수의 개수와 증가에 따라 무조건적인 증가를 보이지는 않습니다.

 

AIC = $2p + n\log{\frac{\sum_{i=1}^{n}{(y_i - \hat{y_i})^2}}{n}}$는 작을수록 좋은 metric입니다. 위에서 변수의 추가는 언제나 잔차제곱합을 감소시킴을 알 수 있었습니다. 어떤 모델이 잔차제곱합을  줄이기 위해 여러가지 불필요한 파라미터를 사용하고 있을 수도 있는 것입니다. 이 때 AIC는 $n\log{\frac{\sum_{i=1}^{n}{(y_i - \hat{y_i})^2}}{n}}$에 2p를 더해주는 것으로 feature의 수의 증가에 페널티를 부여하게 됩니다.

 

따라서 저희의 목적은 Adjusted $R^2$를 최대화해주거나 AIC를 최소화하는 모델을 찾는 것이 됩니다. 이 방법으로 stepwise regression이 있는데, 사용가능한 모든 변수를 전부 사용한 full model에서 변수를 하나씩 제거해가는 backward elimination과, intercept만 있는 model에서 변수를 하나씩 더해가는 forward selection방법이 그 예시입니다. 또 다른 방법으로는 제거만 하거나 더하기만 하는 것이 아닌 더하기도 하고 제거하기도 하면서 adjusted $R^2$와 AIC의 변화를 보면서 모델을 선택하는 방법이 있습니다. 

 

다음은 AIC를 이용하여 backward elimination을 하는 예시입니다. 해당 데이터에 대해 간단히 설명하자면, 데이터는 horseshoe crab이라는 게의 대한 데이터로, y변수는 satellite의 유무입니다. 이 때 satellite은 암게 주변의 숫게를 의미합니다. weight는 암게의 무게, width는 너비, color는 색, spine 척추의 상태를 나타내는 변수입니다. Start와 step 옆에 적힌 모델이 각 step에서 최초의 모델이고, 아래에 적힌 변수들을 하나씩 제거해보면서 AIC를 비교하는 과정입니다. 

Start에서는 full model을 고려하고 있습니다. full model을 사용할 때의 AIC = 202.2입니다. spine변수를 제거했을 때 AIC가 감소하였으므로 후의 모델에서는 spine 변수를 제거하여줍니다. weight와 width는 차이가 근소하므로 더 지켜보기로 하고, color변수를 제거했을 때는 AIC가 오히려 증가하므로, color변수는 제거하지 않습니다. 

다음 step에서 고려하는 모델은 spine변수가 제거된 weight, width, color만을 사용하는 모델입니다. weight를 제거했을 때, AIC가 감소하였으므로 다음 모델에서는 weight를 제거해줍니다. width와 color는 제거하는 경우 AIC가 증가하므로 제거하지 않습니다.

마지막으로 width와 color만을 사용하는 모델입니다. <none>이 제일 작은 AIC값을 가집니다. 이 때 <none>은 아무런 변수도 제거하지 않은 step에서의 모델과 동일한 모델입니다. 따라서 AIC와 backward elimination을 통해 얻은 모델 중 최적의 모델은 width와 color만을 사용하여 y를 예측하는 모델입니다.

 

긴 글 읽어주셔서 감사합니다.

 

작성자 : 15기 조우영

 

참고자료: 잔차의 절대값 합을 사용하는 분위수 회귀 https://cnp-0717.tistory.com/

 

Quantile Regression(분위수 회귀)의 개념과 R 적용

Quantile Regression은 기존의 선형회귀와 많은 부분이 비슷하지만, conditional mean이 아닌 conditional median을 추정한다는 큰 차이점이 있습니다. 우리나라 말로는 분위수 회귀라고도 합니다. 오늘 포스팅

cnp-0717.tistory.com

벡터 미분 https://darkpgmr.tistory.com/141

 

벡터 미분과 행렬 미분

논문을 읽거나 어떤 이론을 이해할 때, 그리고 자신이 수식을 전재할 때 종종 벡터, 행렬에 대한 미분이 필요한 경우가 종종 있습니다. 저의 경우는 주로 함수 최적화 기법(Least Squares, Weighted Lest

darkpgmr.tistory.com

가중회귀분석 https://zephyrus1111.tistory.com/75

 

[회귀 분석] 10. 가중 최소 제곱법(Weigted Least Square)으로 회귀 모형 적합하기 with Python

본 포스팅에서는 수식을 포함하고 있습니다. 티스토리 피드에서는 수식이 제대로 표시되지 않을 수 있으니 웹 브라우저 또는 모바일 웹에서 보시기 바랍니다. 안녕하세요~ 꽁냥이에요! 선형 회

zephyrus1111.tistory.com