Mímisbrunnr知恵の泉

← 統計検定 一覧

📊 対象級:準1級 | 重要度:B(標準)

要点(BLUF)

複数の変数 X1,…,XpX_1,\dots,X_p の「散らばり」と「関係」をひとつの行列にまとめたものが 分散共分散行列 Σ\Sigma です。対角に各変数の分散、非対角に変数間の共分散を並べます。

  Σ=E ⁣[(X−μ)(X−μ)⊤]  \boxed{\;\Sigma=\mathbb E\!\left[(\mathbf X-\boldsymbol\mu)(\mathbf X-\boldsymbol\mu)^\top\right]\;}

要するに「1次元の分散 Var(X)\mathrm{Var}(X) を、変数ベクトル X\mathbf X 向けに拡張した行列版の分散」です。準1級では次の3点が問われます。

  1. 半正定値性(a⊤Σa≥0\mathbf a^\top\Sigma\mathbf a\ge0)と、そこから従う「固有値が全て非負」。
  2. 線形変換の公式 Var(AX)=AΣA⊤\mathrm{Var}(A\mathbf X)=A\Sigma A^\top。
  3. 相関行列 R=D−1/2ΣD−1/2R=D^{-1/2}\Sigma D^{-1/2} への標準化と、スケール依存/不変の違い。

これらはすべて 主成分分析(PCA)(Σ\Sigma の固有値分解)と 多変量正規分布 の土台になります。


1. 分散共分散行列 Σ\Sigma の定義

1.1 確率変数ベクトルと平均ベクトル

pp 個の確率変数を縦に並べたベクトルを考えます。

X=(X1X2⋮Xp),μ=E[X]=(E[X1]E[X2]⋮E[Xp])\mathbf X=\begin{pmatrix}X_1\\ X_2\\ \vdots\\ X_p\end{pmatrix},\qquad \boldsymbol\mu=\mathbb E[\mathbf X]=\begin{pmatrix}\mathbb E[X_1]\\ \mathbb E[X_2]\\ \vdots\\ \mathbb E[X_p]\end{pmatrix}

μ\boldsymbol\mu は 平均ベクトルで、各成分が各変数の期待値です。期待値・分散の1変数での性質は 期待値・分散の性質(線形性・和の分散・共分散) が下地になります。

1.2 行列としての定義

中心化したベクトル X−μ\mathbf X-\boldsymbol\mu の「外積の期待値」が分散共分散行列です。

Σ=E ⁣[(X−μ)(X−μ)⊤]\Sigma=\mathbb E\!\left[(\mathbf X-\boldsymbol\mu)(\mathbf X-\boldsymbol\mu)^\top\right]

ここで (X−μ)(\mathbf X-\boldsymbol\mu) は p×1p\times1、その転置は 1×p1\times p なので、積は p×pp\times p 行列になります。中身を成分で書き下すと、(i,j)(i,j) 成分は

Σij=E ⁣[(Xi−μi)(Xj−μj)]=Cov(Xi,Xj)\Sigma_{ij}=\mathbb E\!\left[(X_i-\mu_i)(X_j-\mu_j)\right]=\mathrm{Cov}(X_i,X_j)

となります。したがって行列全体は次の形です。

Σ=(Var(X1)Cov(X1,X2)⋯Cov(X1,Xp)Cov(X2,X1)Var(X2)⋯Cov(X2,Xp)⋮⋮⋱⋮Cov(Xp,X1)Cov(Xp,X2)⋯Var(Xp))\Sigma= \begin{pmatrix} \mathrm{Var}(X_1) & \mathrm{Cov}(X_1,X_2) & \cdots & \mathrm{Cov}(X_1,X_p)\\ \mathrm{Cov}(X_2,X_1) & \mathrm{Var}(X_2) & \cdots & \mathrm{Cov}(X_2,X_p)\\ \vdots & \vdots & \ddots & \vdots\\ \mathrm{Cov}(X_p,X_1) & \mathrm{Cov}(X_p,X_2) & \cdots & \mathrm{Var}(X_p) \end{pmatrix}

