Open7

統計と行列

Hidden comment
畳屋民也畳屋民也

\boldsymbol{X}^\top \boldsymbol{X} で表される行列の階数

線形回帰では、計画行列 \boldsymbol{X} とその転置を掛け合わせた \boldsymbol{X}^\top \boldsymbol{X} の形の行列をよく目にする。
https://zenn.dev/tatamiya/scraps/69c02604543ae5

特にモデルを \boldsymbol{Y} = \boldsymbol{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon} と表したとき、最小二乗法によるパラメータ推定量は

\hat{\boldsymbol{\beta}} = \left( \boldsymbol{X}^\top \boldsymbol{X} \right)^{-1} \boldsymbol{X}^\top \boldsymbol{Y}

のように表され、このとき \boldsymbol{X}^\top \boldsymbol{X} に逆行列が存在するかを判断するうえで、行列\boldsymbol{X}^\top \boldsymbol{X} の階数(rank)が問題になる。

一般に行列 \boldsymbol{X} が与えられた時に、\boldsymbol{X}^\top \boldsymbol{X} の階数は \boldsymbol{X} の階数と一致することが知られている:

{\rm rank} \, (\boldsymbol{X}^\top \boldsymbol{X}) = {\rm rank}\boldsymbol{X}.

本投稿では、この関係式が成り立つことを示す。

準備1. そもそも行列の階数 (rank) とはなんだったか?

行列 \boldsymbol{A} \in \mathbb{R}^{m \times n} を、列ベクトル \{\boldsymbol{a}_i\}_{i=1}^n, \, \boldsymbol{a}_i \in \mathbb{R}^m を用いて以下のように表す:

\boldsymbol{A} = (\boldsymbol{a}_1, \boldsymbol{a}_2, ..., \boldsymbol{a}_n)

このとき、列ベクトル \{ \boldsymbol{a}_1, \boldsymbol{a}_2, ..., \boldsymbol{a}_n \} の張る空間を行列 \boldsymbol{A} の列ベクトル空間と呼び、\mathcal{C}(\boldsymbol{A}) と表す。

行列 \boldsymbol{A} の(列)階数は、列ベクトル空間 \mathcal{C}(\boldsymbol{A}) の次元として定義される:

{\rm rank} \boldsymbol{A} = {\rm dim} \, \mathcal{C}(\boldsymbol{A}).

準備2. 行列の核とその次元に関する性質

以下のように行列 \boldsymbol{A} \in \mathbb{R}^{m \times n} をかけると \boldsymbol{0} になるベクトル \boldsymbol{x} \in \mathbb{R}^n で張られる空間を、行列 \boldsymbol{A} の核と呼び {\rm Ker} \boldsymbol{A} と表す:

{\rm Ker} \boldsymbol{A} = \{ \boldsymbol{x}; \boldsymbol{A} \boldsymbol{x} = \boldsymbol{0}, \, \boldsymbol{x} \} \subset \mathbb{R}^n

このとき、行列 \boldsymbol{A} の階数と核 {\rm Ker} \boldsymbol{A} の次元との間に以下のような性質が成り立つ:

{\rm rank} \boldsymbol{A} = n - {\rm dim} \, {\rm Ker} \boldsymbol{A}. \tag{1}

これを示すために、転置行列 \boldsymbol{A}^\top \in \mathbb{R}^{n \times m} の列空間 \mathcal{C}(\boldsymbol{A}^\top) \subset \mathbb{R}^n とその直交補空間 \mathcal{C}(\boldsymbol{A}^\top)^\perp \subset \mathbb{R}^n を考える。

直交補空間 \mathcal{C}(\boldsymbol{A}^\top)^\perp とは、\mathcal{C}(\boldsymbol{A}^\top) に属するベクトルとの内積が0になるようなベクトルのなす空間であり、両者の次元の和はこれらを包含する空間 \mathbb{R}^n の次元 n と一致する:

{\rm dim} \, \mathcal{C}(\boldsymbol{A}^\top) + {\rm dim} \, \mathcal{C}(\boldsymbol{X}^\top)^\perp = n.

階数の定義より {\rm dim} \, \mathcal{C}(\boldsymbol{A}^\top) = {\rm rank}\boldsymbol{A}^\top であり、また転置しても行列の階数は変わらないこと {\rm rank}\boldsymbol{A}^\top = {\rm rank}\boldsymbol{A} (補足1参照)から、上記は以下のように書き換えられる:

{\rm rank}\boldsymbol{A} + {\rm dim} \, \mathcal{C}(\boldsymbol{X}^\top)^\perp = n

さらにここで、

\mathcal{C}(\boldsymbol{A^\top})^\perp = {\rm Ker} \boldsymbol{A}

という関係が成り立つ(補足2)。これを用いると、

{\rm rank}\boldsymbol{A} + {\rm dim} \, {\rm Ker} \boldsymbol{A} = n

が成立し、式(1) が示される。

本論: \boldsymbol{X}^\top \boldsymbol{X}\boldsymbol{X} の階数が一致することの証明

以下、\boldsymbol{X}n \times p 行列とする(\boldsymbol{X} \in \mathbb{R}^{n \times p})。
\boldsymbol{X}^\top \boldsymbol{X}p \times p の正方行列である(\boldsymbol{X}^\top \boldsymbol{X} \in \mathbb{R}^{p \times p})。

このとき、前述の行列の階数と核の次元の間の関係式(1) により、

