3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

統計検定準1級の勉強部屋:主成分得点と主成分負荷量

Last updated at Posted at 2023-12-17

1 はじめに

本稿では線形変換の観点から眺めた主成分分析を解説し、主成分得点と主成分負荷量がどのような意味を持つのか、そしてそれらの関係がどのように導かれるのかを考察する。
なお、本稿の記事は「統計学実践ワークブック」の23章「主成分分析」の内容に基づき、著者が考察を行った結果をまとめたものである。

2 主成分の意味

主成分とは、データ $\boldsymbol{x}$ を固有ベクトル $\boldsymbol{u}_{j}$(方向の直線) に降ろした足、すなわち新基底 $\boldsymbol{u}_{j}$ から見た特徴量のことで、$j$ 番目の固有値 $\lambda_{j}$ に対応する固有ベクトル $\boldsymbol{u}_{j} (\in \mathbb{R}^{p})$ と$p$個の特徴量からなる元の変数 $\boldsymbol{x} = \left( x_{1}, \cdots ,x_{p} \right)^T$ との内積を変数 $y_{j}$ で表し、第 $j$ 主成分 (principal component) という。

y_{j} = \langle \boldsymbol{x}, \boldsymbol{u}_{j} \rangle
= x_{1} u_{1,j} + \cdots x_{p} u_{p,j}
\quad・・・\quad(1)

Fig.1 に示すように、データ $\boldsymbol{x}$ は、特徴量空間の一点で表される。特徴量空間の各座標軸は、データを特徴づける $p$ 個の特徴量(特徴量$1$~特徴量$p$)の値を示す座標軸である。たとえば、データ $\boldsymbol{x}$ を学生、特徴量を国語 ($x_1$) 、数学 ($x_2$) 、理科 ($x_3$) 、社会($x_4$) の点数とする(学生を各教科の点数で特徴づけた訳である)と、特徴量空間の各座標軸はそれぞれ国語、数学、理科、社会(の点数)である。

Fig1.png

$\boldsymbol{u}_{j} (j=1, \cdots, p)$ を $j$ 番目の固有ベクトル(固有ベクトルは、中心化された元データ行列 $X_C$ から作られる共分散行列 $S$ を固有値分解することで得られる)とすると、 $\boldsymbol{u}_{j}$ 方向の直線に、データ $\boldsymbol{x}$ から降ろした足(Fig.1 の緑色の点)の原点 $O$ からの距離(長さ)を主成分(正確には第 $j$ 主成分)という。図から分かるように、主成分はデータ $\boldsymbol{x}$ を固有ベクトル(方向の直線)に正射影したものである。

特徴量空間の各座標軸方向に単位ベクトルをとり、それらを $\boldsymbol{f}_{1}, \cdots, \boldsymbol{f}_{p}$ とする。つまり、 $\boldsymbol{f}_{1}$ は特徴量$1$方向にとった単位ベクトル、 $\boldsymbol{f}_{2}$ は特徴量$2$方向にとった単位ベクトル、・・・である。これら $\boldsymbol{f}_{1}, \cdots, \boldsymbol{f}_{p}$ を基底ベクトル(あるいは単に基底)と呼ぶ。各基底ベクトルは、各特徴量の方向を表しており、データ $\boldsymbol{x}$ と $j$ 番目の基底 $\boldsymbol{f}_{j}$ の内積 $\langle \boldsymbol{x}, \boldsymbol{f}_{j} \rangle$ はデータの $j$ 番目の特徴量を表している。