要するに「対角に各変数の分散、非対角にペアの共分散を並べた表」です。2変数の共分散・相関の基礎は 2変数の記述(散布図・共分散・相関係数)── 相関≠因果/rは直線関係しか測れない/外れ値1点で激変、同時分布から共分散が出る仕組みは 同時分布・周辺分布・条件付き分布 を参照してください。

1.3 対称性

Cov(Xi,Xj)=Cov(Xj,Xi)\mathrm{Cov}(X_i,X_j)=\mathrm{Cov}(X_j,X_i) なので、Σij=Σji\Sigma_{ij}=\Sigma_{ji}、すなわち

Σ⊤=Σ(対称行列)\Sigma^\top=\Sigma\quad(\text{対称行列})

です。これが後の「直交行列で対角化できる」の前提になります。

別の便利な表現として Σ=E[XX⊤]−μμ⊤\Sigma=\mathbb E[\mathbf X\mathbf X^\top]-\boldsymbol\mu\boldsymbol\mu^\top があります。これは Var(X)=E[X2]−(EX)2\mathrm{Var}(X)=\mathbb E[X^2]-(\mathbb E X)^2 の行列版で、モーメントの観点(確率変数の変換・モーメント母関数・積率)から見ると「2次の原点まわりモーメント行列 E[XX⊤]\mathbb E[\mathbf X\mathbf X^\top] から平均の寄与を引いたもの」です。


2. 標本分散共分散行列 SS

母集団の Σ\Sigma は理論量です。データから推定するのが 標本分散共分散行列 SS です。

2.1 定義

nn 個の観測ベクトル x1,…,xn\mathbf x_1,\dots,\mathbf x_n(各 xi\mathbf x_i は pp 次元)と標本平均 xˉ=1n∑ixi\bar{\mathbf x}=\frac1n\sum_{i}\mathbf x_i について、

  S=1n−1∑i=1n(xi−xˉ)(xi−xˉ)⊤  \boxed{\;S=\frac{1}{n-1}\sum_{i=1}^{n}(\mathbf x_i-\bar{\mathbf x})(\mathbf x_i-\bar{\mathbf x})^\top\;}

これは1変数の不偏分散 s2=1n−1∑i(xi−xˉ)2s^2=\frac{1}{n-1}\sum_i(x_i-\bar x)^2 をそのまま行列に拡張したものです。n−1n-1 で割るのは、平均 xˉ\bar{\mathbf x} を推定に使ったことで自由度が1減るためで、これにより E[S]=Σ\mathbb E[S]=\Sigma(不偏性)が成り立ちます。

2.2 中心化行列を使った行列表記(重回帰と地続き)

観測を行ごとに積んだデータ行列 XX(n×pn\times p)を考えます。

X=(x1⊤x2⊤⋮xn⊤)X=\begin{pmatrix}\mathbf x_1^\top\\ \mathbf x_2^\top\\ \vdots\\ \mathbf x_n^\top\end{pmatrix}

各列(各変数)から平均を引いた 中心化データ行列 を XcX_c とします。これは 中心化行列(centering matrix)

H=In−1n11⊤(1=(1,1,…,1)⊤)H=I_n-\frac{1}{n}\mathbf 1\mathbf 1^\top \qquad(\mathbf 1=(1,1,\dots,1)^\top)

を左から掛けて Xc=HXX_c=HX で作れます(1n11⊤\frac1n\mathbf 1\mathbf 1^\top は「全行を平均で置き換える」作用なので、引くと各列が中心化される)。このとき標本分散共分散行列は

  S=1n−1Xc⊤Xc  \boxed{\;S=\frac{1}{n-1}X_c^\top X_c\;}

と書けます。Xc⊤XcX_c^\top X_c の (i,j)(i,j) 成分が ∑k(xki−xˉi)(xkj−xˉj)\sum_k(x_{ki}-\bar x_i)(x_{kj}-\bar x_j)、すなわち変数 i,ji,j の偏差積和になっているからです。

