主成分分析とは?[解析例・導出つき]
120人分の数学と理科の点数のダミーデータ
上図はすべての人のスコアをプロットしたものです(データはダミーです)。データの特性として、数学の点数が高ければ、理科の点数も高い傾向があることがわかります。そこで、データのばらつきが最も大きい方向に新たに軸を取り、その軸への射影を考えると、理数系科目の総合力を表すような新たな変数を構成できると考えられます。
PCAによる解析結果(赤い矢印:第1主成分方向、青い矢印:第2主成分方向)
数学的理解
まず、いくつかの変数を定義します。\(p\) 個のパラメータで表される実数のデータ組が \(n\) サンプルだけあるとき、これを \(n\times p\) の行列の形で \(X\) とします。
$$ X = \left( \begin
\(x_\) は、\(i\) 番目のサンプルの \(j\) 番目のパラメータの値を表します。
例えば、身長と体重のデータの場合は \(p=2\), 測定した人の数が \(n\) に相当します。
\(j\) 番目のパラメータの平均値を \(\mu_j\,(j=1,2. p)\) とおきます。
\(\mu_j\) を用いて、データの分散共分散行列(variance-covariance matrix)\(S\) を定義します。\(S\) は \(p\times クロネッカーデルタとは p\) の正方行列です。
$$ \begin
\(s_\) は \(k\) 番目と \(l\) 番目の変数の共分散(covariance)を表します。なお、\(k=l\) のときは \(k\) 番目の変数の分散(variance)を表します。\(s_\) の定義より、\(s_ = s_\)が成立します。よって、分散共分散行列 \(S\) は実対称行列になります(\(\text\,S = S^\TT\))。
上式の \(s_\) では、偏差の積を \(n\) で割っていますが、調べたい集団全体(母集団)の一部を取り出したサンプル(標本)を用いる場合は、偏差の積の和を \(n-1\) で割って定義される不偏分散(unbiased variance) を用います。 $$ s_ = \dfrac\sum_^n (x_-\mu_k)(x_-\mu_l)\hspace(k,l=1,2. p) $$ 多くの場合、調べたい集団すべてのデータを取ることは困難なので、基本的には不偏分散を用いることになります。
データ解析においては、データの平均値を予め \(\mu_j = 0\) としてから \(クロネッカーデルタとは S\) を計算することが多いです。このとき、 $$ s_ = \dfrac\sum_^n x_x_\hspace(k,l=1,2. p) $$ であり、分散共分散行列 \(S\) は $$ S = \dfracX^\TT X $$ と表せます。ただし、\(\TT\) は転置を意味します。
主成分分析では、データを新たな軸に射影したとき、その分散が最も大きくなるように軸の方向を定めます。分散が最大となる方向を第1主成分方向とよびます。分散共分散行列 \(S\) の固有値を クロネッカーデルタとは \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおいたとき、第1主成分方向は 分散共分散行列 \(S\) の最大固有値 \(\lambda_1\) の固有ベクトル \(\bm_1\) になります。
便宜上、\(i\) 番目のサンプルのデータセットを行ベクトルの形で \(\bm_i := (x_,x_. x_)\) クロネッカーデルタとは クロネッカーデルタとは とします。\(i\) 番目のサンプルの第1主成分得点 \(t_\) は、\(\bm_i\) と \(\bm_1\) の内積として
第2主成分方向は、第1主成分方向 \(\bm_1\) に直交する条件の下で、データを射影したときのばらつきが最大となる方向として決められ、これは分散共分散行列 \(S\) の第2固有値 \(\lambda_2\) の固有ベクトル \(\bm_2\) に相当します。
一般に、第 \(k\) 主成分方向 \((クロネッカーデルタとは k=1,2. p)\) は、分散共分散行列 \(S\) の第 \(k\) 固有値の第 \(k\) 固有ベクトル \(\bm_k\)になり、\(i\) 番目のサンプルに関する第 \(k\) 主成分得点 \(t_\) は、\(\bm_i\) と \(クロネッカーデルタとは クロネッカーデルタとは クロネッカーデルタとは \bm_k\) の内積で表されます。
最後に、\(S\) の固有値に注目して、寄与率・累積寄与率を紹介します。
\(S\) の固有値 \(\lambda_k\) は、第 \(k\) 主成分得点の分散に等しくなります。よって、\(\lambda_k\) が大きければ、第 \(k\) 主成分は元のデータの情報を多く含んでいると解釈できます。
それを相対的に評価したのが寄与率(contribution rate)で、第 \(k\) 主成分の寄与率は以下で表されます。
累積寄与率(accumulative contribution rate)は、第1主成分から第 \(k\) 主成分までがどの程度の情報を持っているかを表す指標で、以下で表されます。
データの標準化
主成分分析を適用する前に、データに対して標準化を行う場合があります。具体的には、各変数について 平均 \(クロネッカーデルタとは クロネッカーデルタとは クロネッカーデルタとは クロネッカーデルタとは クロネッカーデルタとは 0\), 分散 \(1\) となるようにデータを変換することを言います。標準化したデータの行列 \(Z\) は以下で表されます。
$$ Z = \left( \begin
\(\mu_j,s_\) はそれぞれ \(j\) 番目のパラメータの平均と分散を表します。
で確かに \(0\) となっています。また、分散は
平均 \(0\), 分散 \(1\) に標準化したデータはz得点(z-score)とも呼ばれます。
標準化したデータにも、分散共分散行列 \(S\) に相当するものを考えることができ、それは相関行列 \(R\) と呼ばれます。
$$ \begin
対角成分は \(j\) 番目のパラメータの分散を表し、標準化によってすべて \(1\) となっています。また、\(S\) と同様に、\(R\) も実対称行列です。
主成分方向や主成分得点などは、前述した標準化していないデータの分散共分散行列 \(S\) の固有値・固有ベクトルによって求められたのと同様に、相関行列 \(R\) の固有値・固有ベクトルによって求められます。しかし、主成分方向や主成分得点は、標準化しなかった場合の結果とは異なるので、注意が必要です。
標準化をすべきか否かについては、4.3節で考察を行いました。筆者の見解が含まれますが、各変数が同じぐらいの情報を持っている場合は標準化すべきで、そうでない場合は必ずしも標準化は必要ない、ということができそうです。また、主成分分析の使用目的やデータの特徴にも依存します。
数学と理科の点数
120人分の数学と理科の点数のデータを作成します。ダミーデータは、数学と理科の相関行列から乱数を生成し、予め定めた平均値・標準偏差を加えることで生成できます。相関行列は半正定値行列(positive semidefinite matrix)でなければなりません。
120人分の数学と理科の点数のダミーデータ
np.std は標準偏差を求める関数で、ddof=1 とした場合は、不偏分散として計算されます。詳しくは公式サイトを参照してください。
分散共分散行列 \(S\) を計算します。\(S\) の対角成分は、各パラメータの分散に等しくなります。
分散共分散行列 \(S\) の固有値・固有ベクトルを求めます。各固有ベクトルを縦ベクトルとして \(\bm_1,\bm_2\) とすると、 \(V=(\bm_1,\bm_2)\) のように並んでいます。なお、固有値・固有ベクトルは、固有値の大きい順になるように並び替えています。
固有ベクトルの向きは、必ずしも数学と理科の点数が高くなる方向にはなりません。実際に、第1主成分方向は両方の点数が低くなる方向になっています。軸の方向だけが重要なので、主成分方向の正負を入れ替えても問題ありません。
PCAによる解析結果(赤い矢印:第1主成分方向、青い矢印:第2主成分方向)
身長と体重
120人分の身長と体重のダミーデータ
身長と体重では、単位が \(\mathrm\) と \(\mathrm\) で異なります。この場合、各変数を標準化してから解析を行うのが通常です。標準化したデータ \(クロネッカーデルタとは Z\) は、以下のように算出できます。
標準化した身長と体重のデータ
a.u. は任意単位(arbitrary unit)のことです。身長と体重を標準化したことで、単位がなくなっているため、このように記載しています。
この \(Z\) を用いて、相関行列 \(R\) を求めます。
相関行列 \(R\) の固有値・固有ベクトルを求めます。
各主成分方向をデータと合わせてプロットすると、以下のような図が得られます。第1主成分方向(赤い矢印)は身長と体重が両方とも高くなる方向になっているため、体格の大きさを表す変数として解釈できます。一方で、第2主成分方向(青い矢印)は、身長が低く体重が重い領域から、身長が高く体重が軽い方向にわたっているので、肥満度を表すような変数として解釈することができます。
肥満度を表す指数としてよく使われるBMI(body mass index)は、身長と体重の2変数から肥満度を表す1変数へ次元が減っているので、次元圧縮の例といえます。 $$ \mathrm := \frac\,[\mathrm]><(\text<身長>\,[\mathrm])^2> $$
アヤメの分類
\(X\) は \(150\times クロネッカーデルタとは 4\) の行列で、\(4\) つのパラメータのデータは、がく片の長さ・幅・花びらの長さ・幅の順で格納されています。
\(Y\) はアヤメの品種をラベル付けしたベクトルで、\(0\) が setosa, \(1\) が versicolor, \(2\) が virginica になります。
標準化を行ったのち、相関行列 \(R\) を求めます。
相関行列 \(R\) の固有値・固有ベクトルを求めます。
第1主成分方向、つまり最大固有値の固有ベクトルを見ると、がく片の長さ・花びらの幅と長さはすべて符号が \(+\) で、がく片の幅のみ クロネッカーデルタとは \(-\) になっています。このことから、がく片の細長さと花びらの全体的な大きさを見ることで、アヤメの3品種がおおむね区別できることが予想されます。
第一主成分の寄与率はおよそ \(73.0\,\%\) と高い値を示しています。また、第2主成分までの累積寄与率がおよそ \(95.8\,\%\) であることから、第2主成分までで、データのおおよその特性が説明できるといえます。
各データの第1・第2主成分得点(赤:setosa、緑:versicolor、青:virginica)
各データの第1・第2・第3主成分得点(赤:setosa、緑:versicolor、青:virginica)
1節と同様に、\(p\) 個のパラメータで表される実数のデータ組が \(n\) サンプルだけあるとき、これを \(n\times p\) の行列の形で \(X\) とします。
$$ X = クロネッカーデルタとは \left( \begin
便宜上、\(i\) 番目のサンプルのデータセットを行ベクトルの形で \(\bm_i := (x_,x_. x_)\) とします。\(i\) 番目のサンプル \(\bm_i\) の第1主成分得点 \(t_\) は、 \(p\) 次元の縦ベクトル \(\bm_1=(w_1,w_2. w_p)^\TT\) を用いて、
と表せます。主成分分析では、第1主成分得点 \(t_1\) の分散が最大となるように \(\bm_1\) を決めることになります。第1主成分得点の分散 \(\mathrm[t_1]\) は
とできます。ただし、\(\bm <\mu>= \frac(\sum\limits_i x_,\sum\limits_i x_. \sum\limits_i x_)\) は各パラメータの平均値を表す \(p\) 次元の横ベクトルです。\(\mathrm[t_1]\) をさらに変形して、
$$ \begin
を得ます。ここで、\(S\) は分散共分散行列で、1.2節で定義したものと同じです。
以上より、第1主成分方向は、\(\mathrm[t_1] = \bm_1^\TT S\bm_1\) を最大とするような \(\bm_1\) に相当することがわかりました。現状、\(\bm_1\) が大きくなれば、第1主成分得点の分散 クロネッカーデルタとは クロネッカーデルタとは \(\mathrm[t_1]\) はいくらでも大きくなってしまいます。そこで、\(\|\bm_1\|_2 =1\) の制約を課すことで、分散の発散を防ぎます。このような制約付きの極値問題は、ラグランジュの未定乗数法によって求めることができます。ラグランジュ乗数を \(\alpha\) として、目的関数 \(L(\bm_1,\alpha)\) は
と表せ、求める \(\bm_1\) は以下の2式を満たします。
上式の第2式は、\(\bm_1^\TT\bm_1 - 1 = 0\) であり、これは制約条件そのものです。
したがって、求める \(\bm_1\) は、分散共分散行列 \(S\) の固有ベクトルになることがわかります。また、このとき、
より、第1主成分得点の分散は固有値に等しいことがわかります。
以上より、第1主成分方向は、分散共分散行列 \(S\) の最大固有値の固有ベクトルであることがわかりました。
改めて、分散共分散行列 \(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおくと、\(\bm_1 = \bm_1,\,\mathrm(t_1) = \lambda_1\) となります。
第2主成分方向については、第1主成分方向に直交する条件下で、第2主成分得点の分散を最大にする方向として決められます。これは、第1主成分方向を求めた際に用いたラグランジュ未定乗数法の制約条件に、最大固有値の固有ベクトルとの直交性を追加することで求めることができます。ラグランジュ乗数を \(\alpha_1,\alpha_2\) クロネッカーデルタとは として、目的関数 \(L(\bm_2,\alpha_1,\alpha_2)\) は
$$ L(\bm
と表せます。第1主成分を求めた時と同様に、求める \(\bm_2\) は以下の3式を満たします。
第2式は係数ベクトルの正規化に関する条件 \((クロネッカーデルタとは \bm_2^\TT\bm_2 = 1)\)、第3式は第1主成分方向との直交性を表します \((\bm_1^\TT\bm_2 = 0)\) 。
となります。左から \(\bm_1^\TT\) をかけると、
$$ \begin
よって、\(\alpha_2 = 0\) となるので、\(\partial L/\partial \bm_2\) は第1主成分方向を求めた時と同じ形であり、第2主成分方向は、\(S\) の第2固有値 \(\lambda_2\) の固有ベクトル \(\bm_2\) となります。
同様に制約条件を増やしていくことで、一般に第 \(k\) 主成分方向は、第 \(k\) 固有値 \(\lambda_k\) の固有ベクトル \(\bm_k\) であることがわかります。
ベクトル微分
まず、\(p=2\) クロネッカーデルタとは クロネッカーデルタとは クロネッカーデルタとは の場合について考えます。目的関数 \(L(\bm,\alpha)\) は
$$ \begin
\(L(\bm,\alpha)\) の \(w_1,w_2\) の偏微分は、\(s_ = s_\) に注意すると
次に、一般の \(p\geq 2\) について考えます。\(\partial (\bm^\TT\bm)クロネッカーデルタとは /\partial \bm = 2\bm\) は \(p=2\) の場合と同様に行うことで容易に導出できるので、ここでは \(\bm^\TT S\bm\) の項のみについて考えます。具体的に展開すると、
$$ \begin
\(\bm^\TT S\bm\) の \(w_q\,(1\leq q\leq p)\) による偏微分を考えます。このとき、シグマの中の \(w_q\) の項だけ \(1\)、それ以外は \(0\) になるので、クロネッカーのデルタ \(\delta_\) を用いて、
クロネッカーのデルタは以下で定義されます。 $$ \delta_ = \begin 1 & (i=j) \\ 0 & (i\neq j) \end $$
となります。最終行は、\(S\bm\) の \(q\) 行目を意味します。以上より、
分散共分散行列の性質
主成分分析は、分散共分散行列の固有値問題として帰着します。その分散共分散行列の性質を詳しく見てみましょう。
分散共分散行列 \(S\) は以下で表されます(再掲)。
$$ \begin
\(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおきます。このとき、以下の性質を満たします。
- 固有値は非負の実数(\(\lambda_k\geq 0\))
- 異なる固有値の固有ベクトルは直交(\(\bm_k^\TT\bm_l = 0\,(k\neq l)\))
分散共分散行列 \(S\) は平均との偏差の積を計算しているので、データを表す行列 \(X\) の各変数の平均値を予め クロネッカーデルタとは クロネッカーデルタとは \(0\) としても、 \(S\) 自体には変化がありません。このとき、\(S\) の第 \(k,l\) 成分は
と表せます。なお、スカラー倍しても固有ベクトルは変わらないので、以下の証明では \(S=X^\TT X\) として考えます。
性質1:固有値は非負の実数
\(S=X^\TT X\) の固有ベクトルを \(\bm_k\,(k=1,2. p)\) 、固有値を \(\lambda_k\) とおくと、
が成立します。左から \(\bm_k^\TT\) をかけて式を変形すると、固有値 \(\lambda_k\) が非負であることが示されます。
$$ \begin
固有値がすべて非負の実数になるのは、半正定値行列について成り立つ性質です。詳しくは、学びTimesさんの記事に詳しく書かれています。
性質2:異なる固有値の固有ベクトルは直交
\(クロネッカーデルタとは クロネッカーデルタとは S\) の異なる固有値を \(\lambda_k,\lambda_l\,(k,l=1,2. p;\lambda_k\neq \lambda_l)\)、対応する固有ベクトルを \(\bm_k,\bm_l\) とおきます。
上式に左から \(\bm_l^\TT\) をかけます。
\(S\) が対称行列(\(\text\,S^\TT = S\))であることを用いて
$$ \begin クロネッカーデルタとは クロネッカーデルタとは
したがって、異なる固有値の固有ベクトルの内積は \(0\)、すなわち固有ベクトルは互いに直交することが示されました。
異なる固有値に対応する固有ベクトルが直交するのは、任意の対称行列について成り立つ性質です。詳しくは、学びTimesさんの記事に詳しく書かれています。
標準化の使い分け
1.3節で、データを平均 \(0\), 分散 \(1\) に標準化してから主成分分析を行う場合について説明しました。では、具体的にどういった場合に標準化すべきなのか、考察したいと思います。
標準化においてポイントとなるのは、すべてのパラメータの分散が \(1\) に規格化されるという点です。1節などで説明した通り、主成分分析では、分散を情報量の大きさと捉えています。よって、標準化によって分散の値を \(1\) に規格化することは、各パラメータを平等に扱うことに対応していると考えられます。主成分分析を行う目的やデータの特徴にもよりますが、各変数が同じぐらいの情報を持っている場合は標準化すべきで、そうでない場合は必ずしも標準化は必要ない、ということができそうです。
次に、必ずしも標準化を行うべきとは言えないケースとして、Qiitaの記事より、夕焼けのRGB画像に対して主成分分析を行ったものを紹介します。標準化を行った場合と行わなかった場合を比較すると、標準化した場合の第一主成分の寄与率は、標準化を行わなかった場合と比べておよそ \(11\,\%\) ほど低下してしまいました。これは、元の画像において赤の分散が最も大きいことに起因します。夕焼けの画像に赤が多く含まれることは、捨てるべき情報とは言えないので、必ずしも標準化が必要とはいえません(青・緑の成分について詳しく考えたい場合はその限りではありません)。
このように、標準化が必要かどうかは、データの特徴や主成分分析の使用目的に依存します。まとめると、最初の例のように、データの特性を説明する上で、複数の変数が寄与しており、なおかつ変数間の分散の差が大きい場合は、それらを平等に扱うために標準化が必要です。対して、変数間の分散の差それ自体が重要な情報を持っており、標準化によってその情報が失われてしまう場合は、必ずしも標準化すべきとは言えません。
βダイバージェンスについて、さっと語る
自然科学
確率分布 \(\mathbf, \mathbf\) のβダイバージェンスは、以下のように定義される。
また、 \(\mathbf, \mathbf\) がともに離散分布であり、確率質量関数を用いて \(\mathbf=[p_1, p_2, \ldots, p_n], \mathbf=[q_1, q_2, \ldots, q_n]\) と表せるとき
定義では、βの範囲から \(0, 1\) を除いたが、 \(\beta=0,1\) でのダイバージェンスも定義することができる。
一般化KLダイバージェンス
を用いて \(\beta\to 1\) の極限を計算すると
これは、一般化KL(Kullback-Leibler)ダイバージェンス呼ばれる指標である。
板倉斎藤擬距離
また、 \(\beta\to 0\) クロネッカーデルタとは クロネッカーデルタとは の極限を計算すると
となり、板倉斎藤(IS)擬距離が導かれる。
この指標は音源分離など、スケール不変性が特徴的な分野でよく用いられる。(→別記事)
と、二乗誤差関数(L2-norm)が導かれる。
(補足)関係式 (1) の証明
関係式 (1) を考えるに際し、まず、以下の極限を考える。
より、不定形である。
同様にロピタルの定理を用いることで、関係式 (1) が導出できる。
Cichocki A and Amari S. Families of α-, β- and γ-divergences: flexible and robust measures of similarities. Entropy, 12, 1532-1568, 2010.クロネッカーデルタとは
デルタクロン;デルタとオミクロンのあいのこ!?
*1. シグネチャー変異(Signature mutations) (その株と)最も強く相関する遺伝子の変異パターン *2. 遺伝子組み換え(Genetic recombination) DNA配列間の相同性に基づいて起こる組換え反応。異なるタイプのウイルスが同じ細胞に同時に感染した際に起こりやすい。 *3. 次世代シークエンサー(Next Generation Sequencer) 2000年半ばに米国で登場した、遺伝子の塩基配列を高速に読み出せる装置。塩基配列を並列に読み出せるDNA断片数が、従来のDNAシーケンサーに比べて桁違いに多い。 *4. デュプレックスPCR(Duplex PCR) マルチプレックスPCRは、同一反応における2種類以上の遺伝子配列を増幅し特異的に検出する方法であり、プレート当たりより多くの試料がアッセイ可能となり、サンプル使用量の減少および試薬使用量の減少が利点である。最も一般的なマルチプレックスはデュプレックスであり、ターゲット遺伝子のアッセイを、対照または標準化遺伝子と同一のウェルで行われる。 *5. 走査型電子顕微鏡 電子顕微鏡の一種で、電子線を絞って電子ビームとして対象に照射し、対象物から放出される二次電子、反射電子、透過電子、X線、蛍光、内部起電力等を検出する事で対象を観察する。通常は二次電子像が利用される。 *6. シークエンス深度(Sequence depth) 次世代シークエンサーは配列のエラー率が高いので、ゲノム上の同じ位置を繰り返して読む必要があり、その繰り返し数を深度(Depth)という。
今回の論文のポイント
- 南仏における3例のCOVID-19において、デルタクロンの感染が確認されました。デルタクロンの病原性に関しては、今後の研究結果を待たなければなりません。
- 実際、異なる系統間のSARS-CoV-2ウイルスの組換えについては、以前にも報告があり(Jackson B et al. Cell. 2021)、今後、これまでの異なる株が融合してよりリスクの高い新しい種類の株が誕生する可能性があることを認識する必要があります。
文献1 Philippe Colson et al., Culture and identification of a “Deltamicron” SARS-CoV-2 in a three cases cluster in southern France medRxiv, March クロネッカーデルタとは 08, 2022.
主成分分析とは?[解析例・導出つき]
120人分の数学と理科の点数のダミーデータ
上図はすべての人のスコアをプロットしたものです(データはダミーです)。データの特性として、数学の点数が高ければ、理科の点数も高い傾向があることがわかります。そこで、データのばらつきが最も大きい方向に新たに軸を取り、その軸への射影を考えると、理数系科目の総合力を表すような新たな変数を構成できると考えられます。
PCAによる解析結果(赤い矢印:第1主成分方向、青い矢印:第2主成分方向)
数学的理解
まず、いくつかの変数を定義します。\(p\) 個のパラメータで表される実数のデータ組が \(n\) サンプルだけあるとき、これを \(n\times p\) の行列の形で \(X\) とします。
$$ X = \left( \begin
\(x_\) は、\(クロネッカーデルタとは i\) 番目のサンプルの \(j\) 番目のパラメータの値を表します。
例えば、身長と体重のデータの場合は \(p=2\), 測定した人の数が \(n\) に相当します。
\(j\) 番目のパラメータの平均値を \(\mu_j\,(j=1,2. p)\) とおきます。
\(\mu_j\) を用いて、データの分散共分散行列(variance-covariance matrix)\(S\) を定義します。\(S\) は \(クロネッカーデルタとは p\times p\) の正方行列です。
$$ \begin
\(s_\) は \(k\) 番目と \(l\) 番目の変数の共分散(covariance)を表します。なお、\(k=l\) のときは \(k\) 番目の変数の分散(variance)を表します。\(s_\) の定義より、\(s_ = s_\)が成立します。よって、分散共分散行列 \(S\) は実対称行列になります(\(\text\,S = S^\TT\))。
上式の \(s_\) クロネッカーデルタとは では、偏差の積を \(n\) で割っていますが、調べたい集団全体(母集団)の一部を取り出したサンプル(標本)を用いる場合は、偏差の積の和を \(n-1\) で割って定義される不偏分散(unbiased variance) を用います。 $$ s_ = \dfrac\sum_^n (x_-\mu_k)(x_-\mu_l)\hspace(k,l=1,2. p) $$ 多くの場合、調べたい集団すべてのデータを取ることは困難なので、基本的には不偏分散を用いることになります。
データ解析においては、データの平均値を予め \(\mu_j = 0\) としてから \(クロネッカーデルタとは S\) を計算することが多いです。このとき、 $$ s_ = \dfrac\sum_^n x_x_\hspace(k,l=1,2. p) $$ であり、分散共分散行列 \(S\) は $$ S = \dfracX^\TT X $$ と表せます。ただし、\(\TT\) は転置を意味します。
主成分分析では、データを新たな軸に射影したとき、その分散が最も大きくなるように軸の方向を定めます。分散が最大となる方向を第1主成分方向とよびます。分散共分散行列 \(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおいたとき、第1主成分方向は 分散共分散行列 \(S\) の最大固有値 \(\lambda_1\) の固有ベクトル \(\bm_1\) になります。
便宜上、\(i\) 番目のサンプルのデータセットを行ベクトルの形で \(\bm_i := (x_,x_. x_)\) とします。\(i\) 番目のサンプルの第1主成分得点 \(t_\) は、\(\bm_i\) と \(\bm_1\) の内積として
第2主成分方向は、第1主成分方向 \(\bm_1\) に直交する条件の下で、データを射影したときのばらつきが最大となる方向として決められ、これは分散共分散行列 \(S\) の第2固有値 \(\lambda_2\) の固有ベクトル \(\bm_2\) に相当します。
一般に、第 \(k\) 主成分方向 \((k=1,2. p)\) は、分散共分散行列 \(S\) の第 \(k\) 固有値の第 \(k\) 固有ベクトル \(\bm_k\)になり、\(i\) 番目のサンプルに関する第 \(k\) 主成分得点 \(t_\) は、\(\bm_i\) と クロネッカーデルタとは \(\bm_k\) の内積で表されます。
最後に、\(S\) の固有値に注目して、寄与率・累積寄与率を紹介します。
\(S\) の固有値 \(\lambda_k\) は、第 \(k\) 主成分得点の分散に等しくなります。よって、\(\lambda_k\) が大きければ、第 \(k\) 主成分は元のデータの情報を多く含んでいると解釈できます。
それを相対的に評価したのが寄与率(contribution rate)で、第 \(k\) 主成分の寄与率は以下で表されます。
累積寄与率(accumulative contribution rate)は、第1主成分から第 \(k\) 主成分までがどの程度の情報を持っているかを表す指標で、以下で表されます。
データの標準化
主成分分析を適用する前に、データに対して標準化を行う場合があります。具体的には、各変数について 平均 \(0\), 分散 \(1\) となるようにデータを変換することを言います。標準化したデータの行列 \(Z\) は以下で表されます。
$$ Z = \left( \begin
\(\mu_j,s_\) はそれぞれ \(j\) 番目のパラメータの平均と分散を表します。
で確かに \(0\) クロネッカーデルタとは となっています。また、分散は
平均 \(0\), 分散 \(1\) に標準化したデータはz得点(z-score)とも呼ばれます。
標準化したデータにも、分散共分散行列 \(S\) に相当するものを考えることができ、それは相関行列 \(R\) と呼ばれます。
$$ \begin
対角成分は \(j\) 番目のパラメータの分散を表し、標準化によってすべて \(1\) となっています。また、\(S\) と同様に、\(R\) も実対称行列です。
主成分方向や主成分得点などは、前述した標準化していないデータの分散共分散行列 \(S\) の固有値・固有ベクトルによって求められたのと同様に、相関行列 \(R\) の固有値・固有ベクトルによって求められます。しかし、主成分方向や主成分得点は、標準化しなかった場合の結果とは異なるので、注意が必要です。
標準化をすべきか否かについては、4.3節で考察を行いました。筆者の見解が含まれますが、各変数が同じぐらいの情報を持っている場合は標準化すべきで、そうでない場合は必ずしも標準化は必要ない、ということができそうです。また、主成分分析の使用目的やデータの特徴にも依存します。
数学と理科の点数
120人分の数学と理科の点数のデータを作成します。ダミーデータは、数学と理科の相関行列から乱数を生成し、予め定めた平均値・標準偏差を加えることで生成できます。相関行列は半正定値行列(positive semidefinite matrix)でなければなりません。
120人分の数学と理科の点数のダミーデータ
np.std は標準偏差を求める関数で、ddof=1 とした場合は、不偏分散として計算されます。詳しくは公式サイトを参照してください。
分散共分散行列 \(S\) を計算します。\(S\) の対角成分は、各パラメータの分散に等しくなります。
分散共分散行列 \(S\) の固有値・固有ベクトルを求めます。各固有ベクトルを縦ベクトルとして \(\bm_1,\bm_2\) とすると、 \(V=(\bm_1,\bm_2)\) のように並んでいます。なお、固有値・固有ベクトルは、固有値の大きい順になるように並び替えています。
固有ベクトルの向きは、必ずしも数学と理科の点数が高くなる方向にはなりません。実際に、第1主成分方向は両方の点数が低くなる方向になっています。軸の方向だけが重要なので、主成分方向の正負を入れ替えても問題ありません。
PCAによる解析結果(赤い矢印:第1主成分方向、青い矢印:第2主成分方向)
身長と体重
120人分の身長と体重のダミーデータ
身長と体重では、単位が \(\mathrm\) と \(\mathrm\) で異なります。この場合、各変数を標準化してから解析を行うのが通常です。標準化したデータ クロネッカーデルタとは クロネッカーデルタとは \(Z\) は、以下のように算出できます。
標準化した身長と体重のデータ
a.u. は任意単位(arbitrary unit)のことです。身長と体重を標準化したことで、単位がなくなっているため、このように記載しています。
この \(Z\) を用いて、相関行列 \(R\) を求めます。
相関行列 \(R\) の固有値・固有ベクトルを求めます。
各主成分方向をデータと合わせてプロットすると、以下のような図が得られます。第1主成分方向(赤い矢印)は身長と体重が両方とも高くなる方向になっているため、体格の大きさを表す変数として解釈できます。一方で、第2主成分方向(青い矢印)は、身長が低く体重が重い領域から、身長が高く体重が軽い方向にわたっているので、肥満度を表すような変数として解釈することができます。
肥満度を表す指数としてよく使われるBMI(body mass index)は、身長と体重の2変数から肥満度を表す1変数へ次元が減っているので、次元圧縮の例といえます。 $$ \mathrm := \frac\,[\mathrm]><(\text<身長>\,[\mathrm])^2> $$
アヤメの分類
\(X\) は \(150\times 4\) の行列で、\(4\) つのパラメータのデータは、がく片の長さ・幅・花びらの長さ・幅の順で格納されています。
\(Y\) はアヤメの品種をラベル付けしたベクトルで、\(0\) が setosa, \(1\) が versicolor, \(2\) が virginica になります。
標準化を行ったのち、相関行列 \(R\) を求めます。
相関行列 \(R\) の固有値・固有ベクトルを求めます。
第1主成分方向、つまり最大固有値の固有ベクトルを見ると、がく片の長さ・花びらの幅と長さはすべて符号が \(+\) で、がく片の幅のみ \(-\) になっています。このことから、がく片の細長さと花びらの全体的な大きさを見ることで、アヤメの3品種がおおむね区別できることが予想されます。
第一主成分の寄与率はおよそ \(73.0\,\%\) と高い値を示しています。また、第2主成分までの累積寄与率がおよそ \(95.8\,\%\) であることから、第2主成分までで、データのおおよその特性が説明できるといえます。
各データの第1・第2主成分得点(赤:setosa、緑:versicolor、青:virginica)
各データの第1・第2・第3主成分得点(赤:setosa、緑:versicolor、青:virginica)
1節と同様に、\(p\) 個のパラメータで表される実数のデータ組が \(n\) サンプルだけあるとき、これを \(n\times p\) の行列の形で \(X\) とします。
$$ X クロネッカーデルタとは = \left( \begin
便宜上、\(i\) 番目のサンプルのデータセットを行ベクトルの形で \(\bm_i := (x_,x_. x_)\) とします。\(i\) 番目のサンプル \(\bm_i\) の第1主成分得点 \(t_\) は、 \(p\) 次元の縦ベクトル \(\bm_1=(w_1,w_2. w_p)^\TT\) を用いて、
と表せます。主成分分析では、第1主成分得点 \(t_1\) の分散が最大となるように \(\bm_1\) を決めることになります。第1主成分得点の分散 \(\mathrm[t_1]\) は
とできます。ただし、\(\bm <\mu>= \frac(\sum\limits_i x_,\sum\limits_i x_. \sum\limits_i x_)クロネッカーデルタとは \) は各パラメータの平均値を表す \(p\) 次元の横ベクトルです。\(\mathrm[t_1]\) をさらに変形して、
$$ \begin
を得ます。ここで、\(S\) は分散共分散行列で、1.2節で定義したものと同じです。
以上より、第1主成分方向は、\(\mathrm[t_1] = \bm_1^\TT S\bm_1\) を最大とするような \(\bm_1\) に相当することがわかりました。現状、\(\bm_1\) が大きくなれば、第1主成分得点の分散 クロネッカーデルタとは クロネッカーデルタとは \(\mathrm[t_1]\) はいくらでも大きくなってしまいます。そこで、\(\|\bm_1\|_2 =1\) の制約を課すことで、分散の発散を防ぎます。このような制約付きの極値問題は、ラグランジュの未定乗数法によって求めることができます。ラグランジュ乗数を \(\alpha\) として、目的関数 \(L(\bm_1,\alpha)\) は
と表せ、求める \(\bm_1\) は以下の2式を満たします。
上式の第2式は、\(\bm_1^\TT\bm_1 - 1 = 0\) であり、これは制約条件そのものです。
したがって、求める \(\bm_1\) は、分散共分散行列 \(S\) の固有ベクトルになることがわかります。また、このとき、
より、第1主成分得点の分散は固有値に等しいことがわかります。
以上より、第1主成分方向は、分散共分散行列 \(S\) の最大固有値の固有ベクトルであることがわかりました。
改めて、分散共分散行列 \(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおくと、\(\bm_1 = \bm_1,\,\mathrm(t_1) = \lambda_1\) となります。
第2主成分方向については、第1主成分方向に直交する条件下で、第2主成分得点の分散を最大にする方向として決められます。これは、第1主成分方向を求めた際に用いたラグランジュ未定乗数法の制約条件に、最大固有値の固有ベクトルとの直交性を追加することで求めることができます。ラグランジュ乗数を \(\alpha_1,クロネッカーデルタとは \alpha_2\) として、目的関数 \(L(\bm_2,\alpha_1,\alpha_2)\) は
$$ L(\bm
と表せます。第1主成分を求めた時と同様に、求める \(\bm_2\) は以下の3式を満たします。
第2式は係数ベクトルの正規化に関する条件 クロネッカーデルタとは \((\bm_2^\TT\bm_2 = 1)\)、第3式は第1主成分方向との直交性を表します \((\bm_1^\TT\bm_2 = 0)\) 。
となります。左から \(\bm_1^\TT\) をかけると、
$$ \begin
よって、\(クロネッカーデルタとは \alpha_2 = 0\) となるので、\(\partial L/\partial \bm_2\) は第1主成分方向を求めた時と同じ形であり、第2主成分方向は、\(S\) の第2固有値 \(\lambda_2\) の固有ベクトル \(\bm_2\) となります。
同様に制約条件を増やしていくことで、一般に第 \(k\) 主成分方向は、第 \(k\) 固有値 \(\lambda_k\) の固有ベクトル \(\bm_k\) であることがわかります。
ベクトル微分
まず、\(クロネッカーデルタとは p=2\) の場合について考えます。目的関数 \(L(\bm,\alpha)\) は
$$ \begin
\(L(\bm,\alpha)\) の \(w_1,w_2\) の偏微分は、\(s_ = s_\) に注意すると
次に、一般の \(p\geq 2\) について考えます。\(\partial (\bm^\TT\bm)/\partial \bm = 2\bm\) は \(p=2\) の場合と同様に行うことで容易に導出できるので、ここでは \(\bm^\TT S\bm\) の項のみについて考えます。具体的に展開すると、
$$ \begin
\(\bm^\TT S\bm\) の \(w_q\,(1\leq q\leq p)\) による偏微分を考えます。このとき、シグマの中の \(w_q\) クロネッカーデルタとは の項だけ \(1\)、それ以外は \(0\) になるので、クロネッカーのデルタ \(\delta_\) を用いて、
クロネッカーのデルタは以下で定義されます。 $$ \delta_ = \begin 1 & (i=j) \\ 0 & (i\neq j) \end $$
となります。最終行は、\(S\bm\) の \(q\) 行目を意味します。以上より、
分散共分散行列の性質
主成分分析は、分散共分散行列の固有値問題として帰着します。その分散共分散行列の性質を詳しく見てみましょう。
分散共分散行列 \(S\) は以下で表されます(再掲)。
$$ \begin
\(S\) の固有値を \(\lambda_1\geq\lambda_2\geq\cdots\geq\lambda_p\), 対応する固有ベクトルを \(\bm_1,\bm_2. \bm_p\) とおきます。このとき、以下の性質を満たします。
- 固有値は非負の実数(\(\lambda_k\geq 0\))
- 異なる固有値の固有ベクトルは直交(\(\bm_k^\TT\bm_l = 0\,(k\neq l)\))
分散共分散行列 \(S\) は平均との偏差の積を計算しているので、データを表す行列 \(X\) の各変数の平均値を予め クロネッカーデルタとは クロネッカーデルタとは \(0\) としても、 \(S\) 自体には変化がありません。このとき、\(S\) の第 \(k,l\) 成分は
と表せます。なお、スカラー倍しても固有ベクトルは変わらないので、以下の証明では \(S=X^\TT X\) として考えます。
性質1:固有値は非負の実数
\(S=X^\TT X\) の固有ベクトルを \(\bm_k\,(k=1,2. p)\) 、固有値を \(クロネッカーデルタとは \lambda_k\) とおくと、
が成立します。左から \(\bm_k^\TT\) をかけて式を変形すると、固有値 \(\lambda_k\) が非負であることが示されます。
$$ \begin
固有値がすべて非負の実数になるのは、半正定値行列について成り立つ性質です。詳しくは、学びTimesさんの記事に詳しく書かれています。
性質2:異なる固有値の固有ベクトルは直交
\(S\) の異なる固有値を \(\lambda_k,\lambda_l\,(k,l=1,2. p;\lambda_k\neq \lambda_l)\)、対応する固有ベクトルを \(\bm_k,\bm_l\) とおきます。
上式に左から \(\bm_l^\TT\) をかけます。
\(S\) が対称行列(\(\text\,S^\TT = S\))であることを用いて
$$ \begin
したがって、異なる固有値の固有ベクトルの内積は \(0\)、すなわち固有ベクトルは互いに直交することが示されました。
異なる固有値に対応する固有ベクトルが直交するのは、任意の対称行列について成り立つ性質です。詳しくは、学びTimesさんの記事に詳しく書かれています。
標準化の使い分け
1.3節で、データを平均 \(0\), 分散 \(1\) に標準化してから主成分分析を行う場合について説明しました。では、具体的にどういった場合に標準化すべきなのか、考察したいと思います。
標準化においてポイントとなるのは、すべてのパラメータの分散が \(1\) に規格化されるという点です。1節などで説明した通り、主成分分析では、分散を情報量の大きさと捉えています。よって、標準化によって分散の値を \(1\) に規格化することは、各パラメータを平等に扱うことに対応していると考えられます。主成分分析を行う目的やデータの特徴にもよりますが、各変数が同じぐらいの情報を持っている場合は標準化すべきで、そうでない場合は必ずしも標準化は必要ない、ということができそうです。
次に、必ずしも標準化を行うべきとは言えないケースとして、Qiitaの記事より、夕焼けのRGB画像に対して主成分分析を行ったものを紹介します。標準化を行った場合と行わなかった場合を比較すると、標準化した場合の第一主成分の寄与率は、標準化を行わなかった場合と比べておよそ \(11\,\%\) ほど低下してしまいました。これは、元の画像において赤の分散が最も大きいことに起因します。夕焼けの画像に赤が多く含まれることは、捨てるべき情報とは言えないので、必ずしも標準化が必要とはいえません(青・緑の成分について詳しく考えたい場合はその限りではありません)。
このように、標準化が必要かどうかは、データの特徴や主成分分析の使用目的に依存します。まとめると、最初の例のように、データの特性を説明する上で、複数の変数が寄与しており、なおかつ変数間の分散の差が大きい場合は、それらを平等に扱うために標準化が必要です。対して、変数間の分散の差それ自体が重要な情報を持っており、標準化によってその情報が失われてしまう場合は、必ずしも標準化すべきとは言えません。
βダイバージェンスについて、さっと語る
自然科学
確率分布 \(\mathbf, \mathbf\) のβダイバージェンスは、以下のように定義される。
また、 \(\mathbf, \mathbf\) がともに離散分布であり、確率質量関数を用いて \(\mathbf=[p_1, p_2, \ldots, p_n], \mathbf=[q_1, q_2, \ldots, q_n]\) と表せるとき
定義では、βの範囲から \(0, 1\) を除いたが、 \(\beta=0,1\) でのダイバージェンスも定義することができる。
一般化KLダイバージェンス
を用いて \(\beta\to 1\) の極限を計算すると
これは、一般化KL(Kullback-Leibler)ダイバージェンス呼ばれる指標である。
板倉斎藤擬距離
また、 \(\beta\to クロネッカーデルタとは 0\) の極限を計算すると
となり、板倉斎藤(IS)擬距離が導かれる。
この指標は音源分離など、スケール不変性が特徴的な分野でよく用いられる。(→別記事)
と、二乗誤差関数(L2-norm)が導かれる。
(補足)関係式 (1) の証明
関係式 (1) を考えるに際し、まず、以下の極限を考える。
より、不定形である。
同様にロピタルの定理を用いることで、関係式 (1) が導出できる。
Cichocki A and Amari S. Families of α-, β- and γ-divergences: flexible and robust measures of similarities. Entropy, 12, 1532-1568, 2010.
コメント