\begin{aligned} {\rm rank} \boldsymbol{X} &= p - {\rm dim} \, {\rm Ker} \boldsymbol{X}\\ {\rm rank} \, (\boldsymbol{X}^\top \boldsymbol{X}) &= p - {\rm dim} \, {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) \end{aligned}

が成り立つ。

ここでさらに以下の性質が成り立つ:

{\rm Ker} \boldsymbol{X} = {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}).

これを用いると、{\rm dim} \, {\rm Ker} \boldsymbol{X} = {\rm dim} {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) であるので、

{\rm rank} \, (\boldsymbol{X}^\top \boldsymbol{X}) = {\rm rank} \boldsymbol{X}

が成り立つ。

なお、{\rm Ker} \boldsymbol{X} = {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) は補足3にて示す。

補足

1. 行列 \boldsymbol{A} と転置行列 \boldsymbol{A}^\top の階数が等しいことの証明

転置行列(\boldsymbol{A}^\top)と元の行列(\boldsymbol{A}) は階数が等しい:

{\rm rank} \boldsymbol{A}^\top = {\rm rank} \boldsymbol{A}.

これを示すには、列ベクトル空間 \mathcal{C}(\boldsymbol{A}) と同様に、行列 \boldsymbol{A} を構成する行ベクトルの張る空間 \mathcal{R}(\boldsymbol{A}) (行ベクトル空間)を考える。

このとき、行列 \boldsymbol{A} の行ベクトル空間は、転置行列 \boldsymbol{A}^\top の列ベクトル空間と一致する(\mathcal{R}(\boldsymbol{A}) = \mathcal{C}(\boldsymbol{A}^\top))。

ここで、次元 {\rm dim} \, \mathcal{R}(\boldsymbol{A}) を行列 \boldsymbol{A} の行階数と定義すると、
列階数と行階数は一致するため、

{\rm rank} \boldsymbol{A}^\top = {\rm dim} \, \mathcal{C}(\boldsymbol{A}^\top) = {\rm dim} \, \mathcal{R}(\boldsymbol{A}) = {\rm dim} \, \mathcal{C}(\boldsymbol{A}) = {\rm rank} \boldsymbol{A}

が成り立つ。

列階数と行階数が一致することの証明は、参考文献に挙げた Harville(2006) の第4章 定理4.4.1を参照。

2. \mathcal{C}(\boldsymbol{A}^\top)^\perp = {\rm Ker} \boldsymbol{A} の証明

引き続き \boldsymbol{A} \in \mathbb{R}^{m \times n} とし、また、転置行列 \boldsymbol{A}^\top \in \mathbb{R}^{n \times m} を列ベクトル \boldsymbol{a}^{(\top)}_i \in \mathbb{R}^n を用いて

\boldsymbol{A}^\top = (\boldsymbol{a}^{(\top)}_1, \boldsymbol{a}^{(\top)}_2, ..., \boldsymbol{a}^{(\top)}_m)

と表すことにする。