要するに「SS は中心化データの グラム行列(データ点どうしの内積を並べた行列) Xc⊤XcX_c^\top X_c を自由度で割っただけ」です。重回帰の正規方程式に現れる X⊤XX^\top X(重回帰分析)と同じ (行列)⊤(同じ行列)(\text{行列})^\top(\text{同じ行列}) の形をしている点に注目してください。重回帰の X⊤XX^\top X も、列を中心化すれば本質的に (n−1)S(n-1)S になります。多変量解析の至るところでこの X⊤XX^\top X 型が顔を出すのは、すべて2次モーメントの集約だからです。

HH の性質:HH は対称(H⊤=HH^\top=H)かつ冪等(H2=HH^2=H)な射影行列です。よって S=1n−1X⊤H⊤HX=1n−1X⊤HXS=\frac{1}{n-1}X^\top H^\top HX=\frac{1}{n-1}X^\top HX とも書けます。


3. 相関行列 RR

3.1 共分散行列の標準化

共分散はスケール(単位)に依存します。これを取り除いて「関係の強さ」だけを取り出したのが 相関行列 RR です。各変数の標準偏差 σi=Σii\sigma_i=\sqrt{\Sigma_{ii}} を対角に並べた対角行列

D=diag(σ1,σ2,…,σp),D−1/2=diag ⁣(1σ1,…,1σp)D=\mathrm{diag}(\sigma_1,\sigma_2,\dots,\sigma_p),\qquad D^{-1/2}=\mathrm{diag}\!\left(\tfrac{1}{\sigma_1},\dots,\tfrac{1}{\sigma_p}\right)

を使って、

  R=D−1/2 Σ D−1/2  \boxed{\;R=D^{-1/2}\,\Sigma\,D^{-1/2}\;}

と定義します(ここで DD は分散を対角に並べた行列とみなし、D−1/2D^{-1/2} は 1/σi1/\sigma_i の対角行列です)。(i,j)(i,j) 成分を書き下すと、

Rij=Σijσiσj=Cov(Xi,Xj)Var(Xi)Var(Xj)=ρijR_{ij}=\frac{\Sigma_{ij}}{\sigma_i\sigma_j}=\frac{\mathrm{Cov}(X_i,X_j)}{\sqrt{\mathrm{Var}(X_i)}\sqrt{\mathrm{Var}(X_j)}}=\rho_{ij}

まさに 相関係数(2変数の直線的な関連の強さを-1から1で表す指標) です。要するに「RR は Σ\Sigma の各成分を、対応する2変数の標準偏差で割って正規化した行列」です。

3.2 性質

3.3 「標準化したデータの共分散行列=相関行列」

各変数を Zi=Xi−μiσiZ_i=\dfrac{X_i-\mu_i}{\sigma_i} と標準化すると、ZiZ_i は分散1になります。標準化後のベクトル Z\mathbf Z の共分散行列は、定義から Cov(Zi,Zj)=ρij\mathrm{Cov}(Z_i,Z_j)=\rho_{ij} なので

Var(Z)=R\mathrm{Var}(\mathbf Z)=R

つまり「先に標準化してから共分散行列を作る = 相関行列」です。RR は Σ\Sigma より狭い概念(情報量が少ない)で、スケールの情報を捨てた代わりに単位に依存しなくなります。


4. 半正定値性の証明(省略しない)

これが準1級で最も問われる性質です。Σ\Sigma は半正定値である、すなわち任意のベクトル a∈Rp\mathbf a\in\mathbb R^p に対して a⊤Σa≥0\mathbf a^\top\Sigma\mathbf a\ge0。

4.1 鍵となる事実:二次形式は新しい確率変数の分散

任意の定数ベクトル a=(a1,…,ap)⊤\mathbf a=(a_1,\dots,a_p)^\top に対し、変数の線形結合

Y=a⊤X=a1X1+a2X2+⋯+apXpY=\mathbf a^\top\mathbf X=a_1X_1+a_2X_2+\dots+a_pX_p

という 1次元の確率変数 を作ります。これの分散を計算すると、Σ\Sigma の二次形式そのものになります。

