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}}$
'데이터과학 > 데이터 분석 실습' 카테고리의 다른 글
Data Analysis (3): Flip Neuroimaging Data (0) | 2014.04.30 |
---|---|
Data Analysis (2): Graph Theoretical Analysis in R (0) | 2014.04.24 |
Data Analysis (1): Neuroimaging Data loading using SPM8 toolbox (11) | 2014.01.26 |
유니코드 변환 파이썬 프로그램 - convert to unicode (python program) (0) | 2013.12.16 |
맥미니 몽고디비 분산 시스템 (5) - Aggregate (0) | 2013.07.20 |