(1° \mathcal{C}(\boldsymbol{A}^\top)^\perp \subseteq {\rm Ker} \boldsymbol{A}

\boldsymbol{x}_0 \in \mathcal{C}(\boldsymbol{A}^\top)^\perp とする。

ここで、列ベクトル空間 \mathcal{C}(\boldsymbol{A}^\top) の定義より、
任意のベクトル \boldsymbol{y} = (y_1, y_2, ..., y_m)^\top \in \mathbb{R}^m に対して、

\boldsymbol{A}^\top \boldsymbol{y} = \boldsymbol{a}^{(\top)}_1 y_1 + \boldsymbol{a}^{(\top)}_2 y_2 + ... \boldsymbol{a}^{(\top)}_m y_m \in \mathcal{C}(\boldsymbol{A}^\top)

が成り立つので、直交補空間 \mathcal{C}(\boldsymbol{A}^\top)^\perp の定義から

\boldsymbol{x}_0^\top \boldsymbol{A}^\top \boldsymbol{y} = 0

が成り立つ。
\boldsymbol{x}_0^\top \boldsymbol{A}^\top \boldsymbol{y} = (\boldsymbol{A} \boldsymbol{x}_0)^\top \boldsymbol{y} と表すことができるので、これは (\boldsymbol{A} \boldsymbol{x}_0)^\top \boldsymbol{y} = 0 がいかなる \boldsymbol{y}\in\mathbb{R}^m においても成り立たなくてはいけないことを意味する。

これを満たすのは

\boldsymbol{A} \boldsymbol{x}_0 = \boldsymbol{0}

が成り立つ時に限るので、従って核の定義から \boldsymbol{x}_0 \in {\rm Ker} \boldsymbol{A}

以上から、\boldsymbol{x}_0 \in \mathcal{C}(\boldsymbol{A}^\top)^\perp \Rightarrow \boldsymbol{x}_0 \in {\rm Ker} \boldsymbol{A} であるので、

\mathcal{C}(\boldsymbol{A}^\top)^\perp \subseteq {\rm Ker} \boldsymbol{A}

が成り立つ。

(2° {\rm Ker} \boldsymbol{A} \subseteq \mathcal{C}(\boldsymbol{A}^\top)^\perp

\boldsymbol{x}_0 \in {\rm Ker} \boldsymbol{A} とする。この時定義より、

\boldsymbol{A} \boldsymbol{x}_0 = \boldsymbol{0}

である。

ここで、列ベクトル空間 \mathcal{C}(\boldsymbol{A}^\top) に属する任意のベクトル \boldsymbol{x}_a を考える。

このとき先ほどと同様の考え方から、\boldsymbol{x}_a = \boldsymbol{A}^\top \boldsymbol{y} と表せるベクトル \boldsymbol{y} = (y_1, y_2, ..., y_m)^\top \in \mathbb{R}^m が必ず存在する。

すると \boldsymbol{x}_0\boldsymbol{x}_a の内積は以下のように常に0になる:

\boldsymbol{x}_0^\top \boldsymbol{x}_a = \boldsymbol{x}_0^\top \boldsymbol{A}^\top \boldsymbol{y} = (\boldsymbol{A} \boldsymbol{x}_0)^\top \boldsymbol{y} = \boldsymbol{0}^\top \boldsymbol{y} = 0.

従って、\boldsymbol{x}_0 \in {\rm Ker} \boldsymbol{A} は任意のベクトル \boldsymbol{x}_a \in \mathcal{C}(\boldsymbol{A}^\top) と直交するので、定義より \boldsymbol{x}_0 \in \mathcal{C}(\boldsymbol{A}^\top)^\perp でなくてはならない。

以上から、

{\rm Ker} \boldsymbol{A} \subseteq \mathcal{C}(\boldsymbol{A}^\top)^\perp.

1°,2° を合わせて、

\mathcal{C}(\boldsymbol{A}^\top)^\perp = {\rm Ker} \boldsymbol{A}

が成り立つことが示された。

3. {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) = {\rm Ker} \boldsymbol{X} の証明

(1° {\rm Ker} \boldsymbol{X} \subseteq {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X})

\boldsymbol{x}_0 \in {\rm Ker} \boldsymbol{X} とすると、定義より

\boldsymbol{X} \boldsymbol{x}_0 = \boldsymbol{0}

が成り立つ。
このとき左から \boldsymbol{X}^\top をかけることで

\boldsymbol{X}^\top \boldsymbol{X} \boldsymbol{x}_0 = \boldsymbol{0}

も成り立つことから、\boldsymbol{x}_0 \in {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) も同時に成立していることがわかる。

従って、{\rm Ker} \boldsymbol{X} \subseteq {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) である。

(2° {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) \subseteq {\rm Ker} \boldsymbol{X}

同様に \boldsymbol{x}_0 \in {\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) とすると、定義より

\boldsymbol{X}^\top \boldsymbol{X} \boldsymbol{x}_0 = \boldsymbol{0}

となる。
ここに左から \boldsymbol{x}_0^\top をかけることで、

\boldsymbol{x}_0^\top \boldsymbol{X}^\top \boldsymbol{X} \boldsymbol{x}_0 = 0

となる。
\boldsymbol{x}_0^\top \boldsymbol{X}^\top \boldsymbol{X} \boldsymbol{x}_0 = \left( \boldsymbol{X} \boldsymbol{x}_0 \right)^2 であるので、従って

\boldsymbol{X} \boldsymbol{x}_0 = \boldsymbol{0}

も同時に成り立っていなくてはいけないことがわかる。

従って、{\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) \subseteq {\rm Ker} \boldsymbol{X}.

以上 1°, 2° をあわせて、{\rm Ker} (\boldsymbol{X}^\top \boldsymbol{X}) = {\rm Ker} \boldsymbol{X} であることが示された。

参考文献

  • 永田 靖、統計学のための数学入門30講(2005、朝倉書店)

https://amzn.asia/d/4GenSWZ

  • D. A. Harville, Matrix Algebra From a Statistician's Perspective (2006, Springer)
    • 日本語訳: D. A. ハーヴィル(伊理正夫監訳)、統計のための行列代数 上(丸善、2012)

https://amzn.asia/d/eFLLrNg
https://amzn.asia/d/h5awcqR

Hidden comment
畳屋民也畳屋民也

Moore-Penrose の逆行列について成り立つ極限の関係式

A \in \mathbb{R}^{m \times n}m \times n 行列とする。
このとき、A^\top A, AA^\top に逆行列が存在するか関係なく以下の関係式が成り立つ:

\lim_{\delta \to 0}(A^\top A + \delta^2 I_n)^{-1} A^\top = \lim_{\delta \to 0}A^\top (AA^\top + \delta^2 I_m)^{-1} = A^+ \tag{1}

なお、A^+ は Moore-Penrose の逆行列である:

https://zenn.dev/link/comments/55b4e93894792a

以降、n \times n の単位行列を I_n のように表す。

証明

まずは \lim_{\delta \to 0}(A^\top A + \delta^2 I_n)^{-1} A^\top = A^+ から示す。

行列 A の階数を r{\rm rank}A = r)としたとき、特異値分解により A を以下のように表すことができる:

https://zenn.dev/link/comments/a5727c38a6fb31

A = U \Sigma V^\top

ただし、

U \in \mathbb{R}^{m \times r}, \quad U^\top U = I_r,\\ V \in \mathbb{R}^{n \times r}, \quad V^\top V = I_r,\\ \Sigma = {\rm diag}\left( \sqrt{\lambda_1}, \sqrt{\lambda_2}, ..., \sqrt{\lambda_r}\right) \in \mathbb{R}^{r \times r}.

これを用いると、

\begin{aligned} (A^\top A + \delta^2 I_n)^{-1} A^\top &= (V \Sigma^\top U^\top U \Sigma V^\top + \delta^2 I_n)^{-1} V \Sigma^\top U^\top\\ &= (V \Sigma^2 V^\top + \delta^2 I_n)^{-1} V \Sigma U^\top. \\ &\quad (\because U^\top U = I_r, \, \Sigma^\top = \Sigma) \tag{2} \end{aligned}

ここで、

\begin{aligned} (V \Sigma^2 V^\top + \delta^2 I_n) V &= V \Sigma^2 V^\top V + \delta^2 V\\ &= V \Sigma^2 I_r + \delta^2 V I_r \qquad (\because V^\top V = I_r)\\ &= V(\Sigma^2 + \delta^2 I_r) \end{aligned}

が成り立つ。
さらに (V \Sigma^2 V^\top + \delta^2 I_n)(\Sigma^2 + \delta^2 I_r) はともに非特異で逆行列を持つので(補足参照)、上記の式の両辺に左から (V \Sigma^2 V^\top + \delta^2 I_n)^{-1}、右から (\Sigma^2 + \delta^2 I_r)^{-1} をかけることで、

(V \Sigma^2 V^\top + \delta^2 I_n)^{-1} V = V(\Sigma^2 + \delta^2 I_r)^{-1}

が成り立つ。これを式(2) に代入すると、

(A^\top A + \delta^2 I_n)^{-1} A^\top = V(\Sigma^2 + \delta^2 I_r)^{-1} \Sigma U^\top

のようになる。
ここで

\lim_{\delta \to 0} V(\Sigma^2 + \delta^2 I_r)^{-1} \Sigma U^\top = V \Sigma^{-1} U^\top = A^+

となるので、確かに

\lim_{\delta \to 0} (A^\top A + \delta^2 I_n)^{-1} A^\top = A^+

が言えた。

次に \lim_{\delta \to 0}A^\top (AA^\top + \delta^2 I_m)^{-1} = A^+ を示すが、そのためには

(A^\top A + \delta^2 I_n)^{-1} A^\top = A^\top (AA^\top + \delta^2 I_m)^{-1} \tag{3}

が言えれば良い。そのためにまず以下の等式にまず着目する:

\begin{aligned} (A^\top A + \delta^2 I_n) A^\top &= A^\top A A^\top + \delta^2 A^\top\\ &= A^\top (AA^\top + \delta^2 I_m). \end{aligned}

さらに、(A^\top A + \delta^2 I_n)(AA^\top + \delta^2 I_m) はともに非特異で逆行列を持つので、先ほどと同様に上記の式の両辺に左から (A^\top A + \delta^2 I_n)^{-1} を、右から (AA^\top + \delta^2 I_m)^{-1} をかけることで、確かに式(3)が得られる。

以上により、式(1) が示された。

補足

本文中で以下の性質に触れた:

  • (A^\top A + \delta^2 I_n), \, (AA^\top + \delta^2 I_m)\delta >0 にて非特異
  • (V \Sigma^2 V^\top + \delta^2 I_n)\delta >0 にて非特異

これを示すために、まず非負定値行列・正定値行列について説明する。

準備: 非負定値行列・正定値行列とその性質

n \times n の正方行列 A \in \mathbb{R}^{n \times n} が以下の性質を持つ時、A は非負定値行列という:

任意のn 次元ベクトル \boldsymbol{x} \in \mathbb{R}^n において、

\boldsymbol{x}^\top A \boldsymbol{x} \ge 0

が成り立つ。

特に、上記で等号が成立するのが \boldsymbol{x} = \boldsymbol{0} の時に限られる場合、正定値行列と呼ぶ。

非負定値行列・正定値行列について、以下の2つの性質が成り立つ:

1. 正定値行列は非特異である

A \in \mathbb{R}^{n \times n} が正定値行列とする。このとき {\rm rank} A = n を示せばよい。

定義より、

\boldsymbol{x}^\top A \boldsymbol{x} > 0 \quad \forall \boldsymbol{x} \ne \boldsymbol{0}

である。

ここで A が非特異で {\rm rank} A < n であると仮定する。
するとA を構成する列ベクトルが一次従属になるので、

A \boldsymbol{v} = \boldsymbol{0}

となるベクトル \boldsymbol{v} \ne \boldsymbol{0} が存在しなくてはいけない。すると、

\boldsymbol{v}^\top A \boldsymbol{v} = 0

となるので A が正定値行列であることに矛盾する。

以上から、A が正定値行列なら full-rank、つまり非特異でなくてはいけない。

2. 非負定値行列 + 正定値行列 = 正定値行列 になる

A を正定値行列、B を非負定値行列と置く。つまり、

\boldsymbol{x}^\top A \boldsymbol{x} > 0 \quad \forall \boldsymbol{x} \ne \boldsymbol{0}
\boldsymbol{x}^\top B \boldsymbol{x} \ge 0 \quad \forall \boldsymbol{x} \ne \boldsymbol{0}

したがって、

\boldsymbol{x}^\top (A + B) \boldsymbol{x} > 0 \quad \forall \boldsymbol{x} \ne \boldsymbol{0}

が成り立つので、A + B は確かに正定値行列である。

証明

(A^\top A + \delta^2 I_n), \, (AA^\top + \delta^2 I_m)\delta >0 にて非特異であることの証明

(A^\top A + \delta^2 I_n) が正定値行列であることを示せばよい。

まず、\delta^2 I_n\delta >0 のとき正定値行列である。
このことは、\boldsymbol{x} \in \mathbb{R}^{n} を用いて

\boldsymbol{x}^\top (\delta^2 I_n) \boldsymbol{x} = \delta^2 \sum_{i=1}^n x_i^2 \ge 0

が成立し、かつ \delta > 0 であれば等号成立が x_1 = x_2 = ... = x_n=0 つまり \boldsymbol{x} = \boldsymbol{0} の時に限ることからわかる。

次に、A^\top A は非負定値行列である。これは、

\begin{aligned} \boldsymbol{x}^\top A^\top A \boldsymbol{x} &= (A\boldsymbol{x})^\top (A\boldsymbol{x}) \\ &= || A\boldsymbol{x} ||^2 \ge 0 \end{aligned}

からわかる。

以上から、先ほど示したように「非負定値行列 + 正定値行列 = 正定値行列」なので、(A^\top A + \delta^2 I_n) が正定値行列であることがわかった。

従って、(A^\top A + \delta^2 I_n) は非特異である。

以上と同様にして、(AA^\top + \delta^2 I_m)\delta >0 で正定値行列となり非特異であることも証明できる。

(V \Sigma^2 V^\top + \delta^2 I_n)\delta >0 にて非特異であることの証明

これも先ほどとほぼ同様に、V \Sigma^2 V^\top が非負定値行列であることがわかれば (V \Sigma^2 V^\top + \delta^2 I_n)\delta>0 で正定値行列となり、題意が示される。

V \Sigma^2 V^\top が非負定値行列であることは、\boldsymbol{x} \in \mathbb{R}^n とおくと

\begin{aligned} \boldsymbol{x}^\top V \Sigma^2 V^\top \boldsymbol{x} &= \boldsymbol{x}^\top (V^\top)^\top \Sigma \Sigma V^\top \boldsymbol{x}\\ &= (\Sigma V^\top \boldsymbol{x})^\top (\Sigma V^\top \boldsymbol{x})\\ &= || \Sigma V^\top \boldsymbol{x} ||^2 \ge 0 \end{aligned}

であることから示すことができる。

以上で、(V \Sigma^2 V^\top + \delta^2 I_n)\delta >0 にて非特異であることも示された。

参考文献

  • D. A. Harville, Matrix Algebra From a Statistician's Perspective (2006, Springer)
    • 日本語訳: D. A. ハーヴィル(伊理正夫監訳)、統計のための行列代数 上・下(丸善、2012)

https://amzn.asia/d/eFLLrNg

https://amzn.asia/d/h5awcqR

https://amzn.asia/d/fRgKunk

畳屋民也畳屋民也

ブロック化した行列の逆行列

n \times n の正方行列 \boldsymbol{A} \in \mathbb{R}^{n\times n} が、行列 \boldsymbol{T} \in \mathbb{R}^{n_1\times n_1}, \, \boldsymbol{U} \in \mathbb{R}^{n_1\times n_2}, \, \boldsymbol{V} \in \mathbb{R}^{n_2\times n_1}, \, \boldsymbol{W} \in \mathbb{R}^{n_2\times n_2} (ただし n_1 + n_2 = n)を用いて以下のように表すことができたとする。

\boldsymbol{A} = \begin{pmatrix} \boldsymbol{T} & \boldsymbol{U}\\ \boldsymbol{V} & \boldsymbol{W} \end{pmatrix}

この時、\boldsymbol{A} が逆行列を持つための条件は \boldsymbol{T}\boldsymbol{Q} = \boldsymbol{W} - \boldsymbol{V} \boldsymbol{T}^{-1} \boldsymbol{U} が逆行列を持つことであり、さらにこのとき

\boldsymbol{A}^{-1} = \begin{pmatrix} \boldsymbol{T}^{-1} + \boldsymbol{T}^{-1} \boldsymbol{U} \boldsymbol{Q}^{-1} \boldsymbol{V} \boldsymbol{T}^{-1} & - \boldsymbol{T}^{-1}\boldsymbol{U}\boldsymbol{Q}^{-1}\\ - \boldsymbol{Q}^{-1} \boldsymbol{V} \boldsymbol{T}^{-1} & \boldsymbol{Q}^{-1} \tag{1} \end{pmatrix}

と表すことができる。

発見的導出

以降では、\boldsymbol{I}_mm \times m の単位行列とする。

大まかには以下の手順で \boldsymbol{A} の逆行列を求める:

  1. 行列 \boldsymbol{A} を以下のようにブロック化した三角行列の積の形で表す
\boldsymbol{A} = \begin{pmatrix} \boldsymbol{L}_1 & \boldsymbol{0}\\ \boldsymbol{L}_2 & \boldsymbol{L}_3 \end{pmatrix} \begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{L}_4\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix} \tag{2}
  1. 以下の関係式を用いて、式(2)の逆行列を求める
\boldsymbol{A}^{-1} = \begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{L}_4\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix}^{-1} \begin{pmatrix} \boldsymbol{L}_1 & \boldsymbol{0}\\ \boldsymbol{L}_2 & \boldsymbol{L}_3 \end{pmatrix}^{-1}
\begin{pmatrix} \boldsymbol{L}_1 & \boldsymbol{0}\\ \boldsymbol{L}_2 & \boldsymbol{L}_3 \end{pmatrix}^{-1} = \begin{pmatrix} \boldsymbol{L}_1^{-1} & \boldsymbol{0}\\ - \boldsymbol{L}_3^{-1} \boldsymbol{L}_2 \boldsymbol{L}_1^{-1} & \boldsymbol{L}_3^{-1} \tag{3} \end{pmatrix}
\begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{L}_4\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix}^{-1} = \begin{pmatrix} \boldsymbol{I}_{n_1} & -\boldsymbol{L}_4\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \tag{4} \end{pmatrix}