Var(Y)=E ⁣[(Y−EY)2]=E ⁣[(a⊤(X−μ))2](∵ EY=a⊤μ)=E ⁣[a⊤(X−μ) (X−μ)⊤a](∵ c2=c c⊤ for scalar c)=a⊤ E ⁣[(X−μ)(X−μ)⊤]a(a は定数なので期待値の外へ)=a⊤Σ a\begin{aligned} \mathrm{Var}(Y) &=\mathbb E\!\left[(Y-\mathbb E Y)^2\right]\\ &=\mathbb E\!\left[\big(\mathbf a^\top(\mathbf X-\boldsymbol\mu)\big)^2\right] &&(\because\ \mathbb E Y=\mathbf a^\top\boldsymbol\mu)\\ &=\mathbb E\!\left[\mathbf a^\top(\mathbf X-\boldsymbol\mu)\,(\mathbf X-\boldsymbol\mu)^\top\mathbf a\right] &&(\because\ c^2=c\,c^\top\ \text{for scalar }c)\\ &=\mathbf a^\top\,\mathbb E\!\left[(\mathbf X-\boldsymbol\mu)(\mathbf X-\boldsymbol\mu)^\top\right]\mathbf a &&(\mathbf a\ \text{は定数なので期待値の外へ})\\ &=\mathbf a^\top\Sigma\,\mathbf a \end{aligned}

3行目で「スカラー c=a⊤(X−μ)c=\mathbf a^\top(\mathbf X-\boldsymbol\mu) は c2=c⋅c=c⋅c⊤c^2=c\cdot c=c\cdot c^\top」を使い、転置 (a⊤(X−μ))⊤=(X−μ)⊤a(\mathbf a^\top(\mathbf X-\boldsymbol\mu))^\top=(\mathbf X-\boldsymbol\mu)^\top\mathbf a を当てています。

4.2 分散は非負だから半正定値

分散は定義上いつでも非負(二乗の期待値)なので、

a⊤Σa=Var(a⊤X)≥0(∀ a)\mathbf a^\top\Sigma\mathbf a=\mathrm{Var}(\mathbf a^\top\mathbf X)\ge0\qquad(\forall\,\mathbf a)

これがすべての a\mathbf a で成り立つので、Σ\Sigma は 半正定値(positive semidefinite) です。要するに「どんな向きに変数を足し合わせても、その合成変数の分散は負になりえない」という当たり前の事実が、行列の言葉では半正定値性になる、ということです。

4.3 固有値が全て非負(PCAの前提)

Σ\Sigma は対称なのでスペクトル定理により実固有値を持ち、固有値 λ\lambda と単位固有ベクトル v\mathbf v(Σv=λv\Sigma\mathbf v=\lambda\mathbf v、v⊤v=1\mathbf v^\top\mathbf v=1)に対して

λ=λ v⊤v=v⊤(λv)=v⊤Σv≥0\lambda=\lambda\,\mathbf v^\top\mathbf v=\mathbf v^\top(\lambda\mathbf v)=\mathbf v^\top\Sigma\mathbf v\ge0

最後の不等号は 4.2 の半正定値性です。したがって

  Σ の固有値はすべて λ≥0  \boxed{\;\Sigma\ \text{の固有値はすべて}\ \lambda\ge0\;}

要するに「固有値 = その固有ベクトル方向の分散」なので、分散が非負である以上、固有値も非負です。この事実が主成分分析で「固有値=各主成分が説明する分散」と読める根拠になります(第6節)。


5. 線形変換の公式 Var(AX)=AΣA⊤\mathrm{Var}(A\mathbf X)=A\Sigma A^\top

5.1 公式

X\mathbf X を行列 AA(m×pm\times p)で線形変換した Y=AX\mathbf Y=A\mathbf X の分散共分散行列は、

  Var(AX)=A Σ A⊤  \boxed{\;\mathrm{Var}(A\mathbf X)=A\,\Sigma\,A^\top\;}

これは1変数の Var(aX)=a2Var(X)\mathrm{Var}(aX)=a^2\mathrm{Var}(X) の行列版です(a2a^2 が A(⋅)A⊤A(\cdot)A^\top に化ける)。

5.2 導出

Y=AX\mathbf Y=A\mathbf X の平均は E[Y]=Aμ\mathbb E[\mathbf Y]=A\boldsymbol\mu。定義に当てはめて、

