본문 바로가기
데이터과학/데이터 분석 실습

Data Analysis (2): Linear Model in MATLAB

by 경성현 2014. 1. 27.

Linear Regression이란 용어는 실험을 동반한 대부분의 연구에서 빠지지 않고 등장하는 개념입니다. 사실, 어려운 개념은 아니지만 통계학에 익숙하지 않은 (인문/사회 계열) 연구자들에게는 일단 거부감부터 안겨주는 골칫덩어리가 아닐까? 생각됩니다. 본 강좌는 "The Elements of Statistical Learning by Trevor Hastie, Rober Tibshirani, and Jerome Friedman"의 Chapter 3의 내용을 참고하여 작성했습니다.

Linear Regression은 (1) 연구자가 설정한 모델이 실험 데이터를 얼마나 잘 설명하는가?를 확인하고 싶을때도 사용되고, (2) confounding 효과를 제거하기 위한 목적으로도 사용됩니다. 보통 General Linear Model은 행렬Matrix 형태로 표현된다. 가령 다음과 같이 표현되는 식이 있을때,

$Y_1 = x_{11}\beta_1 + \cdots +x_{1l}\beta_l + \cdots x_{1L}\beta_L + \epsilon_1$

 $\vdots    =    \vdots$

$Y_J = x_{J1}\beta_1 + \cdots + x_{Jl}\beta_l + \cdots + x_{JL}\beta_L+\epsilon_J$

이것은 다음과 같이 행렬 형태로 표현할 수 있다.

$Y = X\beta +\epsilon$.

여기서 $Y$는 측정된 데이터를 의미하고, $\beta$는 column 형태의 파라미터 벡터이고,  $X$는 $J \times L$의 크기를 갖는 행렬, $J$는 측정 횟수, $p$는 X의 rank를 의미한다.

쉬운 예제를 다루는 것이 아래 그림과 같이 데이터가 분포되어 있을때 




이제 우리가 풀어야 할 문제는 모델$X$을 이용하여 측정된 $y$와 가장 유사할 수 있도록 파라미터 $\beta$를 찾는 것이다. 이것은 측정치$y$에서 모델에 의해 추정된 $X\beta$의 차이를 최소화 하는 것과 같다. 즉, Residual Sum of Square (RSS)를 최소화 하는 문제로 귀결된다.

$\mathrm{RSS}(\beta)=e^Te=(y-X\beta)^T (y-X\beta)$

RSS는 결국 $\beta$의 제곱의 형태로 되어 있는 함수 이고, 이러한 함수의 해는 두번 미분한 것이 음의 값을 갖고, 한번 미분한 것이 0인 $\beta$를 찾는 것과 동일하다.

$\frac{\partial \mathrm{RSS}}{\partial \beta} = -2X^T(y-X\beta)$      RSS를 $\beta$로 편미분 (1차 미분)

$\frac{\partial^2 \mathrm{RSS}}{\partial \beta \partial\beta^T} = -2X^T X$               RSS를 $\beta$, $\beta^T$로 편미분 (2차 미분)

$X^TX$가 positive definite 이라고 가정하면, 2차 미분 값은 $\beta$에 상관 없이 늘 음의 값을 갖는다. 따라서, 이제 1차 미분값이 0이 되는 $\beta$를 찾으면($X^T(y-X\beta)=0$), RSS가 극솟값이 된다.

$\hat{\beta}=(X^TX)^{-1}X^T y$,  또한 $\hat{y}=X\hat{\beta}$이므로,

$\hat{y}=X(X^TX)^{-1}X^{-1}y$

residual variance $\sigma^2$은 RSS를 통해서 다음과 같이 계산할 수 있다.

$\hat{\sigma}^2 = \frac{e^T e}{J-p}$

여기서 $p=\mathrm{rank}(X)$로 표현할 수 있다.

$t_{J-p} = \frac{c^T\hat{\beta}}{\sqrt{\hat{\sigma}^2c^T(X^TX)^{-1}c}}$