다변량 분석 (Multivariate Analysis)
다변량 분석은 다변량 데이터(multivariate data)에 대한 분석이다. 다변량 데이터란 하나의 대상에 대해 여러 측정값을 갖는 데이터를 말한다. 예를 들어서 건강검진 데이터라 하면 나에 대해 키, 몸무게, 혈압, 혈당, 콜레스테롤 등 다양한 변수에 대한 값이 측정된다. 변수가 $ p $ 개라 할 때 하나의 데이터를 다음과 같이 벡터로 나타낼 수 있다.
$$ \mathbf{x}_i = \begin{bmatrix} x_{i1} & x_{i2} & \cdots & x_{ip} \end{bmatrix} \in \mathbb{R}^p $$
그리고 이러한 데이터가 $ n $ 개 있을 때 이를 묶어 다음과 같이 $ n \times p $ 행렬로 나타낼 수 있다.
$$ \mathbf{X} = \begin{bmatrix} \mathbf{x}_1 \\ \mathbf{x}_2 \\ \vdots \\ \mathbf{x}_n \end{bmatrix} = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1p} \\ x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{np} \end{bmatrix} $$
즉 벡터와 행렬로 데이터를 다루기 때문에 기본적인 선형대수학을 알아야 한다.
간단한 선형대수학
- 벡터(vector)
$$ \mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_p \end{bmatrix} \in \mathbb{R}^p $$
위와 같은 벡터는 $ p \times 1 $ 의 열벡터이고 이를 전치(transpose)하면 다음과 같은 $ 1 \times p $ 행벡터가 된다.
$$ \mathbf{v}^T = \begin{bmatrix} v_1 & v_2 & \cdots & v_p \end{bmatrix} $$
- 행렬(matrix)
$$ \mathbf{X} = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1q} \\ x_{21} & x_{22} & \cdots & x_{2q} \\ \vdots & \vdots & \ddots & \vdots \\ x_{p1} & x_{p2} & \cdots & x_{pq} \end{bmatrix} = \left[ x_{ij} \right] _{(p \times q)} $$
행렬은 실수(real number)로 이루어진 직사각형 배열로 위와 같이 나타낸다. $ x_{ij} $ 는 $ i $ 번째 행, $ j $ 번째 열에 위치한 원소이다.
- 정방행렬(square matrix)
$ p = q $ 인 $ p \times q $ 행렬을 정방행렬이라 한다. 정사각행렬이라 하기도 한다.
- 영행렬(zero matrix)
모든 원소가 $ 0 $ 인 행렬로 $ \mathbf{0} $ 으로 나타낸다.
- 단위행렬(identity matrix)
$$ \mathbf{I} = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix} $$
정방행렬이면서 행과 열이 같은 곳의 원소 집합인 주대각성분이 모두 $ 1 $ 인 행렬이다.
- 전치행렬(transpose matrix)
$$ \mathbf{X} = \left[ x_{ij} \right]_{(p \times q)} \quad \Longrightarrow \quad \mathbf{X}^T = \left[ x_{ji} \right] _{(q \times p)} $$
기존 행렬의 행과 열을 바꾼 행렬이다. $ ^T $ 를 전치(transpose)라 하고, $ ^\prime $ 으로 나타내기도 한다. 전치는 다음과 같은 성질이 있다.
$$ (\mathbf{X} + \mathbf{Y})^T = \mathbf{X}^T + \mathbf{Y}^T $$
$$ (\mathbf{X}^T)^T = \mathbf{X} $$
- 대칭행렬(symmetric matrix)
$$ \mathbf{X} = \mathbf{X}^T $$
위 조건을 만족하는 정방행렬을 대칭행렬이라 한다.
- 반대칭행렬(skew-symmetrix matrix)
$$ \mathbf{X} = - \mathbf{X}^T $$
위 조건을 만족하는 정방행렬을 반대칭행렬이라 한다.
- 대각행렬(diagonal matrix)
$$ \begin{bmatrix} x_{11} & 0 & \cdots & 0 \\ 0 & x_{22} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & x_{pp} \end{bmatrix} = \operatorname{diag} (x_{11},\,\, x_{12},\,\, \cdots,\,\, x_{pp}) $$
즉 $ x_{ij} = 0 $, $ (i \neq j) $ 인 정방행렬을 대각행렬이라 한다. 위에서 소개한 단위행렬 또한 대각행렬이다.
- 대각합(trace)
$$ \operatorname{tr} (\mathbf{X}) = \sum x_{ii} $$
어떤 정방행렬 대각원소들의 합이다. 전치해도 변하지 않는다.
- 행렬 곱
$$ \mathbf{X}_{p \times n} \mathbf{Y}_{n \times q} = \left[ z_{ij} \right]_{(p \times q)} $$
$$ z_{ij} = \sum_{k=1}^n x_{ik} y_{kj} $$
행렬 곱은 위와 같이 정의한다.
- 직교행렬(orthogonal matrix)
$$ \mathbf{X} \mathbf{X}^T = \mathbf{X}^T \mathbf{X} = \mathbf{I} $$
위 조건을 만족하는 정방행렬을 직교행렬이라 한다.
- 멱등행렬(idempotent matrix)
$$ \mathbf{X}^2 = \mathbf{X} $$
위 조건을 만족하는 정방행렬을 멱등행렬이라 한다.
- 행렬식(determinant)
$$ \det (\mathbf{X}) = \lvert \mathbf{X} \rvert $$
일반적으로 $ 2 \times 2 $ 행렬, $ 3 \times 3 $ 행렬에 대해서는 계산하는 공식이 있지만 그 외 행렬에 대해서는 따로 계산해주어야 한다(참고링크).
행렬식의 성질은 다음과 같다.
$$ \vert \alpha \mathbf{X}_{p \times p} \rvert = \alpha^p \vert \mathbf{X}_{p \times p} \rvert $$
$$ \det( \mathbf{XY} ) = \det (\mathbf{X}) \cdot \det (\mathbf{Y}) $$
$$ \det ( \mathbf{I}_p + \mathbf{XY}_{p \times q} ) = \det ( \mathbf{I}_q + \mathbf{XY}_{q \times p}) $$
$$ \mathbf{X} \mathbf{X}^T = \mathbf{X}^T \mathbf{X} = \mathbf{I} \quad \Longrightarrow \quad \det(\mathbf{X}) = \pm 1 $$
$ \det(\mathbf{X}) \neq 0 $ 이면 정칙행렬이라 한다.
- 역행렬(inverse matrix)
$$ \mathbf{X} \mathbf{X}^{-1} = \mathbf{I} $$
어떤 행렬이 정칙행렬이라면 역행렬이 존재하며 위와 같다. 그리고 다음과 같은 성질을 가진다.
$$ \mathbf{X} \mathbf{X}^{-1} = \mathbf{X}^{-1} \mathbf{X} = \mathbf{I} $$
$$ \left( \mathbf{X}^{-1} \right)^T = \left( \mathbf{X}^T \right)^{-1} $$
행렬 $ \mathbf{X} $ 와 $ \mathbf{Y} $ 둘 다 정칙행렬이라면 다음과 같다.
$$ \left( \mathbf{XY} \right)^{-1} = \mathbf{X}^{-1} \mathbf{Y}^{-1} $$
만약 직교행렬이라면 다음과 같다.
$$ \mathbf{X}^{-1} = \mathbf{X}^T $$
- 회전행렬(rotation matrix)
$$ \mathbf{R} = \begin{bmatrix} \cos (\theta) & - \sin (\theta) \\ \sin (\theta) & \cos(\theta) \end{bmatrix} $$
2차원 공간에서 반시계 방향으로 $ \theta $ 만큼 회전이동하는 행렬(참고링크)이다. 이 행렬은 직교행렬이기도 하다.
- 중심화 행렬(centering matrix)
$$ \mathbf{C} = \mathbf{I}_n - \frac{1}{n} \mathbf{1}_n \mathbf{1}_n^T $$
데이터의 평균을 $0 $ 으로 만드는 행렬로 멱등이고 대칭이다.
- 투영 행렬(projection matrix)
$$ \mathbf{P}_X = \mathbf{X} ( \mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T $$
벡터를 특정 공간 또는 부분공간(subspace)에 투영하는 행렬로, 멱등이고 대칭이다.
- 하우스홀더 행렬(Householder matrix)
$$ \mathbf{H} = \mathbf{I} - 2 \mathbf{u} \mathbf{u}^T $$
벡터를 어떤 평면 혹은 초평면에 대해 반사시키는데 사용되는 행렬로 여기서 $ \| \mathbf{u} \| = 1 $ 라면 직교이면서 대칭이다.
- 고유값(eigenvalues)
정방행렬 $ \mathbf{X}_{p \times p} $ 는 다음과 같은 특성방정식(characteristic equation)을 갖는다.
$$ \det (\mathbf{X} - \lambda \mathbf{I}_p ) $$
이를 $ 0 $ 으로 두고 풀면 $ \lambda $ 들을 구할 수 있는데 이를 $ \mathbf{X} $ 의 고유값이라 하고 다음과 같은 성질이 있다.
$$ \det (\mathbf{X}) = \prod \lambda_i $$
$$ \operatorname{tr} (\mathbf{X}) = \sum \lambda_i $$
만약 $ \mathbf{X}$ 가 대칭행렬이라면 모든 고유값은 실수이다.
- 고유벡터(eigenvector)
고유값 $ \lambda_i $ 에 대해 다음 조건을 만족하는 $ \mathbf{0} $ 이 아닌 벡터 $ \mathbf{u}_i $ 를 고유벡터라 한다.
$$ \mathbf{X} \mathbf{u}_i = \lambda_i \mathbf{u}_i $$
즉 행렬 $ \mathbf{X} $ 에 의해 작용을 받아도 방향은 유지되고 크기만 변하는 벡터이다. 이를 통해 고유값을 보면 행렬이 고유벡터의 크기를 얼마나 변화시키는지를 나타내는 것이라 할 수 있다.
다음과 같은 방정식을 풀어 각 고유벡터를 구한다.
$$ (\mathbf{X} - \lambda_i \mathbf{I}) \mathbf{u}_i = \mathbf{0} $$
- 고유분해(eigendecomposition)
대칭행렬 $ \mathbf{X}_{p \times p} $ 는 많아야 $ p $ 개의 서로 다른 고유값 $ \lambda_1, \lambda_2, \cdots, \lambda_p $ 와 이에 대응하는 고유벡터 $ \mathbf{u}_1 , \mathbf{u}_2, \cdots , \mathbf{u}_p $ 를 갖는다(참고링크). 이 경우 $ \mathbf{X} $ 는 다음과 같이 분해 가능하다.
$$ \mathbf{X} = \mathbf{U \Lambda U}^T $$
여기서 $ \mathbf{U} $ 는 고유벡터들로 구성된 직교행렬이고, $ \Lambda $ 는 고유값을 대각원소로 갖는 대각행렬이다. 이 분해를 스펙트럴 분해(spectral decomposition)라고도 한다.
- 양의 정부호성(positive semi-definiteness)
대칭행렬 $ \mathbf{X} $ 가 준정부호 행렬(non-negative definite matrix)라면 다음과 같다.
$$ \mathbf{y}^T \mathbf{X} \mathbf{y} = \sum \sum y_i x_{ij} y_j \leq 0 \quad (\forall \mathbf{y} \neq \mathbf{0}) $$
$ \mathbf{X} $ 가 준정부호 행렬이라면 $ \mathbf{X}^{1/2} $ 를 유일하게 정의할 수 있으며 다음과 같은 성질을 가진다.
$$ \mathbf{X}^{1/2} \mathbf{X}^{1/2} = \mathbf{X} $$
스펙트럴 분해를 이용하면 다음과 같다.
$$ \mathbf{X}^{1/2} = \mathbf{U \Lambda}^{1/2} \mathbf{U}^T $$
여기서 $ \mathbf{\Lambda} = \operatorname{diag} (\sqrt{\lambda_1}, \sqrt{\lambda_2}, \cdots , \sqrt{\lambda_p}) $ 이다.