Multiple Linear Regression (다중선형회귀)
Setup
response variable $y$가 $k$개의 input variable $x_1, x_2, \dots, x_k$의 함수로 모델링한다고 하자. 즉
\[ y_i = \beta_0 + \beta_1 x_{1i} + \cdots + \beta_k x_{ki} + \epsilon_i \]
coefficient $\beta_0, \beta_1, \dots, \beta_k$는 unknown prameter이고 $\epsilon_i$는 $N(0, \sigma^2)$를 따르는 error term이다. $k=1$인 경우에는 이전에 설명한 단순선형회귀(simple linear regression)이라 한다.
$\mathbf{x} = (x_1, x_2, \dots, x_k)$의 response variable의 기댓값은
\[ E(Y|_{\mathbf{x}}) = \beta_0 + \beta_1 x_1 + \cdots \beta_k x_k \]
가 된다. (response variable이 아니라 response variable의 기댓값이다)
$k=2$인 경우에는 선(line)이 아니라 평면(plane)으로 시각화 할 수 있다.
그리고 모델링을 다음과 같이 할 수 있는데
\[ y = \beta_0 + \beta_1 x_1 + \beta_2 x_1^2 \]
이 경우 $k=2$이고 $x_2 = x_1^2$인 다중선형회귀로 이해할 수 있다.
이 경우에는 이차회귀모델(quadratic regression model)이 된다.
모든 $i$에 대하여 $x_i = x_1^i$인 경우 다항회귀모델(polynomial regression model)이라 한다.
\[ y = \beta_0 + \beta_1 x_1 + \beta_2 x_1^2 + \cdots \beta_k x_1^k \]
quadratic function중에서 자주 보이는 건 둘의 상호작용을 변수로 추가한 모델이다.
\[ y = \beta_{0} + \beta_{1} x_{1} + \beta_{2} x_{1}^2 \beta_{3} x_{2} + \beta_{4} x_{2}^2 + \beta_{5} x_{1} x_{2} \]
마지막 항 $x_1 x_2$는 corss product 또는 interaction이라 부른다.
이렇게 생긴 모델은 반응표면모델(response surface model)이라 한다.
Linear? Non-linear? 선형? 비선형?
아니, $x_i^2$이나 $x_1 x_2$와 같은 독립변수가 있는데도 선형(linear)이라고요?
여기서 선형이라는 말은 parameter(여기서는 $\beta_0, \beta_1, \dots, \beta_k$)가 선형이라는 뜻이다.
독립변수가 선형/비선형인 것이랑 상관이 없다.
참고로 비선형 회귀 (non-linear regression)은 다음과 같다.
- 지수 회귀 (Exponential regression): $y = \beta_0 \exp(\beta_1 x)$
- 로그 회귀 (Logarithmic regression): $y = \beta_0 + \beta_1 \ln(x)$
- 선형 회귀의 로그 변환인 $\ln(y) = \beta_0 + \beta_1 \ln(x)$와 다르다.
- 로지스틱 회귀 (Logistic regression): $\mathbf{y = \cfrac{1}{1 + \exp(-X \beta)}}$
- 인공신경망 (Artificial neural networks)
Fitting the model
단순선형회귀처럼 least square 방법을 이용한다. $n$이 데이터 포인트의 개수라고 할 때,
\[ Q = \sum_{i=1}^{n} (y_i - (\beta_0 + \beta_1 x_{1i} + \cdots \beta_k x_{ki}) )^2 \]
bias term인 $\beta_0$의 경우
\[ \frac{\partial Q}{\partial \beta_0} = -2 \sum_{i=1}^{n} (y_i - (\beta_0 + \beta_1 x_{1i} + \cdots \beta_k x_{ki})) \]
나머지 독립변수의 계수인 $\beta_j$의 경우
\[ \frac{\partial Q}{\partial \beta_j} = -2 \sum_{i=1}^{n} x_{ji} (y_i - (\beta_0 + \beta_1 x_{1i} + \cdots + \beta_k x_{ki})) \]
위의 $(k+1)$개의 연립방정식을 풀어서 $\beta_0, \beta_1, \dots, \beta_k$의 값을 추정할 수 있다.
위 식을 정규방정식(normal equation)이라 하고, 이 방정식의 해는 $(\hat{\beta_0}, \hat{\beta_1}, \dots, \hat{\beta_k})$가 된다.
Analysis of the Fitted Model
fitted value는 hat 기호를 사용한다.
\[ \hat{y}_i = \hat{\beta_0} + \hat{\beta_1} x_{1i} + \cdots + \hat{\beta_k}x_{ki} \]
이때 $i$번째 잔차(residual)은 $e_i = y_i - \hat{y}_i$ 이다.
simple linear regression과 같이, sum of squares of error (SSE)는
\[ \text{SSE} = \sum_{i=1}^{n}(y_i - \hat{y}_i)^2 = \sum_{i=1}^{n} e_i^2 \]
이고, error variance $\sigma^2$의 추정값을 $\hat{\sigma}^2$는
\[ \hat{\sigma}^2 = \text{MSE} = \cfrac{\text{SSE}}{n - k - 1} \]
전체 샘플 크기가 $n$이고 ($\beta_0$을 고려한) parameter 개수가 (k + 1)이므로 자유도는 $n-(k+1)$이다.
따라서 MSE는 다음의 분포를 따른다.
\[ \hat{\sigma}^2 \sim \sigma^2 \cfrac{\chi^2_{n-k-1}}{n-k-1} \]
total sum of squares는
\[ \text{SST} = \sum_{i=1}^{n} (y_i - \bar{y})^2 \]
SST를 분해하면
\[ \text{SST = SSR + SSE} \]
regression sum of squares는
\[ \text{SSR} = \sum_{i=1}^{n} (\hat{y} - \bar{y})^2 \]
이다.
p-value의 null hypothesis는
\[ H_0: \beta_1 = \cdots = \beta_k = 0 \]
이다. ($H_A$는 적어도 하나 이상의 $\beta_i \neq 0$ 이다.)
또한, coefficient of determination은
\[ R^2 = \frac{\text{SSR}}{\text{SST}} \]
이며 범위는 $[0, 1]$ 이다.
F-statistic은
\[ F = \frac{\text{SSR}}{k\hat{\sigma}^2} = \frac{(n-k-1)R^2}{k(1 - R^2)} \]
Matrix Formulation
$1 \le i \le n$에 대하여 $i$번째 $y$에 대한 linear model
\[ y_i = \beta_0 + \beta_1 x_{1i} + \cdots + \beta_k x_{ki} + \epsilon_i \]
로 표현되는데, 이를 행렬으로 표현하면 다음과 같다.
\[ \mathbf{Y = X \beta} + \epsilon \]
$\mathbf{Y}$는 $n \times 1$ vector이며
$\mathbf{X}$: design matrix, $n \times (k + 1)$ matrix. 1열은 1로 채워진 컬럼이다. $k$는 bias term을 제외한 파라미터의 개수이다.
$\mathbf{\beta}$: parameter vector, $(k + 1) \times 1$ vector이다.
$\mathbf{\epsilon}$: error terms, $n \times 1$ vector
따라서 모델 가정은 다음과 같다.
\begin{align} \mathbf{\epsilon} &\sim N_n(\mathbf{0}, \ \sigma^2 \mathbf{I}_n) \\ \mathbf{Y} &\sim N_n(\mathbf{X\beta},\ \sigma^2 \mathbf{I}_n) \end{align}
따라서 $E(\mathbf{Y}) = \mathbf{X\beta}$ 이다.
그리고 squares $Q$의 matrix form은 다음과 같다.
\[ \mathbf{Q = (Y - X\beta)'(Y - X\beta) } \]
※ 일반적으로 transpose는 $A^T$, $A^\top$으로 표기하지만 여기서는 $A'$으로 표기한다.
normal equations (정규방정식)다음과 같다.
\[ \mathbf{ X'X\beta = X'Y} \]
우리는 parameter vector 를 구하는 것이 목적이므로
\[ \hat{\mathbf{\beta}} = (X'X)^{-1} X'Y \]
residual vector는 $\mathbf{e = Y - \hat{Y}}$이며 SSE와 MSE는 각각
$\text{SSE} = \mathbf{e'e}$ 이고 $\hat{\sigma}^2 = \text{MSE} = \cfrac{\text{SSE}}{n - k - 1}$ 이다.
앞서 설명했듯이, $k$는 bias term을 제외한 파라미터 개수이다.
input variable 역시 column vector 형태이며 $\mathbf{x^*} = (1, x_1^*, x_2^*, \dots, x_k^*)'$이다.
이 때의 response value는 $\hat{y}|_{\mathbf{x^*}} = \mathbf{x}^* \hat{\mathbf{\beta}}$
standard error 역시 다음과 같다.
\[ \text{s.e.}(\hat{y}|_{\mathbf{x}^*}) = \hat{\sigma} \sqrt{\mathbf{x^{*'}(X'X)^{-1} x^* }} \]
$\mathbf{\hat{Y} = X \hat{\beta} = X(X'X)^{-1}X'Y = HY }$ 로 표기하는 경우가 많고,
$\mathbf{H} = X(X'X)^{-1}X'$를 hat matrix라 부르며 $n \times n$ 이다.
hat matrix를 이용하여 error term을 표현하면
\[ \mathbf{e = Y - \hat{Y} = Y - HY = (I_n - H)Y} \]
이다. 그리고 covariance matrix는 $\sigma^2 (\mathbf{I}_n - H)$이므로
\[ \text{Var}(e_i) = \sigma^2(1 - h_{ii}) \]
이다. 이 때 $h_{ii}$는 $\mathbf{H}$의 대각성분(diagonal element)이다.
따라서 standardized residual은
\[ e_i^* = \frac{e_i}{\hat{\sigma} \sqrt{1 - h_{ii}} } \]
이다.
Parameter estimation using Matrix Calculus
행렬 미적분을 이용하여 파라미터를 추정해보자.
loss function은 least square이므로
\begin{align} L &= \mathbf{(y - X\beta)'(y - X\beta)} \\ &= \mathbf{y'y - 2y'X\beta + \beta'X'X\beta} \end{align}
이제 $L$을 $\mathbf{\beta}$에 대해 미분한다. 그러면
$\cfrac{\partial}{\partial \beta} (\mathbf{y'y}) \mathbf{=0}$
$\cfrac{\partial}{\partial \beta}(\mathbf{-2y'X\beta})= \mathbf{-2X'y}$
$\cfrac{\partial}{\partial \beta}(\mathbf{\beta'X' X\beta}) = \mathbf{2X'X\beta}$
따라서 loss function의 미분은
\[ \frac{\partial}{\partial \beta} L(\beta) = \mathbf{-2X'y + 2X'X\beta} \]
gradient가 0이 되는 지점을 찾으면 $\mathbf{-2X'y + 2X'X\beta = 0}$에서
\[ \mathbf{X'X \beta = X'y} \]
여기서 $\mathbf{\beta}$를 구하기 위해서는 $\mathbf{X'X}$의 역행렬을 곱한다.
\[ \mathbf{\beta = (X'X)^{-1} X'y} \]
이때, $\mathbf{X'X}$의 역행렬이 존재하지 않을 수 있다. (비가역 행렬, 즉, \mathbf{X'X} is singular)$
$\mathbf{X'X}$의 역행렬이 존재하지 않는 수학적 이유
- (선형 종속) 일부 열 벡터가 다른 열벡터의 선형 결합으로 표현되는 경우
- rank가 낮을 때
데이터 측면에서 열 벡터는 독립변수를 의미한다.
이제 데이터 측면에서 선형종속은 정보의 중복을 의미한다.
특히, 두 독립변수가 선형종속이라면($\mathbf{x_1 = 2x_2 + 3}$) 매우 강한 상관관계를 의미한다.
데이터 측면에서 rank가 낮은 경우는 독립변수가 샘플 수가 더 많은 경우이다.
선형종속에 대해 좀 더 자세히 설명하면 이렇다.
선형종속인 열 벡터가 $\mathbf{x_1 = 2x_2 + 3x_3 + 4}$라고 하자.
이는 $\mathbf{x_1}$는 데이터 관점에서 새로운 정보가 없다.
예를 들어, california housing 데이터셋을 생각해보자.
AveRooms와 AveBedrms는 각각 평균 방의 개수, 평균 침실 개수이다.
변수 의미 자체가 서로 매우 강한 상관관계를 가짐을 추측할 수 있다.
(실제로 계산해보면 0.8476으로 매우 매우 높다)
이 두 변수 모두 모델링에 사용하면 오히려 계수의 신뢰도가 떨어질 수 있다.
왜냐면 이 두 변수는 같이 움직이기 때문이다.
이를 통계에서는 다중공선성이라고도 한다.
다중공선성이 발생하면, 회귀모델에서 계수 추정이 불안정해지고, 통계적 유의성이 왜곡될 수 있다.
다중공선성을 판단하는 방법과 그 해결방법은 다음 포스트에서~
'스터디 > 데이터사이언스' 카테고리의 다른 글
[CS246] Bandits (4) - Thompson Sampling (0) | 2024.10.26 |
---|---|
Multiple Linear Regression (2) - Evaluation (0) | 2024.10.14 |
LG Aimers 4기 본선 해커톤 후기 (대회, 여담, 사진) (12) | 2024.04.10 |
[CS246] Bandits (3) - UCB1 Algorithm (0) | 2024.03.06 |
[CS246] Bandits (2) - Epsilon-Greedy Algorithm (0) | 2024.02.27 |