Var(Y)=E ⁣[(Y−Aμ)(Y−Aμ)⊤]=E ⁣[(AX−Aμ)(AX−Aμ)⊤]=E ⁣[A(X−μ) (A(X−μ))⊤]=E ⁣[A(X−μ)(X−μ)⊤A⊤](∵ (AB)⊤=B⊤A⊤)=A E ⁣[(X−μ)(X−μ)⊤]A⊤(A は定数行列なので期待値の外へ)=A Σ A⊤\begin{aligned} \mathrm{Var}(\mathbf Y) &=\mathbb E\!\left[(\mathbf Y-A\boldsymbol\mu)(\mathbf Y-A\boldsymbol\mu)^\top\right]\\ &=\mathbb E\!\left[(A\mathbf X-A\boldsymbol\mu)(A\mathbf X-A\boldsymbol\mu)^\top\right]\\ &=\mathbb E\!\left[A(\mathbf X-\boldsymbol\mu)\,\big(A(\mathbf X-\boldsymbol\mu)\big)^\top\right]\\ &=\mathbb E\!\left[A(\mathbf X-\boldsymbol\mu)(\mathbf X-\boldsymbol\mu)^\top A^\top\right] &&(\because\ (AB)^\top=B^\top A^\top)\\ &=A\,\mathbb E\!\left[(\mathbf X-\boldsymbol\mu)(\mathbf X-\boldsymbol\mu)^\top\right]A^\top &&(A\ \text{は定数行列なので期待値の外へ})\\ &=A\,\Sigma\,A^\top \end{aligned}

4行目で転置の反転則 (Az)⊤=z⊤A⊤(A\mathbf z)^\top=\mathbf z^\top A^\top を使い、5行目で定数 A,A⊤A,A^\top を期待値の外に出しています。要するに「線形変換 AA は分散を A(⋅)A⊤A(\cdot)A^\top で挟むように作用する」ということです。

5.3 系:合成変数の分散・半正定値性の再確認

AA が1行(行ベクトル a⊤\mathbf a^\top)の特別な場合、Var(a⊤X)=a⊤Σa\mathrm{Var}(\mathbf a^\top\mathbf X)=\mathbf a^\top\Sigma\mathbf a となり、第4節の二次形式に一致します。半正定値性はこの公式の m=1m=1 の特別な姿だったわけです。

この公式は多変量正規分布で決定的に効きます。X∼N(μ,Σ)\mathbf X\sim\mathcal N(\boldsymbol\mu,\Sigma) なら AX∼N(Aμ, AΣA⊤)A\mathbf X\sim\mathcal N(A\boldsymbol\mu,\,A\Sigma A^\top) と、平均と共分散だけで変換後の分布が完全に決まります(多変量正規分布)。


6. 固有値分解の予告(主成分分析への橋渡し)

Σ\Sigma は 対称かつ半正定値 という、線形代数で最も扱いやすいクラスの行列です。スペクトル定理により、直交行列 V=(v1,…,vp)V=(\mathbf v_1,\dots,\mathbf v_p)(V⊤V=IV^\top V=I)と非負の固有値 λ1≥λ2≥⋯≥λp≥0\lambda_1\ge\lambda_2\ge\dots\ge\lambda_p\ge0 を使って

  Σ=VΛV⊤=∑k=1pλk vkvk⊤  Λ=diag(λ1,…,λp)\boxed{\;\Sigma=V\Lambda V^\top=\sum_{k=1}^{p}\lambda_k\,\mathbf v_k\mathbf v_k^\top\;} \qquad\Lambda=\mathrm{diag}(\lambda_1,\dots,\lambda_p)

と 直交対角化 できます。第5節の公式で A=V⊤A=V^\top と置くと、変換後の変数 Y=V⊤X\mathbf Y=V^\top\mathbf X の共分散行列は

Var(V⊤X)=V⊤ΣV=V⊤(VΛV⊤)V=Λ\mathrm{Var}(V^\top\mathbf X)=V^\top\Sigma V=V^\top(V\Lambda V^\top)V=\Lambda

つまり 対角行列 になります。要するに「固有ベクトル方向に座標を取り直すと、変数どうしの共分散がゼロ(無相関)になり、各方向の分散がちょうど固有値 λk\lambda_k になる」。