1. 行列 \boldsymbol{A} をブロック化した三角行列の積の形で表す

\boldsymbol{A} を式(2) の形で表したとすると、\boldsymbol{L}_1, \, \boldsymbol{L}_2, \, \boldsymbol{L}_3, \, \boldsymbol{L}_4\boldsymbol{T}, \, \boldsymbol{U}, \, \boldsymbol{V}, \, \boldsymbol{W} と以下のような関係にある:

\begin{pmatrix} \boldsymbol{T} & \boldsymbol{U}\\ \boldsymbol{V} & \boldsymbol{W} \end{pmatrix} = \begin{pmatrix} \boldsymbol{L}_1 & \boldsymbol{L}_1 \boldsymbol{L}_4\\ \boldsymbol{L}_2 & \boldsymbol{L}_2 \boldsymbol{L}_4 + \boldsymbol{L}_3 \end{pmatrix}

これを整理して、

\begin{aligned} \boldsymbol{L}_1 &= \boldsymbol{T}\\ \boldsymbol{L}_2 &= \boldsymbol{V}\\ \boldsymbol{L}_3 &= \boldsymbol{W} - \boldsymbol{V}\boldsymbol{T}^{-1} \boldsymbol{U}\\ \boldsymbol{L}_4 &= \boldsymbol{T}^{-1} \boldsymbol{U} \end{aligned}

