Zenn
Open7

統計と行列

Hidden comment
畳屋民也畳屋民也

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

さらにここで、

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

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

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

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

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

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

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

rankX=pdimKerXrank(XX)=pdimKer(XX) \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}

が成り立つ。

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

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

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

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

が成り立つ。

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

補足

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

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

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

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

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

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

rankA=dimC(A)=dimR(A)=dimC(A)=rankA {\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. C(A)=KerA\mathcal{C}(\boldsymbol{A}^\top)^\perp = {\rm Ker} \boldsymbol{A} の証明

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

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

と表すことにする。

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

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

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

Ay=a1()y1+a2()y2+...am()ymC(A) \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)

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

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

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

これを満たすのは

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

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

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

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

が成り立つ。

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

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

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

である。

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

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

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

x0xa=x0Ay=(Ax0)y=0y=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.

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

以上から、

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

1°,2° を合わせて、

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以上 1°, 2° をあわせて、Ker(XX)=KerX{\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 の逆行列について成り立つ極限の関係式

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

limδ0(AA+δ2In)1A=limδ0A(AA+δ2Im)1=A+(1) \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+A^+ は Moore-Penrose の逆行列である:

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

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

証明

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

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

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

A=UΣV A = U \Sigma V^\top

ただし、

URm×r,UU=Ir,VRn×r,VV=Ir,Σ=diag(λ1,λ2,...,λr)Rr×r. 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}.

これを用いると、

(AA+δ2In)1A=(VΣUUΣV+δ2In)1VΣU=(VΣ2V+δ2In)1VΣU.(UU=Ir,Σ=Σ)(2) \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}

ここで、

(VΣ2V+δ2In)V=VΣ2VV+δ2V=VΣ2Ir+δ2VIr(VV=Ir)=V(Σ2+δ2Ir) \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Σ2V+δ2In)(V \Sigma^2 V^\top + \delta^2 I_n)(Σ2+δ2Ir)(\Sigma^2 + \delta^2 I_r) はともに非特異で逆行列を持つので(補足参照)、上記の式の両辺に左から (VΣ2V+δ2In)1(V \Sigma^2 V^\top + \delta^2 I_n)^{-1}、右から (Σ2+δ2Ir)1(\Sigma^2 + \delta^2 I_r)^{-1} をかけることで、

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

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

(AA+δ2In)1A=V(Σ2+δ2Ir)1ΣU (A^\top A + \delta^2 I_n)^{-1} A^\top = V(\Sigma^2 + \delta^2 I_r)^{-1} \Sigma U^\top

のようになる。
ここで

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

となるので、確かに

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

が言えた。

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

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

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

(AA+δ2In)A=AAA+δ2A=A(AA+δ2Im). \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}

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

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

補足

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

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

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

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

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

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

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

が成り立つ。

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

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

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

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

定義より、

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

である。

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

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

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

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

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

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

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

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

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

したがって、

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

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

証明

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

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

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

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

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

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

xAAx=(Ax)(Ax)=Ax20 \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}

からわかる。

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

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

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

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

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

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

xVΣ2Vx=x(V)ΣΣVx=(ΣVx)(ΣVx)=ΣVx20 \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Σ2V+δ2In)(V \Sigma^2 V^\top + \delta^2 I_n)δ>0\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×nn \times n の正方行列 ARn×n\boldsymbol{A} \in \mathbb{R}^{n\times n} が、行列 TRn1×n1,URn1×n2,VRn2×n1,WRn2×n2\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} (ただし n1+n2=nn_1 + n_2 = n)を用いて以下のように表すことができたとする。

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

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

A1=(T1+T1UQ1VT1T1UQ1Q1VT1Q1)(1) \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}

と表すことができる。

発見的導出

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

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

  1. 行列 A\boldsymbol{A} を以下のようにブロック化した三角行列の積の形で表す
A=(L10L2L3)(In1L40In2)(2) \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)の逆行列を求める
A1=(In1L40In2)1(L10L2L3)1 \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}
(L10L2L3)1=(L110L31L2L11L31)(3) \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}
(In1L40In2)1=(In1L40In2)(4) \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. 行列 A\boldsymbol{A} をブロック化した三角行列の積の形で表す

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

(TUVW)=(L1L1L4L2L2L4+L3) \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}

これを整理して、

L1=TL2=VL3=WVT1UL4=T1U \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}

つまり、

A=(T0VWVT1U)(In1T1U0In2)(5) \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) を用いて A\boldsymbol{A} の逆行列を求める

先ほどの結果をもとに、

A1=(In1T1U0In2)1(T0VQ)1 \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}

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

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

(In1T1U0In2)1=(In1T1U0In2) \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}
(T0VQ)1=(T10Q1VT1Q1) \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}

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

A1=(T1+T1UQ1VT1T1UQ1Q1VT1Q1)(1) \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}

が得られる。

補足

シューア補行列

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

式(5) の変形

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

A=(In10VT1In2)(T00WVT1U)(In1T1U0In2). \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

畳屋民也畳屋民也

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

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

P(f)=N!f1!f2!...fK!p1f1p2f2...pKfK 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}

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

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

z=(f1Np1Np1,f2Np2Np2,...,fKNpKNpK), \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,

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

Σij={1pii=jpipjij(i,j=1,2,...,K) \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)

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

UΣU=(IK1000)(1) \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×KK \times K 直交行列 U=(u1,u2,...,uK)\boldsymbol{U} = (\boldsymbol{u}_1, \boldsymbol{u}_2, ..., \boldsymbol{u}_K) を考える。
ただし、KK 列目の成分は以下のようになっているものとする:

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

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

ΣU=(1p1p1p2p1pKp2p11p2p2pKpKp1pKp21pK)(u1,u2,...,uK1,uK) \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}

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

ΣuK=(1p1p1p2p1pKp2p11p2p2pKpKp1pKp21pK)(p1p2pK)=0 \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}

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

(Σuj)i=pip1u1jpip2u2j...+(1pi)uij...pipK=(1pi)uijpi(p1u1j+p1u2j+......+pi1ui1,j+pi+1ui+1,j+...+pKuKj)=(1pi)uijpi(p1u1j+...+pKuKjpiuij)=(1pi)uijpi(piuij)uKuj=0=uij \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}

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

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

UΣU=(u1u2uK1uK)(u1,u2,...,uK1,0)=(IK1000) \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)が示された。

畳屋民也畳屋民也

冪等な行列の性質

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

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

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

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

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

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

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

\Leftarrow の証明)

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

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

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

A2=UΛUUΛU=UΛ2U=UΛU=A \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}

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

\Rightarrow の証明)

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

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

Aui=λiui. \boldsymbol{A} \boldsymbol{u}_i = \lambda_i \boldsymbol{u}_i.

このとき、

A2ui=A(Aui)=A(λiui)=λi2ui \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}

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

A2ui=Aui=λiui \begin{aligned} \boldsymbol{A}^2 \boldsymbol{u}_i &= \boldsymbol{A}\boldsymbol{u}_i\\ &= \lambda_i \boldsymbol{u}_i \end{aligned}

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

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

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

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

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

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

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

trA=tr(UΛU)=tr(ΛUU)=trΛ. \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}

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

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

従って、

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

が成り立つ。

参考文献

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

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

ログインするとコメントできます