いま、特徴量空間の基底を $\boldsymbol{f}_{1}, \cdots, \boldsymbol{f}_{p}$ から、共分散行列 $S$ の固有ベクトル $\boldsymbol{u}_{1}, \cdots, \boldsymbol{u}_{p}$ に変更することを考えてみよう(基底変換)。そうすると、データ $\boldsymbol{x}$ はどのように見えるだろうか。基底を変えても $\boldsymbol{x}$ は $\boldsymbol{x}$ なので、向きも長さも変わらない。しかし、データ $\boldsymbol{x}$ の成分表示(特徴量の値)は変わる。なぜなら、基底が $\boldsymbol{f}_{1}, \cdots, \boldsymbol{f}_{p}$ の場合はデータ $\boldsymbol{x}$ の第 $j$ 成分は、データ $\boldsymbol{x}$ と第 $j$ 基底 $\boldsymbol{f}_{j}$ の内積 $\langle \boldsymbol{x}, \boldsymbol{f}_{j} \rangle$ であったものが、基底が $\boldsymbol{u}_{1}, \cdots, \boldsymbol{u}_{p}$ になると、データ $\boldsymbol{x}$ の第 $j$ 成分は、データ $\boldsymbol{x}$ と変更後の第 $j$ 基底 $\boldsymbol{u}_{j}$ の内積 $\langle \boldsymbol{x}, \boldsymbol{u}_{j} \rangle$ に変わるからである。このように考えると、主成分は変換後の新しい基底からデータを眺めているという描像が描けるだろう。なお、新しい基底は旧基底の合成になっていることに注意したい。旧基底は、たとえば国語が第1基底、数学が第2基底、・・・といった具合に特徴量が明確であったが、新基底は、たとえば第1基底である $\boldsymbol{u}_{1}$ は国語が20%、数学が40%、・・・などと、旧基底が混ざり合っている。

3 主成分得点

データ行列 $X$ の第 $i$ 行ベクトル $\boldsymbol{x}_{i} = \left( x_{i,1}, \cdots, x_{i,p} \right)^{T}$ を前頁の(1)式に代入した

y_{i,j} = \langle \boldsymbol{x}_{i}, \boldsymbol{u}_{j} \rangle
= x_{i,1} u_{1,j} + \cdots x_{i,p} u_{p,j}
\quad・・・\quad(2)

を、($i$ 番目のデータ $\boldsymbol{x}_{i}$ の $j$ 番目の特徴量に対する)主成分得点 ( principal component score ) という。

Fig2.png

3.1 主成分得点の意味

主成分得点は、前頁で説明した主成分を具体的な観測データに対して求めた値である。前頁の(1)式を

y_{j} = g(\boldsymbol{x}) = \langle \boldsymbol{x}, \boldsymbol{u}_{j} \rangle
\quad・・・\quad(3)

と関数表記した場合、関数の引数である $\boldsymbol{x}$ に具体的なデータ(例えば $i$ 番目のデータ $\boldsymbol{x}_{i}$ )を代入したものが(データ $\boldsymbol{x}_{i}$ の)主成分得点である。(2)式で $y$ の添え字が $i, j$ となっているのは、$i$ 番目のデータの特徴量 $j$ に対する主成分得点を意味する。
全データ $\boldsymbol{x}_{1}, \cdots, \boldsymbol{x}_{n}$ に対する特徴量 $j$ の主成分得点を並べたベクトルを $\boldsymbol{y}_{j}$ とおく。すなわち

\boldsymbol{y}_{j} = \left( y_{1,j}, \cdots, y_{n,j} \right)^{T} 
= \left( 
\langle \boldsymbol{x}_{1}, \boldsymbol{u}_{j} \rangle, \cdots, 
\langle \boldsymbol{x}_{n}, \boldsymbol{u}_{j} \rangle
\right)^{T} 
=X_{C} \boldsymbol{u}_{j}
\quad・・・\quad(4)

ここで、 $X_C$ は中心化されたデータ行列である(Fig.3)。

X_C = \left[ \boldsymbol{x}_{1} \cdots \boldsymbol{x}_{n} \right]^{T} 
= \left[ \boldsymbol{\breve{x}}_{1} \cdots \boldsymbol{\breve{x}}_{p}
\right]
\quad・・・\quad(5)

Fig3.png

4 線形変換から見た主成分分析

(4)式は、$\boldsymbol{u}_{j}$ から $\boldsymbol{y}_{j}$ への線形変換とみなせる。ここで、線形変換に対応する行列は $X_C$ である(Fig.4参照)。

Fig4.png

共分散行列 $S$ は、中心化された元データ $X_C$ を使って次式のようにあらわされる。

S = \frac{1}{n-1} X_{C}^{T} X_{C}
\quad・・・\quad(6)

$S$ の $j$ 番目の固有値を $\lambda_{j}$、 対応する固有ベクトルを $\boldsymbol{u}_{j}$ とすると、

S \boldsymbol{u}_{j} = \lambda_{j} \boldsymbol{u}_{j}
\quad・・・\quad(7)

となるが、(6)式と(4)式を用いると次のように変形できる。

\begin{equation}
\begin{split}

\lambda_{j} \boldsymbol{u}_{j}
&=
S \boldsymbol{u}_{j}
=
\left( \frac{1}{n-1} X_{C}^{T} X_{C} \right) \boldsymbol{u}_{j} \\
&=
\frac{1}{n-1} X_{C}^{T} \left( X_{C} \boldsymbol{u}_{j} \right)
=
\frac{1}{n-1} X_{C}^{T} \boldsymbol{y}_{j}

\quad・・・\quad(8)
\end{split}
\end{equation}

Fig.4a は(4)式を図示したもので、Fig.4b は(4)式を $\boldsymbol{u}_{j}$ から $\boldsymbol{y}_{j}$ への線形変換とみなして、特徴量空間上の固有ベクトル $\boldsymbol{u}_{j}$ をデータ空間上の主成分得点ベクトル $\boldsymbol{y}_{j}$ に写像している様子を描いたものである。そして、この線形変換に対応する行列はデータ行列 $X_C$ である。

Fig.5a は(8)式を図示したもので、Fig.5b は(8)式を $\boldsymbol{y}_{j}$ から $\lambda_{j} \boldsymbol{u}_{j}$ への線形変換とみなして、データ空間上の主成分得点ベクトル $\boldsymbol{y}_{j}$ を、特徴量空間上の固有ベクトル $\boldsymbol{u}_{j}$ を(対応する固有値である)$\lambda_{j}$ 倍したベクトル $\lambda_{j} \boldsymbol{u}_{j}$ に写像している様子を描いたものである。そして、この線形変換に対応する行列はデータ行列 $X_C$ を転置したものを $n−1$ で割った $\frac{1}{n-1}X_{C}^{T}$ である。

Fig5.png

Fig5b.png

5 主成分負荷量

元の変数(と言ってもデータベクトル $\boldsymbol{x}_{i} = \left( x_{i,1}, \cdots, x_{i,p} \right)^{T} \in \mathbb{R}^{𝑝} \quad (i=1, \cdots, 𝑛)$ ではなく、特徴量ベクトル $\boldsymbol{\breve{x}}_{k} = \left( x_{1,k}, \cdots, x_{n,k} \right)^{T} \in \mathbb{R}^{n} \quad (k=1, \cdots, p)$ であるが)と第 $j$ 主成分 $\boldsymbol{y}_{j}$ との相関係数($r_{y_{j},x_{k}}$)を主成分負荷量( principal component loading )という。
この主成分負荷量を求めるには、(8)式を使う。
$X_{C}^{T} = \left[ \boldsymbol{x}_{1} \cdots \boldsymbol{x}_{n} \right]$ を(8)式の最後の項に代入すると

\begin{equation}
\begin{split}

\lambda_{j} \boldsymbol{u}_{j}
&=
\frac{1}{n-1} X_{C}^{T} \boldsymbol{y}_{j}
=
\frac{1}{n-1}  
\left[ \boldsymbol{x}_{1} \cdots \boldsymbol{x}_{n} \right]
\boldsymbol{y}_{j} \\

&=

\frac{1}{n-1}

\begin{pmatrix}
x_{1,1} & \cdots & x_{n,1} \\
\vdots & \ddots & \vdots \\
x_{1,p} & \cdots & x_{n,p} \\
\end{pmatrix}

\begin{pmatrix}
y_{1,j} \\
\vdots  \\
y_{n,j} \\
\end{pmatrix}

=
\frac{1}{n-1}
\begin{pmatrix}
\sum_{i=1}^{n} x_{i,1} y_{i,j} \\
\vdots  \\
\sum_{i=1}^{n} x_{i,p} y_{i,j} \\
\end{pmatrix} \\

&=
\frac{1}{n-1}
\begin{pmatrix}
\langle \boldsymbol{\breve{x}}_{1}, \boldsymbol{y}_{j} \rangle \\
\vdots  \\
\langle \boldsymbol{\breve{x}}_{p}, \boldsymbol{y}_{j} \rangle \\
\end{pmatrix}

=
\frac{1}{n-1}
\begin{pmatrix}
Cov \left[ \breve{x}_{1}, y_{j} \right] \\
\vdots  \\
Cov \left[ \breve{x}_{p}, y_{j} \right] \\
\end{pmatrix}

\quad・・・\quad(9)
\end{split}
\end{equation}

となる。(9)式の第 $k$ 行に注目すると

\lambda_{j} u_{k,j} = Cov \left[ \breve{x}_{k}, y_{j} \right]

\quad・・・\quad(10)

となる。したがって、特徴量ベクトル $\boldsymbol{\breve{x}}_{k}$ と(第 $j$ )主成分 $\boldsymbol{y}_{j}$ の相関係数は

r_{y_{j},x_{k}} 
=
\frac{Cov \left[ \breve{x}_{k}, y_{j} \right]}
{\sqrt{V \left[ \breve{x}_{k} \right] V \left[ y_{j} \right] }}

\quad・・・\quad(11)

となるが、

V \left[ \breve{x}_{k} \right]
=
\frac{1}{n-1} \boldsymbol{\breve{x}}_{k}^{T} \boldsymbol{\breve{x}}_{k} = s_{k,k}

\begin{equation}
\begin{split}

V \left[ y_{j} \right]
&=
\frac{1}{n-1} \boldsymbol{y}_{j}^{T} \boldsymbol{y}_{j}
=
\frac{1}{n-1} \left( X_{C} \boldsymbol{u}_{j} \right)^{T} X_{C} \boldsymbol{u}_{j}
=
\frac{1}{n-1} \boldsymbol{u}_{j}^{T} X_{C}^{T} X_{C} \boldsymbol{u}_{j} \\
&=
\boldsymbol{u}_{j}^{T} \left( \frac{1}{n-1}  X_{C}^{T} X_{C} \right) \boldsymbol{u}_{j}
=
\boldsymbol{u}_{j}^{T} S \boldsymbol{u}_{j}
=
\boldsymbol{u}_{j}^{T} \lambda_{j} \boldsymbol{u}_{j}
=
\lambda_{j} \boldsymbol{u}_{j}^{T} \boldsymbol{u}_{j} \\
&= \lambda_{j} 
\end{split}
\end{equation}

なので、これらと(10)式を(11)式に代入すると主成分負荷量(特徴量ベクトル $\boldsymbol{\breve{x}}_{k}$ と第 $j$ 主成分 $\boldsymbol{y}_{j}$ の相関係数)は次のようになる。

r_{y_{j},x_{k}} 
=
\frac{Cov \left[ \breve{x}_{k}, y_{j} \right]} {\sqrt{s_{k,k} \lambda_{j} }}
=
\frac{\lambda_{j} u_{k,j}} {\sqrt{s_{k,k} \lambda_{j} }}
=
\frac{\sqrt{ \lambda_{j} } u_{k,j}} {\sqrt{s_{k,k}}}
\quad・・・\quad(12)

5.1 主成分負荷量の意味

主成分負荷量の意味を考察する。主成分負荷量は、特徴量ベクトル $\boldsymbol{\breve{x}}_{k}$ と第 $j$ 主成分 $\boldsymbol{y}_{j}$ の相関係数であった。
特徴量ベクトル $\boldsymbol{\breve{x}}_{k}$ はデータ行列 $X_{C}$ の第 $k$ 列の列ベクトルで、その成分表示は


\boldsymbol{\breve{x}}_{k}
=
\left(
x_{1,k}, \cdots, x_{n,k}
\right)^{T}

である(Fig.6 参照)。

Fig6.png

Fig4a(再掲).png

これは、Fig.1 に示す特徴量空間の $k$ 番目の基底(座標軸方向の単位ベクトル)$\boldsymbol{f}_{k} = \left( 0,\cdots,1,\cdots, 0 \right)^{T}$ をデータ行列 $X_{C}$ の右から掛けることによって取り出すことができる。すなわち

\boldsymbol{\breve{x}}_{k}
=
X_{C} \boldsymbol{f}_{k}
\quad・・・\quad(13)

一方、第 $j$ 主成分 $\boldsymbol{y}_{j}$ は全データ $\boldsymbol{x}_{1},\cdots,\boldsymbol{x}_{n}$ の特徴量 $j$ の主成分得点を並べたベクトルで、(4)式で与えられる。

(13)式と(4)式を線形変換の観点から眺めると、特徴量ベクトル $\boldsymbol{\breve{x}}_{k}$ は、特徴量空間の $k$ 番目の基底 $\boldsymbol{f}_{k}$ を行列 $X_{C}$ で線形変換した写像で、第 $j$ 主成分 $\boldsymbol{y}_{j}$ は、特徴量空間上の $j$ 番目の固有ベクトル $\boldsymbol{u}_{j}$ を行列 $X_{C}$ で線形変換した写像であることがわかる。
すなわち、主成分負荷量(特徴量ベクトル $\boldsymbol{\breve{x}}_{k}$ と第 $j$ 主成分 $\boldsymbol{y}_{j}$ の相関係数)は、新旧基底間の相関($u_{k,j}$)をデータ空間に写像して眺めたものという描像を描くことができる(Fig.7)

Fig7.png

6 まとめ

6.1 固有ベクトルと主成分ベクトルの関係

$\boldsymbol{u}_{j}$ と $\boldsymbol{y}_{j}$ は座標変換を通して出会う。

まとめFig5b(再掲).png

6.2 共分散行列は Self-Attention に似ている

Fig8.png

データ行列 $X_C$ の列ベクトル $\boldsymbol{\breve{x}}_{k}$ は、特徴量 $k$ の埋め込みベクトルとみなせる。$\boldsymbol{\breve{x}}_{k}$ と $\boldsymbol{\breve{x}}_{j}$ の内積は特徴量 $k$ と特徴量 $j$ の類似度を表している。したがって、共分散行列 $S$ の $k$ 行 $j$ 列の成分 $s_{k,j}$ は、TransformerAttention 機構の類推から特徴量ベクトルの Self-Attention 重みとみなすことができる。

共分散行列 $S$ の第 $k$ 行ベクトルを $\boldsymbol{s}_{k} = \left( s_{k,1}, \cdots, s_{k,p} \right)^{T}$ とおくと、特徴量ベクトルの加重平均

s_{k,1} \boldsymbol{\breve{x}}_{1} + \cdots + s_{k,p} \boldsymbol{\breve{x}}_{p}
=
\sum_{j=1}^{p} s_{k,j} \boldsymbol{\breve{x}}_{j}
=
\boldsymbol{s}_{k}^{T} X_{C}^{T}
=
\left( X_{C} \boldsymbol{s}_{k} \right)^{T}

は、Transformer の類推から他の特徴量との関連を反映した「潜在空間」における $k$ 番目の特徴量を表しているものと考えられる。ただし、主成分分析の場合、これが何を意味しているのか、今のところわからない。
これについてさらに深く知りたい人は「主成分分析と自己注意機構」をご覧いただきたい。

6.3 主成分得点ベクトルは観測データを固有ベクトル方向に射影して得られる

主成分得点ベクトル

\boldsymbol{y}_{j} = 
\begin{pmatrix}
\boldsymbol{x}_{1}^{T} \boldsymbol{u}_{j} \\
\vdots \\
\boldsymbol{x}_{n}^{T} \boldsymbol{u}_{j} \\
\end{pmatrix}
=
\begin{pmatrix}
\boldsymbol{x}_{1}^{T}  \\
\vdots \\
\boldsymbol{x}_{n}^{T}  \\
\end{pmatrix}
\boldsymbol{u}_{j}
=
X_{C} \boldsymbol{u}_{j}

\quad・・・\quad(15)

まとめFig2(再掲).png

まとめFig4b(再掲).png

6.4 主成分負荷量は新旧基底間からみた特徴量ベクトルの相関だった

主成分負荷量

r_{y_{j},x_{k}} 
=
\frac{Cov \left[ \breve{x}_{k}, y_{j} \right]} {\sqrt{s_{k,k} \lambda_{j} }}
=
\frac{\lambda_{j} u_{k,j}} {\sqrt{s_{k,k} \lambda_{j} }}
=
\frac{\sqrt{ \lambda_{j} } u_{k,j}} {\sqrt{s_{k,k}}}
\quad・・・\quad(12)

【この観点からの主成分負荷量の導出】(別解)

\boldsymbol{y}_{j} = X_{C} \boldsymbol{u}_{j}
\quad・・・\quad(16)
\boldsymbol{\breve{x}}_{k} = X_{C} \boldsymbol{f}_{k}
\quad・・・\quad(17)

これらを使うと、 $k$ 番目の特徴量ベクトル $\boldsymbol{\breve{x}}_{k}$ と第 $j$ 主成分得点ベクトル $\boldsymbol{y}_{j}$ の内積は次のように計算できる。

\begin{equation}
\begin{split}
\boldsymbol{\breve{x}}_{k}^{T} \boldsymbol{y}_{j} 
&= \left( X_{C} \boldsymbol{f}_{k} \right)^{T} X_{C} \boldsymbol{u}_{j}
= \boldsymbol{f}_{k}^{T} X_{C}^{T} X_{C} \boldsymbol{u}_{j}
= \boldsymbol{f}_{k}^{T} (n-1) S \boldsymbol{u}_{j} \\
&= (n-1) \boldsymbol{f}_{k}^{T} \lambda_{j} \boldsymbol{u}_{j}
= (n-1) \lambda_{j} \boldsymbol{f}_{k}^{T} \boldsymbol{u}_{j}
= (n-1) \lambda_{j} u_{k,j}
\quad・・・\quad(18)
\end{split}
\end{equation}

ここで、(6)式と(7)式を使った。
(18)式を使うと

Cov \left[ \breve{x}_{k}, y_{j} \right]
=
\frac{1}{n-1}
\boldsymbol{\breve{x}}_{k}^{T} \boldsymbol{y}_{j}
=
\frac{1}{n-1} (n-1) \lambda_{j} u_{k,j}
=\lambda_{j} u_{k,j}

となり、(12)式の2項目から3項目の導出ができた。

まとめFig7(再掲).png

8 おわりに

主成分分析を線形変換からの観点から考察を行い、主成分得点や主成分負荷量の意味を考え、それらの関係を導いた。

参考文献

  1. 日本統計学会 (編集):日本統計学会公式認定 統計検定準1級対応 統計学実践ワークブック. 学術図書出版社, 2020.
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?