つまり、

\boldsymbol{A} = \begin{pmatrix} \boldsymbol{T} & \boldsymbol{0}\\ \boldsymbol{V} & \boldsymbol{W} - \boldsymbol{V}\boldsymbol{T}^{-1} \boldsymbol{U} \end{pmatrix} \begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{T}^{-1} \boldsymbol{U}\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix} \tag{5}

のように表すことができる。

2. 式(3), (4) を用いて \boldsymbol{A} の逆行列を求める

先ほどの結果をもとに、

\boldsymbol{A}^{-1} = \begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{T}^{-1} \boldsymbol{U}\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix}^{-1} \begin{pmatrix} \boldsymbol{T} & \boldsymbol{0}\\ \boldsymbol{V} & \boldsymbol{Q} \end{pmatrix}^{-1}

と表せる(ただし \boldsymbol{Q} = \boldsymbol{W} - \boldsymbol{V}\boldsymbol{T}^{-1} \boldsymbol{U})。

ここで、式(3), (4) を用いると、

\begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{T}^{-1} \boldsymbol{U}\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix}^{-1} = \begin{pmatrix} \boldsymbol{I}_{n_1} & -\boldsymbol{T}^{-1} \boldsymbol{U}\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix}
\begin{pmatrix} \boldsymbol{T} & \boldsymbol{0}\\ \boldsymbol{V} & \boldsymbol{Q} \end{pmatrix}^{-1} = \begin{pmatrix} \boldsymbol{T}^{-1} & \boldsymbol{0}\\ -\boldsymbol{Q}^{-1}\boldsymbol{V}\boldsymbol{T}^{-1} & \boldsymbol{Q}^{-1} \end{pmatrix}

