Ch.8 §8.6 Linear Algebra for Statistics and Probability — 가중 ���소제곱·공분산·PCA

측정의 신뢰도가 다를 때 \(A^\top \Sigma^{-1} A\), 다변량 정규분포의 고유분해, SVD로 하는 PCA

통계학의 핵심 도구 — 가중 최소제곱(WLS), 공분산 행렬, 다변량 정규분포, PCA — 는 모두 선형대수의 \(A^\top A\) 구조 위에 세워져 있다. 측정의 신뢰도가 다를 때 왜 \(\Sigma^{-1}\)을 곱하는지, Gauss-Markov의 BLUE가 왜 최적인지, 공분산 행렬의 고유분해가 왜 다변량 정규분포를 독립 성분으로 쪼개는지, PCA가 왜 SVD인지를 직관과 함께 전개한다 (Strang, 2009, §8.6).

Math
Linear Algebra
Statistics
저자

Kwangmin Kim

공개

2026년 04월 12일

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\). 가운데 행렬이 측정의 신뢰도를 인코딩할 뿐이다.

이 절은 네 가지 주제를 다룬다.

  1. 가중 최소제곱 — 측정의 신뢰도가 다를 때
  2. 공분산 행렬 — 확률 변수의 상관 구조를 행렬로
  3. 확률분포 — 이항, 포아송, 정규분포와 선형대수의 만남
  4. 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\) 로 바뀐다.

정의: 다변량 정규분포 (Multivariate Normal)

\[ 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 문서-단어 행렬의 차원 축소로 의미 유사도 포착
칼만 필터와 \(A^\top \Sigma^{-1} A\) 의 연결

칼만 필터는 시간에 따라 새로운 측정이 들어올 때마다 \(\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 + 1

9.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 관련 주제

선행 지식

후속 주제

다른 카테고리 연결

Subscribe

Enjoy this blog? Get notified of new posts by email: