基底変換後の分散共分散行列

以下のような \(\bm{x}\) (m次元) から \(\bm{y}\) (r次元) への基底変換を考える.

\[\bm{y} = \bm{A}^T\bm{x} + \bm{b}\]

Wikipediaによれば

\[\mathrm{var}(\bm{y}) = \bm{A}^T\mathrm{var}(\bm{x})\bm{A}\]

らしい.

なんでも証明しないと気が済まない質なので証明してみました.単なる式展開ですが・・・
半年前からやろうと思っていたことなので,これでスッキリ♪

証明

とりあえず以下のようにベクトル・行列を定義します.

\(\bm{X} =[\bm{x}_1,\bm{x}_2,\cdots,\bm{x}_n]^T\) ← サンプル数nの n x m 行列

\(\displaystyle \bm{\mu}=\frac{1}{n}\sum^n_{i=1}\bm{x}_i\) ← xの平均値ベクトル

\(\bm{M}=[\bm{\mu},\bm{\mu},\cdots,\bm{\mu}]^T\) ← 平均値ベクトルを並べた n x m 行列

以下のように展開していきます.

\[\begin{eqnarray} \mathrm{var}(\bm{y}) &=& \mathrm{var}(\bm{A}^T\bm{x}+\bm{b})=\frac{1}{n-1}\displaystyle \sum^n_{i=1}\left(\bm{A}^T\bm{x}_i-\bm{A}^T\bm{\mu}\right)\left(\bm{A}^T\bm{x}_i-\bm{A}^T \bm{\mu}\right)^T\\ &=& \frac{1}{n-1}\left(\bm{X}\bm{A} - \bm{M}\bm{A}\right)^T \left(\bm{X} \bm{A} - \bm{M} \bm{A}\right) = \bm{A}^T\frac{1}{n-1}\left(\bm{X}-\bm{M}\right)^T\left(\bm{X}-\bm{M}\right)\bm{A}\\ &=& \bm{A}^T \mathrm{var}(\bm{x}) \bm{A} \hspace{10mm}\left(\mathrm{var}(\bm{x})_{ij} = \frac{1}{n-1}\sum_{k=1}^n (x_{ki}-\mu_{i})(x_{kj}-\mu_{j})\right) \end{eqnarray}\]

一応1行目の展開を補足すると以下のようになります.

\[E[\bm{A}^T \bm{x} + \bm{b}] = \frac{1}{n}\sum_{i=1}^n\bm{A}^T\bm{x}_i + \bm{b} =\bm{A}^T \frac{1}{n}\sum_{i=1}^n \bm{x}_i + \bm{b} = \bm{A}^T \bm\mu + \bm{b}\]

こっちの書き方のほうが見慣れている人もいるかもしれません.

\[\begin{eqnarray} \mathrm{var}(\bm{y}) &=& \frac{1}{n-1}\displaystyle\sum^n_{i=1}\left(\bm{A}^T\bm{x}_i-\bm{A}^T\bm{\mu}\right)\left(\bm{A}^T\bm{x}_i-\bm{A}^T\bm{\mu}\right)^T\\ &=& \bm{A}^T \frac{1}{n-1}\displaystyle\sum^n_{i=1}(\bm{x}_i-\bm{\mu})(\bm{x}_i-\bm{\mu})^T\bm{A} = \bm{A}^T E\left[(\bm{x}-\bm{\mu})(\bm{x}-\bm{\mu})^T\right]\bm{A}\\ &=& \bm{A}^T \mathrm{var}(\bm{x}) \bm{A} \end{eqnarray}\]

ところで,「情報検索アルゴリズム」では索引語・文書行列Dの分散共分散行列Sを算出する際に

\[\bm{S}=\frac{1}{n}(\bm{D}-\bm{M})(\bm{D}-\bm{M})^T\]

としていますが,Rでは分散共分散行列の算出に

\[\bm{S}=\frac{1}{n-1}\left(\bm{X}-\bm{M}\right)^T\left(\bm{X}-\bm{M}\right)\]

を採用しているようなので,証明にもその書き方を採用しました.
多変量解析やパターン認識ではこっちの方がメジャーそうですし.
サンプルを行に並べるか列に並べるかの違いですけどね.あと標本分散か不偏分散か.