となることから、これらを代入し、

\boldsymbol{A}^{-1} = \begin{pmatrix} \boldsymbol{T}^{-1} + \boldsymbol{T}^{-1} \boldsymbol{U} \boldsymbol{Q}^{-1} \boldsymbol{V} \boldsymbol{T}^{-1} & - \boldsymbol{T}^{-1}\boldsymbol{U}\boldsymbol{Q}^{-1}\\ - \boldsymbol{Q}^{-1} \boldsymbol{V} \boldsymbol{T}^{-1} & \boldsymbol{Q}^{-1} \tag{1} \end{pmatrix}

が得られる。

補足

シューア補行列

行列 \boldsymbol{Q} = \boldsymbol{W} - \boldsymbol{V} \boldsymbol{T}^{-1} \boldsymbol{U} は、行列 \boldsymbol{A}\boldsymbol{T} に対する シューア補行列 (Schur complement) と呼ばれる。

式(5) の変形

以下のように表すこともできる:

\boldsymbol{A} = \begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{0}\\ \boldsymbol{V}\boldsymbol{T}^{-1} & \boldsymbol{I}_{n_2} \end{pmatrix} \begin{pmatrix} \boldsymbol{T} & \boldsymbol{0}\\ \boldsymbol{0} & \boldsymbol{W} - \boldsymbol{V}\boldsymbol{T}^{-1} \boldsymbol{U} \end{pmatrix} \begin{pmatrix} \boldsymbol{I}_{n_1} & \boldsymbol{T}^{-1} \boldsymbol{U}\\ \boldsymbol{0} & \boldsymbol{I}_{n_2} \end{pmatrix}.

参考文献

  • D. A. Harville, Matrix Algebra From a Statistician's Perspective (2006, Springer)
    • 日本語訳: D. A. ハーヴィル(伊理正夫監訳)、統計のための行列代数 上(丸善、2012)

https://amzn.asia/d/eFLLrNg

https://amzn.asia/d/h5awcqR

畳屋民也畳屋民也

適合度検定の式の導出時に現れる分散共分散行列を対角化する

K 次元の確率変数ベクトル \boldsymbol{f} = (f_1, f_2, ..., f_K)^\top が多項分布 {\rm Mn}(N, \boldsymbol{p}) に従っているものとする:

P(\boldsymbol{f}) = \frac{N!}{f_1! f_2! \cdot ... \cdot f_K !} p_1^{f_1} p_2^{f_2} \cdot ... \cdot p_K^{f_K}

ただし N は合計度数 N = \sum_{i=1}^K f_i である。
また、\boldsymbol{p} = (p_1, p_2, ..., p_K)^\top はサンプルが各カテゴリに含まれる確率の理論値であり、\sum_{i=1}^K p_i = 1 \quad (0 \le p_i \le 1) である。

ここで、以下のように \boldsymbol{z} を置く:

\boldsymbol{z} = \left( \frac{f_1 - Np_1}{\sqrt{Np_1}}, \frac{f_2 - Np_2}{\sqrt{Np_2}},..., \frac{f_K - Np_K}{\sqrt{Np_K}} \right)^\top,

このとき \boldsymbol{z} の分散共分散行列 V[\boldsymbol{z}] = \boldsymbol{\Sigma} は、以下のように表される:

\Sigma_{ij} = \begin{cases} 1 - p_i \quad &i=j\\ -\sqrt{p_i p_j} \quad &i\ne j \end{cases} \qquad (i, j = 1, 2, ..., K)

以下、直交行列 \boldsymbol{U} を用いて \boldsymbol{\Sigma} を以下のように対角化できることを示す:

\begin{aligned} \boldsymbol{U}^\top \boldsymbol{\Sigma} \boldsymbol{U} = \begin{pmatrix} \boldsymbol{I}_{K-1} & \boldsymbol{0}\\ \boldsymbol{0} & 0 \end{pmatrix} \tag{1} \end{aligned}

導出

K \times K 直交行列 \boldsymbol{U} = (\boldsymbol{u}_1, \boldsymbol{u}_2, ..., \boldsymbol{u}_K) を考える。
ただし、K 列目の成分は以下のようになっているものとする:

\boldsymbol{u}_K = (\sqrt{p_1}, \sqrt{p_2}, ..., \sqrt{p_K})^\top.

まず、 \boldsymbol{\Sigma} \boldsymbol{U} = (\boldsymbol{u}_1, \boldsymbol{u}_2, ..., \boldsymbol{u}_{K-1}, \boldsymbol{0}) であることを示す。

\begin{aligned} \boldsymbol{\Sigma} \boldsymbol{U} &= \begin{pmatrix} 1-p_1 & -\sqrt{p_1 p_2} & \cdots & -\sqrt{p_1 p_K}\\ -\sqrt{p_2 p_1} & 1 - p_2 & \cdots & -\sqrt{p_2 p_K}\\ \vdots & \vdots & \cdots & \vdots\\ -\sqrt{p_K p_1} & -\sqrt{p_K p_2} & \cdots & 1 - p_K \end{pmatrix} (\boldsymbol{u}_1, \boldsymbol{u}_2, ..., \boldsymbol{u}_{K-1}, \boldsymbol{u}_K) \end{aligned}

と書き下せるが、ここで K 列目の成分は

\begin{aligned} \boldsymbol{\Sigma} \boldsymbol{u}_K &= \begin{pmatrix} 1-p_1 & -\sqrt{p_1 p_2} & \cdots & -\sqrt{p_1 p_K}\\ -\sqrt{p_2 p_1} & 1 - p_2 & \cdots & -\sqrt{p_2 p_K}\\ \vdots & \vdots & \cdots & \vdots\\ -\sqrt{p_K p_1} & -\sqrt{p_K p_2} & \cdots & 1 - p_K \end{pmatrix} \begin{pmatrix} \sqrt{p_1}\\ \sqrt{p_2}\\ \vdots\\ \sqrt{p_K} \end{pmatrix} &= \boldsymbol{0} \end{aligned}

である。
他の列についても、\boldsymbol{u}_j = (u_{1j}, u_{2j}, ..., u_{Kj})^\top と置いて直交条件 \boldsymbol{u}_i^\top \boldsymbol{u}_j = \delta_{ij} に気をつけつつ計算すると、

\begin{aligned} (\boldsymbol{\Sigma}\boldsymbol{u}_j)_i &= -\sqrt{p_i p_1} u_{1j} - \sqrt{p_i p_2} u_{2j} - ... + (1 - p_i) u_{ij} - ... - \sqrt{p_i p_K}\\ &= (1 - p_i) u_{ij} - \sqrt{p_i} (\sqrt{p_1} u_{1j} + \sqrt{p_1} u_{2j} + ...\\ &\qquad \qquad ... + \sqrt{p_{i-1}} u_{i-1,j} + \sqrt{p_{i+1}} u_{i+1,j} + ... + \sqrt{p_K} u_{Kj})\\ &= (1- p_i) u_{ij} - \sqrt{p_i} (\sqrt{p_1} u_{1j} + ... + \sqrt{p_K}u_{Kj} - \sqrt{p_i} u_{ij})\\ &= (1 - p_i) u_{ij} - \sqrt{p_i} (-\sqrt{p_i} u_{ij}) \qquad \because \boldsymbol{u}_K^\top \boldsymbol{u}_j = 0\\ &= u_{ij} \end{aligned}

となり \boldsymbol{\Sigma}\boldsymbol{u}_j = \boldsymbol{u}_j が言える。
したがって \boldsymbol{\Sigma} \boldsymbol{U} = (\boldsymbol{u}_1, \boldsymbol{u}_2, ..., \boldsymbol{u}_{K-1}, \boldsymbol{0}) が成り立つ。

最後に再び直交条件に注意しつつ \boldsymbol{U}^\top \boldsymbol{\Sigma} \boldsymbol{U} を計算すると、