graph LR
  A["分散共分散行列 Σ<br/>(対称・半正定値)"] -->|固有値分解 Σ=VΛVᵀ| B["固有値 λ₁≥…≥λ_p≥0<br/>固有ベクトル v₁…v_p"]
  B -->|分散最大の方向| C["主成分分析<br/>06-02"]
  A -->|"D^(-1/2)で標準化"| R["相関行列 R"]
  R -->|相関行列ベースのPCA| C
  A -->|"Var(AX)=AΣAᵀ"| D["多変量正規分布<br/>06-08"]
  A -->|クラス間/内の分散構造| E["判別分析<br/>06-04"]

固有値が大きい方向ほど分散が大きい=情報が多い、という読み替えが主成分分析そのものです。詳細は 主成分分析(PCA) で扱います。Σ\Sigma は多変量正規分布 多変量正規分布 や判別分析 判別分析 でも共通の中心的な道具です。


⚠️ 引っかけポイント・頻出論点


よくある疑問(Q&A)

Q1. 「共分散行列」と「分散共分散行列」は違うものですか?

同じものです。対角に分散、非対角に共分散が入るので、両方の語を込めて「分散共分散行列」と呼ぶことが多いですが、英語の covariance matrix を直訳した「共分散行列」も同義です。準1級でどちらの表記が出ても同じ Σ\Sigma を指します。

Q2. 相関行列と「標準化したデータの共分散行列」が同じになるのはなぜですか?

標準化 Zi=(Xi−μi)/σiZ_i=(X_i-\mu_i)/\sigma_i は各変数を平均0・分散1にする操作です。分散が1になると、共分散の定義 Cov(Zi,Zj)\mathrm{Cov}(Z_i,Z_j) の分母にあたる正規化が済んでいるため、共分散がそのまま相関係数 ρij\rho_{ij} になります。式で言えば R=D−1/2ΣD−1/2R=D^{-1/2}\Sigma D^{-1/2} の D−1/2D^{-1/2} が、まさに「各変数を標準偏差で割る=標準化」の作用なので、先に標準化しても後で標準化しても同じ RR にたどり着きます。

Q3. 分散共分散行列はいつも逆行列を持ちますか(正定値ですか)?

いいえ。Σ\Sigma は半正定値(固有値 ≥0\ge0)であって、正定値(固有値 >0>0)とは限りません。変数間に完全な線形関係があると、その方向の分散が0になり固有値に0が現れ、Σ\Sigma は特異になって逆行列を持ちません。たとえば「合計=各項目の和」のように定義上従属な変数を一緒に入れると起こります。逆行列が必要な手法(マハラノビス距離・多変量正規の密度・判別分析)ではこの特異性が問題になるので、従属変数を除くか正則化します。

Q4. PCAをやるとき、共分散行列と相関行列のどちらを使えばよいですか?

変数のスケール(単位)がそろっているかで判断します。単位がバラバラ(例:年収[万円]と年齢[歳])だと、共分散行列ベースのPCAは値の大きい変数(年収)に第1主成分が支配され、ほぼその変数の方向になってしまいます。これを避けるには、各変数を標準化して相関行列ベースでPCAします。逆に同じ単位・同程度のスケール(例:同一試験の各科目得点)なら、分散の大小も意味があるので共分散行列ベースでよいことが多いです。要するに「スケールの差を情報とみなすか、ノイズとみなすか」で選びます(詳細は 主成分分析(PCA))。

Q5. なぜ二次形式 a⊤Σa\mathbf a^\top\Sigma\mathbf a が大事なのですか?

それが「変数を a\mathbf a という重みで合成した新しい変数 a⊤X\mathbf a^\top\mathbf X の分散」そのものだからです。半正定値性(分散は非負)も、線形変換の公式も、主成分分析(分散 a⊤Σa\mathbf a^\top\Sigma\mathbf a を ∥a∥=1\lVert\mathbf a\rVert=1 の制約で最大化する)も、すべてこの二次形式の読み替えです。Σ\Sigma という行列を「向き a\mathbf a を入れると、その方向の分散を返す装置」と捉えると、多変量解析の見通しが一気に良くなります。


まとめ


関連ノート