1 개요: 통계학이 \(A^\top A\) 를 만나는 지점
Ch.4 §4.3에서 최소제곱법의 정규방정식 \(A^\top A \hat{\mathbf{x}} = A^\top \mathbf{b}\) 를 배웠다. 이 방정식은 모든 측정이 동등하게 신뢰할 수 있다는 가정 아래 성립한다. 현실에서는 측정마다 정밀도가 다르다 — 어떤 센서는 정확하고 어떤 센서는 부정확하다. §8.6은 이 현실을 반영하여 \(A^\top A\) 의 가운데에 가중 행렬 \(C\) 를 끼워 넣는다 (Strang, 2009, §8.6).
| 상황 | 정규방정식 |
|---|---|
| 모든 측정이 동등 | \(A^\top A \hat{\mathbf{x}} = A^\top \mathbf{b}\) |
| 측정마다 분산이 다름 (독립) | \(A^\top C A \hat{\mathbf{x}} = A^\top C \mathbf{b}\), \(C = \text{diag}(1/\sigma_i^2)\) |
| 측정 간 상관이 있음 | \(A^\top \Sigma^{-1} A \hat{\mathbf{x}} = A^\top \Sigma^{-1} \mathbf{b}\) |
구조는 항상 같다 — \(A^\top (\text{가운데 행렬}) A\). 가운데 행렬이 측정의 신뢰도를 인코딩할 뿐이다.
이 절은 네 가지 주제를 다룬다.
- 가중 최소제곱 — 측정의 신뢰도가 다를 때
- 공분산 행렬 — 확률 변수의 상관 구조를 행렬로
- 확률분포 — 이항, 포아송, 정규분포와 선형대수의 만남
- PCA — 데이터에서 가장 많은 정보를 담는 방향을 SVD로 찾기
2 가중 최소제��: 신뢰할 수 있는 측정에 더 큰 목소리를
2.1 동기: 왜 가중치가 필요한가
\(m\) 개의 측정으로 \(n\) 개의 파라미터를 추정한다. 모델은 \(A\mathbf{x} = \mathbf{b}\) 이고, \(m > n\) 이므로 해가 없다. 최소제곱은 잔차 \(\|\mathbf{b} - A\mathbf{x}\|^2\) 를 최소화한다.
그런데 측정 \(b_1\) 의 분산이 \(\sigma_1^2 = 0.01\) 이고 \(b_2\) 의 분산이 \(\sigma_2^2 = 100\) 이라면? 두 측정을 동등하게 취급하면, 부정확한 \(b_2\) 가 정확�� \(b_1\) 만큼이나 결과에 영향을 준다. 이것은 비합리적이다.
해결: 각 방정식 \(i\) 에 가중치 \(w_i = 1/\sigma_i\) 를 곱한다. 정확한 측정(작은 \(\sigma_i\))은 큰 가중치를 받고, 부정확한 측정(큰 \(\sigma_i\))은 작은 가중치를 받는다.
2.2 수식 유도
\(A\mathbf{x} = \mathbf{b}\) 의 각 행에 가중치를 곱하면 \(WA\mathbf{x} = W\mathbf{b}\) 가 된다. 여기서 \(W = \text{diag}(w_1, \ldots, w_m)\) 이다. 이 새로운 방정식의 최소제곱 해는:
\[ (WA)^\top (WA) \hat{\mathbf{x}} = (WA)^\top (W\mathbf{b}) \]
\[ A^\top W^\top W A \hat{\mathbf{x}} = A^\top W^\top W \mathbf{b} \]
\(C = W^\top W\) 로 놓으면:
\[ \boxed{A^\top C A \hat{\mathbf{x}} = A^\top C \mathbf{b}} \]
\(w_i = 1/\sigma_i\) 이면 \(C = \text{diag}(1/\sigma_1^2, \ldots, 1/\sigma_m^2)\) 이다.
2.3 가장 단순한 경우: 가중 평균
\(n = 1\) 이고 \(A\) 가 모두 1인 열벡터이면, \(x\) 하나를 \(m\) 번 측정하는 상황이다.
- 보통 최소제곱: \(\hat{x} = \frac{b_1 + \cdots + b_m}{m}\) (산술 평균)
- 가중 최소제곱: \(\hat{x}_W = \frac{w_1^2 b_1 + \cdots + w_m^2 b_m}{w_1^2 + \cdots + w_m^2}\) (가중 평균)
직관적으로: 가중 평균은 정확한 측정을 더 많이 반영한다. \(\sigma_3^2 \to \infty\) (세 번째 측정이 완전히 믿을 수 없음)이면 \(w_3 \to 0\) 이므로 \(b_3\) 는 무시된다. \(\sigma_3^2 \to 0\) (완벽히 정확)이면 \(w_3 \to \infty\) 이므로 \(\hat{x} \to b_3\) 가 된다.
2.4 상관된 오차: \(\Sigma^{-1}\) 이 등장하는 이유
측정 오차가 독립이면 \(C\) 는 대각 행렬이다. 그러나 같은 관측자가 비슷한 시간에 측정하면 오차 \(e_i\) 와 \(e_j\) 가 상관될 수 있다. 이때 공분산 행렬 \(\Sigma\) 의 비대각 원소 \(\sigma_{ij} = \mathbb{E}[e_i e_j]\) 가 0이 아니다.
Strang은 이 상관을 “해소”하는 방법을 보여준다. 공분산 행렬 \(\Sigma\) 를 고유분해한다.
\[ \Sigma = Q\Lambda Q^\top \]
변수 변환 \(\mathbf{c} = Q^{-1}\mathbf{b}\) 를 적용하면 새 변수의 공분산은 대각 행렬 \(\Lambda\) 가 된다 — 오차가 독립이 된다. 다시 \(\sqrt{\Lambda}^{-1}\) 로 스케일링하면 모든 분산이 1이 된다.
이 전체 과정을 한 번에 요약하면 \(C = \Sigma^{-1}\) 이다.
\[ A^\top \Sigma^{-1} A \hat{\mathbf{x}} = A^\top \Sigma^{-1} \mathbf{b} \]
- 독립, 동일 분산: \(\Sigma = \sigma^2 I\) \(\to\) \(A^\top A \hat{\mathbf{x}} = A^\top \mathbf{b}\) (보통 최소제곱)
- 독립, 다른 분산: \(\Sigma = \text{diag}(\sigma_i^2)\) \(\to\) WLS
- 상관 있음: \(\Sigma\) 가 일반 양정치 행렬 \(\to\) GLS (일반화 최소제곱)
3 Gauss-Markov 정리: 왜 이것이 “최선”인가
3.1 BLUE — Best Linear Unbiased Estimator
\(A^\top \Sigma^{-1} A \hat{\mathbf{x}} = A^\top \Sigma^{-1} \mathbf{b}\) 의 해 \(\hat{\mathbf{x}}\) 는 세 가지 성질을 동시에 만족하는 유일한 추정량이다.
| 성질 | 의미 | 수학적 표현 |
|---|---|---|
| Linear | 데이터의 선형 함수 | \(\hat{\mathbf{x}} = L\mathbf{b}\), 여기서 \(L = (A^\top \Sigma^{-1} A)^{-1} A^\top \Sigma^{-1}\) |
| Unbiased | 평균이 참값과 같다 | \(\mathbb{E}[\hat{\mathbf{x}}] = \mathbf{x}_{\text{true}}\) |
| Best | 같은 조건의 모든 추정량 중 분산이 최소 | 모든 선형 불편 추정량 \(\tilde{\mathbf{x}}\) 에 대해 \(\text{Var}(\hat{\mathbf{x}}) \leq \text{Var}(\tilde{\mathbf{x}})\) |
“Best”의 의미를 구체적으로 말하면: 다른 어떤 선형 불편 추정량 \(\tilde{\mathbf{x}} = M\mathbf{b}\) 를 잡아도, \(\text{Cov}(\tilde{\mathbf{x}}) - \text{Cov}(\hat{\mathbf{x}})\) 는 양반정치(positive semidefinite)다. 즉 모든 방향에서 \(\hat{\mathbf{x}}\) 의 분산이 같거나 작다.
3.2 추정량의 공분산
\(\hat{\mathbf{x}}\) 의 공분산 행렬은:
\[ P = \mathbb{E}[(\hat{\mathbf{x}} - \mathbf{x})(\hat{\mathbf{x}} - \mathbf{x})^\top] = (A^\top \Sigma^{-1} A)^{-1} \]
이 공식의 직관:
- 데이터 분산 \(\Sigma\) 가 작으면 (정확한 측정) \(\to\) \(\Sigma^{-1}\) 이 크다 \(\to\) \(A^\top \Sigma^{-1} A\) 가 크다 \(\to\) 역행렬 \(P\) 가 작다 \(\to\) 추정이 정확하다.
- 데이터 분산 \(\Sigma\) 가 크면 (부정확한 측정) \(\to\) \(P\) 가 크다 \(\to\) 추정이 부정확하다.
좋은 측정이 좋은 추정을 낳는다는 직관이 행렬 한 줄로 정량화된다.
3.3 예제: 맥박 10회 측정
맥박수 \(x\) 를 10명의 독립적인 의사가 각각 한 번씩 측정한다. 각 측정의 분산은 \(\sigma^2\) 이다. \(\Sigma = \sigma^2 I\), \(A\) 는 모두 1인 \(10 \times 1\) 벡터다.
\[ \hat{x} = \frac{b_1 + \cdots + b_{10}}{10} \quad \text{(산술 평균)} \]
\[ P = (A^\top \Sigma^{-1} A)^{-1} = \frac{\sigma^2}{10} \]
10번 측정하면 분산이 \(1/10\) 로 줄어든다. 이것이 “평균은 개별 측정보다 정확하다”는 직관의 정확한 표현이다.
4 평균과 분산: 확률 변수의 두 가지 핵심 숫자
4.1 이산 확률 변수
확률 변수 \(e\) 가 값 \(e_1, e_2, \ldots\) 을 확률 \(p_1, p_2, \ldots\) 로 취한다면:
\[ \text{평균: } m = \mathbb{E}[e] = \sum_j e_j p_j \]
\[ \text{분산: } \sigma^2 = \mathbb{E}[(e - m)^2] = \sum_j (e_j - m)^2 p_j \]
평균은 “중심”, 분산은 “퍼짐”이다. 분산이 클수록 측정이 불안정하다.
4.2 세 가지 핵심 분포
| 분포 | 상황 | 확률 | 평균 | 분산 |
|---|---|---|---|---|
| 이항(Binomial) | 동전 \(N\) 번, 앞면 \(M\) 번 | \(p_M = \binom{N}{M} p^M (1-p)^{N-M}\) | \(Np\) | \(Np(1-p)\) |
| 포아송(Poisson) | 드문 사건, 평균 \(\lambda\) 번 | \(p_j = \frac{\lambda^j}{j!} e^{-\lambda}\) | \(\lambda\) | \(\lambda\) |
| 정규(Normal) | 연속, 종모양 | \(p(x) = \frac{1}{\sqrt{2\pi}\sigma} e^{-x^2/(2\sigma^2)}\) | \(0\) | \(\sigma^2\) |
포아송은 이항의 극한이다 — 동전이 매우 불공정(\(p \ll 1\))하고 매우 많이 던질 때(\(N \gg 1\)), \(\lambda = Np\) 를 고정하면 이항분포가 포아송에 수렴한다.
정규분포는 중심극한정리(Central Limit Theorem)에 의해 등장한다 — 어떤 분포든, 독립 시행의 평균은 \(N \to \infty\) 에서 정규분포에 수렴한다. 이것이 정규분포가 어디에서나 나타나는 이유다.
5 공분산 행렬: 여러 확률 변수의 상관 구조
5.1 정의
\(m\) 개의 확률 변수를 동시에 관측한다. 각 \(e_i = b_i - m_i\) (평균으로부터의 편차). 두 변수의 상관은 공분산으로 측정한다.
\[ \sigma_{ij} = \mathbb{E}[e_i e_j] \]
이것을 행렬로 모으면 공분산 행렬 \(\Sigma\) 이다.
\[ \Sigma = \mathbb{E}[\mathbf{e}\mathbf{e}^\top], \quad (\Sigma)_{ij} = \sigma_{ij} \]
대각 원소 \(\sigma_{ii} = \sigma_i^2\) 는 각 변수의 분산이고, 비대각 원소 \(\sigma_{ij}\) 는 두 변수 사이의 공분산이다.
5.2 공분산 행렬의 성질
| 성질 | 이유 |
|---|---|
| 대칭 (\(\Sigma = \Sigma^\top\)) | \(\sigma_{ij} = \mathbb{E}[e_i e_j] = \mathbb{E}[e_j e_i] = \sigma_{ji}\) |
| 양반정치 (\(\mathbf{v}^\top \Sigma \mathbf{v} \geq 0\)) | \(\mathbf{v}^\top \Sigma \mathbf{v} = \mathbb{E}[(\mathbf{v}^\top \mathbf{e})^2] \geq 0\) |
| 독립이면 대각 | \(\mathbb{E}[e_i e_j] = \mathbb{E}[e_i]\mathbb{E}[e_j] = 0\) (평균이 0일 때) |
양반정치는 “분산은 음수가 될 수 없다”는 사실의 행렬 버전이다. 임의의 선형결합 \(\mathbf{v}^\top \mathbf{e}\) 의 분산이 \(\mathbf{v}^\top \Sigma \mathbf{v}\) 인데, 분산은 항상 0 이상이다.
6 다변량 정규분포: 고유분해가 독립 성분으로 쪼갠다
6.1 1차원에서 \(m\) 차원으로
1차원 정규분포의 밀도 함수는:
\[ p(x) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left(-\frac{x^2}{2\sigma^2}\right) \]
이것을 \(m\) 차원으로 확장하면, 스칼라 \(\sigma^2\) 가 행렬 \(\Sigma\) 로 바뀐다.
\[ p(\mathbf{b}) = \frac{1}{(2\pi)^{m/2} |\Sigma|^{1/2}} \exp\left(-\frac{1}{2}\mathbf{b}^\top \Sigma^{-1} \mathbf{b}\right) \]
- \(\Sigma\) 는 \(m \times m\) 양정치 공분산 행렬
- \(|\Sigma|\) 는 \(\Sigma\) 의 행렬식
- 지수의 \(\mathbf{b}^\top \Sigma^{-1} \mathbf{b}\) 는 마할라노비스 거리(Mahalanobis distance) 의 제곱
1차원의 \(x^2/\sigma^2\) 이 \(m\) 차원에서 \(\mathbf{b}^\top \Sigma^{-1} \mathbf{b}\) 가 된다. 스칼라 나눗셈이 행렬 역행렬로 바뀐 것이다.
6.2 고유분해로 독립 성분 분리
이 절의 핵심 통찰: \(\Sigma\) 를 고유분해하면 다변량 정규분포가 \(m\) 개의 독립적인 1차원 정규분포의 곱으로 쪼개진다.
\[ \Sigma = Q\Lambda Q^\top, \quad \Lambda = \text{diag}(\lambda_1, \ldots, \lambda_m) \]
변수 변환 \(\mathbf{c} = Q^{-1}\mathbf{b} = Q^\top \mathbf{b}\) (직교 회전)를 적용하면:
\[ \mathbf{b}^\top \Sigma^{-1} \mathbf{b} = \mathbf{c}^\top \Lambda^{-1} \mathbf{c} = \frac{c_1^2}{\lambda_1} + \frac{c_2^2}{\lambda_2} + \cdots + \frac{c_m^2}{\lambda_m} \]
지수가 합으로 분리되므로 밀도가 곱으로 분리된다.
\[ \exp\left(-\frac{\mathbf{b}^\top \Sigma^{-1} \mathbf{b}}{2}\right) = \exp\left(-\frac{c_1^2}{2\lambda_1}\right) \cdots \exp\left(-\frac{c_m^2}{2\lambda_m}\right) \]
각 인수는 분산 \(\lambda_i\) 인 독립 정규분포다. 공분산 행렬의 고유분해 = 상관된 변수를 독립 변수로 회전시키는 것이다.
직관적으로: 다변량 정규분포의 등밀도 곡선(등고선)은 타원이다. 고유벡터가 타원의 축 방향이고, 고유값이 축의 길이를 결정한다. 직교 회전 \(Q\) 는 타원의 축을 좌표축에 정렬시키고, \(\Lambda^{-1/2}\) 는 타원을 원으로 만든다.
6.3 표준 정규분포로의 변환
\(\mathbf{z} = \Lambda^{-1/2} Q^\top \mathbf{b}\) 로 놓으면:
\[ p(\mathbf{z}) = \frac{1}{(2\pi)^{m/2}} \exp\left(-\frac{\mathbf{z}^\top \mathbf{z}}{2}\right) \]
모든 성분이 독립이고 분산이 1인 표준 다변량 정규분포다. 이 변환이 바로 가중 최소제곱에서 \(W = \Sigma^{-1/2}\) 를 곱하는 이유다 — 오차를 표준 정규로 만들면 보통 최소제곱이 적용 가능해진다.
7 PCA: 데이터에서 가장 중요한 방향을 SVD로 찾기
7.1 동기
데이터 행렬 \(A\) 의 행은 \(m\) 개의 특성(feature), 열은 \(n\) 개의 샘플이다. 각 행의 평균을 빼서 중심화(centering)한다.
핵심 질문: 어떤 특성의 조합이 데이터의 변동을 가장 잘 설명하는가?
“정보 = 분산에서의 거리”다. 분산이 큰 방향이 정보가 많고, 분산이 작은 방향은 노이즈에 가깝다.
7.2 SVD가 답을 준다
\[ A = U\Sigma V^\top \]
- \(U\) 의 열 \(\mathbf{u}_i\): 특성 공간의 주방향 (eigencourse, eigenfeature)
- \(V\) 의 열 \(\mathbf{v}_i\): 샘플 공간의 주방향 (eigensample)
- 특이값 \(\sigma_i\): 각 방향의 “세기” — \(\sigma_i^2\) 이 그 방향의 분산
\(A^\top A\) 와 \(AA^\top\) 의 고유벡터가 각각 \(V\) 와 \(U\) 다.
\[ AA^\top = U\Sigma^2 U^\top \]
공분산 행렬 \(\frac{1}{n-1}AA^\top\) 의 고유벡터가 주성분(principal component) 방향이다.
7.3 첫 번째 주성분의 의미
첫 주성분 \(\mathbf{u}_1\) 은 \(\sigma_1^2\) (가장 큰 분산)에 대응한다. 데이터를 \(\mathbf{u}_1\) 방향으로 사영하면 분산이 최대가 된다 — 데이터의 변동을 가장 많이 포착하는 한 방향이다.
두 번째 주성분 \(\mathbf{u}_2\) 는 \(\mathbf{u}_1\) 에 직교한 채로 남은 분산을 최대화한다. 세 번째, 네 번째도 마찬가지다.
7.4 설명 비율
\(k\) 개의 주성분이 전체 분산의 몇 %를 설명하는가:
\[ \text{설명 비율} = \frac{\sigma_1^2 + \sigma_2^2 + \cdots + \sigma_k^2}{\sigma_1^2 + \sigma_2^2 + \cdots + \sigma_r^2} \]
여기서 \(r\) 은 \(A\) 의 rank 다. 이 비율이 90%나 95%를 넘으면, \(k\) 개의 주성분으로 데이터를 충분히 요약할 수 있다. \(m\) 차원의 데이터를 \(k\) 차원으로 차원 축소(dimensionality reduction) 하는 것이다.
7.5 Strang의 성적표 예제
Strang은 학생 4명 x 과목 4개의 성적 행렬로 PCA를 설명한다. A, B, C, F를 4, 2, 0, -6으로 코딩하면 (평균이 0), SVD는 세 개의 특이값 \(\sigma_1 = 12\), \(\sigma_2 = 8\), \(\sigma_3 = 4\) 를 준다.
첫 주성분(eigencourse)이 설명하는 비율:
\[ \frac{12^2}{12^2 + 8^2 + 4^2} = \frac{144}{224} \approx 64\% \]
\(\mathbf{u}_1 = \frac{1}{2}(-1, -1, 1, 1)\) 은 “처음 두 과목과 나머지 두 과목을 대비하는” master course 다. 입학 사정관이 찾는 것이 바로 이것이다 — 하나의 숫자로 학생을 요약하는 최선의 방법이다.
8 왜 필요한가: 데이터 사이언스 응용 지도
| 도구 | 데이터 사이언스에서의 사용 | 구체적 ���시 |
|---|---|---|
| 가중 최소제곱 (WLS) | 이분산(heteroscedasticity) 보정 | 센서 데이터 융합, 금융 시계열 회귀 |
| GLS | 자기상관 오차 보정 | 패널 데이터 분석, ARMA 모형의 추정 |
| 공분산 행렬 | 포트폴리오 최적화 | Markowitz 평균-분산 모형 |
| 다변량 정규 | 이상치 탐지 | 마할라노비스 거리 기반 outlier detection |
| PCA | 차원 축소, 시각화 | 유전자 발현 분석, 얼굴 인식(eigenface), 추천 시스템 |
| 칼만 필터 | \(A^\top \Sigma^{-1} A\) 의 재귀적 갱신 | 자율주행 위치 추정, GPS 보정 |
| LSI/LSA | 텍스트의 SVD | 문서-단어 행렬의 차원 축소로 의미 유사도 포착 |
칼만 필터는 시간에 따라 새로운 측정이 들어올 때마다 \(\hat{\mathbf{x}}\) 와 \(P = (A^\top \Sigma^{-1} A)^{-1}\) 를 점진적으로 갱신하는 알고리즘이다. 매번 전체 행렬을 다시 계산하지 않고, 새 측정 한 줄이 추가될 때의 변화분만 반영한다. 자율주행의 위치 추정, GPS 보정, 로켓 궤도 추적이 모두 이 구조다 — 가중 최소제곱의 재귀 버전이다.
9 코드 예시
9.1 Step 1: Low-level 구현 (가중 최소제곱 원리)
import numpy as np
def weighted_least_squares(A, b, sigma_sq):
"""
가중 최소제곱: A^T Sigma^{-1} A x_hat = A^T Sigma^{-1} b
sigma_sq: 각 측정의 분산 벡터 (독립 가정)
"""
# C = Sigma^{-1} = diag(1/sigma_i^2)
C = np.diag(1.0 / sigma_sq)
# 정규방정식: A^T C A x = A^T C b
AtCA = A.T @ C @ A
AtCb = A.T @ C @ b
x_hat = np.linalg.solve(AtCA, AtCb)
P = np.linalg.inv(AtCA) # 추정량의 공분산
return x_hat, P
# 예제: 직선 y = C*t + D 피팅
# 시간 t = 0, 1, 2에서 측정값 b = 1, 2, 4
# 분산: sigma^2 = 1, 1, 2 (세 번째 측정이 덜 정확)
A = np.array([
[0, 1], # t=0: C*0 + D
[1, 1], # t=1: C*1 + D
[2, 1], # t=2: C*2 + D
])
b = np.array([1, 2, 4])
sigma_sq = np.array([1.0, 1.0, 2.0])
# 보통 최소제곱 (모두 동일 가중)
x_ols = np.linalg.lstsq(A, b, rcond=None)[0]
print(f"OLS: C = {x_ols[0]:.4f}, D = {x_ols[1]:.4f}")
# 가중 최소제곱
x_wls, P_wls = weighted_least_squares(A, b, sigma_sq)
print(f"WLS: C = {x_wls[0]:.4f}, D = {x_wls[1]:.4f}")
print(f"추정량 공분산 P:\n{P_wls}")
# 세 번째 측정을 완전히 무시하면? (sigma^2 = infinity)
sigma_sq_ignore = np.array([1.0, 1.0, 1e10])
x_ignore, _ = weighted_least_squares(A, b, sigma_sq_ignore)
print(f"\n세 번째 무시: C = {x_ignore[0]:.4f}, D = {x_ignore[1]:.4f}")
# 두 점 (0,1), (1,2)를 정확히 지나는 직선: y = t + 19.2 Step 2: PCA with SVD (NumPy 실무 코드)
import numpy as np
# Strang 성적표 예제 (A, B, C, F = 4, 2, 0, -6)
A = np.array([
[-6, 2, 0, 4], # 과목 1
[ 0, 4, -6, 2], # 과목 2
[ 4, 0, 2, -6], # 과목 3
[ 2, -6, 4, 0], # 과목 4
], dtype=float)
# 이미 평균이 0이므로 중심화 불필요
U, sigma, Vt = np.linalg.svd(A, full_matrices=False)
print("특이값:", sigma)
print(f"특이값 제곱 (분산에 비례): {sigma**2}")
# 설명 비율
total_var = np.sum(sigma**2)
for k in range(len(sigma)):
explained = np.sum(sigma[:k+1]**2) / total_var
print(f" 주성분 {k+1}개: {explained:.1%}")
print(f"\n첫 주성분 (eigencourse): u1 = {U[:, 0]}")
print(f"첫 주성분 (eigenstudent): v1 = {Vt[0, :]}")
# 저차원 근사: rank-1 근사
A_rank1 = sigma[0] * np.outer(U[:, 0], Vt[0, :])
print(f"\nRank-1 근사:\n{np.round(A_rank1, 1)}")
print(f"근사 오차: {np.linalg.norm(A - A_rank1):.2f}")9.3 Step 3: 다변량 정규분포와 고유분해 시각���
import numpy as np
import matplotlib.pyplot as plt
# 2D 다변량 정규분포: 고유분해로 독립 성분 분리
Sigma = np.array([[4, 2],
[2, 3]])
eigenvalues, Q = np.linalg.eigh(Sigma)
print(f"공분산 행렬의 고유값: {eigenvalues}")
print(f"고유벡터 (회전 방향):\n{Q}")
# 등밀도 타원 그리기
theta = np.linspace(0, 2*np.pi, 100)
circle = np.vstack([np.cos(theta), np.sin(theta)])
# 타원 = Sigma^{1/2} * 단위원
Sigma_sqrt = Q @ np.diag(np.sqrt(eigenvalues)) @ Q.T
ellipse = Sigma_sqrt @ circle
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
# 원래 좌표: 타원
ax = axes[0]
ax.plot(ellipse[0], ellipse[1], 'b-', linewidth=2)
for i in range(2):
direction = Q[:, i] * np.sqrt(eigenvalues[i])
ax.annotate('', xy=direction, xytext=[0, 0],
arrowprops=dict(arrowstyle='->', color='red', lw=2))
ax.text(direction[0]*1.2, direction[1]*1.2,
f'$\\lambda_{i+1}={eigenvalues[i]:.1f}$', fontsize=12, color='red')
ax.set_xlim(-4, 4); ax.set_ylim(-4, 4)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
ax.set_title('원래 좌표: 상관된 변수 (타원)', fontsize=12)
# 회전 후: 원
rotated = Q.T @ ellipse
ax = axes[1]
ax.plot(rotated[0] / np.sqrt(eigenvalues[0]),
rotated[1] / np.sqrt(eigenvalues[1]), 'b-', linewidth=2)
ax.set_xlim(-4, 4); ax.set_ylim(-4, 4)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
ax.set_title('고유분해 후: 독립 성분 (원)', fontsize=12)
plt.tight_layout()
plt.savefig('multivariate_normal_eigen.png', dpi=150)
plt.show()10 요약: 통계 = 선형대수 + 확률
| 핵심 아이디어 | 선형대수 구조 | 통계적 의미 |
|---|---|---|
| 가중 최소제곱 | \(A^\top \Sigma^{-1} A \hat{\mathbf{x}} = A^\top \Sigma^{-1} \mathbf{b}\) | 신뢰도에 비례하는 가중치로 추정 |
| BLUE | \((A^\top \Sigma^{-1} A)^{-1}\) | 분산 최소 선형 불편 추정량 |
| 공분산의 고유분해 | \(\Sigma = Q\Lambda Q^\top\) | 상관 \(\to\) 독립으로 회전 |
| PCA | \(A = U\Sigma V^\top\) (SVD) | 분산 최대 방향 = 첫 주성분 |
이 절의 통합 메시지: 통계의 핵심 도구는 \(A^\top A\) 의 분광 분해에서 나온다. 가중 최소제곱의 정규방정식, 다변량 정규분포의 고유분해, PCA의 SVD는 모두 같은 선형대수 구조의 변주다. Ch.4의 최소제곱과 Ch.6의 고유값/SVD가 여기서 합류한다.
11 관련 주제
선행 지식
- Ch.4 §4.3 — Least Squares Approximations — 보통 최소제곱의 기초
- Ch.6 §6.4 — 대칭 행렬과 스펙트럼 정리 — 공분산 행렬의 고유분해
- Ch.6 §6.7 — SVD — PCA의 수학적 기반
후속 주제
- Ch.8 Applications 종합 개요 — 7가지 응용의 조감도
- Ch.8 §8.1 — 공학 응용: \(K = A^\top CA\) — 같은 \(A^\top CA\) 구조의 물리적 해석
다른 카테고리 연결
- 최소제곱 회귀 — 정규방정식의 통계적 맥락
- PCA와 차원 축소 — ML에서의 PCA 실무
- 혼합 모형과 GLS — 상관 오차 구조의 종단 분석 응용