\begin{aligned} \boldsymbol{U}^\top \boldsymbol{\Sigma} \boldsymbol{U} &= \begin{pmatrix} \boldsymbol{u}_1^\top\\ \boldsymbol{u}_2^\top\\ \vdots\\ \boldsymbol{u}_{K-1}^\top\\ \boldsymbol{u}_K^\top\\ \end{pmatrix} (\boldsymbol{u}_1, \boldsymbol{u}_2, ..., \boldsymbol{u}_{K-1}, \boldsymbol{0})\\ &= \begin{pmatrix} \boldsymbol{I}_{K-1} & \boldsymbol{0}\\ \boldsymbol{0} & 0 \end{pmatrix} \end{aligned}

となり、式(1)が示された。

畳屋民也畳屋民也

冪等な行列の性質

対称な正方行列 \boldsymbol{A} が冪等(べきとう)とは、以下の性質を持つことである:

\boldsymbol{A}^2 = \boldsymbol{A}.

自明な例を挙げると、単位行列 \boldsymbol{I}\boldsymbol{I}^2 = \boldsymbol{I} より冪等である。

冪等な行列では、以下の性質が成り立つ:

  • 行列 \boldsymbol{A} が冪等であることと固有値が全て0 or 1であることは同値
  • 冪等な行列の trace は rank と一致する({\rm tr}\, \boldsymbol{A} = {\rm rank}\,\boldsymbol{A}

冪等行列と固有値の必要十分条件

以下、「行列 \boldsymbol{A} が冪等」 \Leftrightarrow「行列 \boldsymbol{A} の固有値が全て0 or 1」を示す。

\Leftarrow の証明)

「行列 \boldsymbol{A} の固有値が全て0 or 1」のとき、\boldsymbol{A} は直交行列 \boldsymbol{U} を用いて以下のように固有値分解できる:

\boldsymbol{A} = \boldsymbol{U} \boldsymbol{\Lambda} \boldsymbol{U}^\top.

ただし、\Lambda は対角成分が0か1の対角行列である。
このとき、

\begin{aligned} \boldsymbol{A}^2 &= \boldsymbol{U} \boldsymbol{\Lambda} \boldsymbol{U}^\top\boldsymbol{U} \boldsymbol{\Lambda} \boldsymbol{U}^\top\\ &=\boldsymbol{U} \boldsymbol{\Lambda}^2 \boldsymbol{U}^\top\\ &=\boldsymbol{U} \boldsymbol{\Lambda} \boldsymbol{U}^\top\\ &= \boldsymbol{A} \end{aligned}

となることから、「行列 \boldsymbol{A} が冪等」であることが示された。

\Rightarrow の証明)

「行列 \boldsymbol{A} が冪等」であるとする。

\boldsymbol{A} の固有値とそれに対応する固有ベクトルを \lambda_i, \, \boldsymbol{u}_i と置く:

\boldsymbol{A} \boldsymbol{u}_i = \lambda_i \boldsymbol{u}_i.

このとき、

\begin{aligned} \boldsymbol{A}^2 \boldsymbol{u}_i &= \boldsymbol{A} (\boldsymbol{A}\boldsymbol{u}_i)\\ &= \boldsymbol{A} (\lambda_i \boldsymbol{u}_i)\\ &= \lambda_i^2 \boldsymbol{u}_i \end{aligned}

であると同時に、冪等生の定義 \boldsymbol{A}^2 = \boldsymbol{A} より

\begin{aligned} \boldsymbol{A}^2 \boldsymbol{u}_i &= \boldsymbol{A}\boldsymbol{u}_i\\ &= \lambda_i \boldsymbol{u}_i \end{aligned}

も成り立たなくてはいけない。

したがって、\lambda_i^2 = \lambda_i となることから \lambda_i = 0 \,{\rm or}\, 1 となり、「行列 \boldsymbol{A} の固有値が全て0 or 1」が示された。

冪等な行列では rank と trace が一致することの証明

上記で見たように、行列 \boldsymbol{A} が冪等であればその固有値は全て0 or 1であり、以下のように直交行列 \boldsymbol{U} を用いて固有値分解できる:

\boldsymbol{A} = \boldsymbol{U} \boldsymbol{\Lambda} \boldsymbol{U}^\top.

ただし、\boldsymbol{\Lambda} は固有値を対角成分に持つ対角行列である。

したがってこのとき \boldsymbol{A} の trace は以下のように表される:

\begin{aligned} {\rm tr}\, \boldsymbol{A} &= {\rm tr}\, (\boldsymbol{U} \boldsymbol{\Lambda} \boldsymbol{U}^\top)\\ &= {\rm tr}\, (\boldsymbol{\Lambda} \boldsymbol{U} \boldsymbol{U}^\top)\\ &= {\rm tr}\, \boldsymbol{\Lambda}. \end{aligned}

ここで、\boldsymbol{A} の rank は固有値の non-zero 成分の数と一致することから、{\rm rank}\, \boldsymbol{A} = r と置くと \boldsymbol{\Lambda} は以下のように表される:

\boldsymbol{\Lambda} = {\rm diag}(\underbrace{1,1,...,1}_r,\underbrace{0,0,...,0}_{n-r}).

従って、

{\rm tr}\, \boldsymbol{A} =r = {\rm rank}\, \boldsymbol{A}

が成り立つ。

参考文献

  • 佐和隆光、回帰分析(新装版) (統計ライブラリー、朝倉書店、2020)

https://amzn.asia/d/2vsEmZ6