ちょっと見つけた参考サイト

本日みつけた、面白かったサイトをあげておく。

●この浅野氏のサイト統計学的な方法を画像処理につかうという方法で面白かったです。

●マハラノビスの汎距離の説明はこちら

●そして、最後に統計言語Rについての記事で、著者が大学を移られて一時消えていたサイトです。

距離の概念の整理の再挑戦

昨日諦めたところから、今度は「距離」の概念という考え方に基づいて、再度整理してみた。このファイルのPDFをここに格納した。

というか、そもそもLaTexで作って、mimeTeX用に変換したので・・・・

距離の概念が統計的に大事

ある対象Pに対して、幾つかの測定値の組 (x_1,x_2,\ldots ,x_n) が得られたとする。この測定値の組を対象Pの座標として考える事が多変量解析の基本。そして、対象と対象との関係や、変数と変数との関係を、点と点の距離で表すことによって、数学的な解析に置き直す事ができる。とっても大事な概念だと思う。判別分析や主成分分析とも関係するし・・・・

距離の概念の基本的な考え方

さて、距離を考える上での基本的な考え方は、ユークリッド距離の考え方である。ユークリッド距離では、一般に点PP=(x_1,x_2,\ldots ,x_n) のようにn個の座標値を持つならば、点Pから原点Oへの距離は以下のように表すことが出来る。

d(O,P) = \sqrt{x_1^2 + x_2^2 + \ldots + x_n^2}

また2点PQとの間の距離は、 P=(x_1,x_2,\ldots,x_n) Q = (y_1,y_2,\ldots,y_n)とすると以下のように表すことが出来る。

d(P,Q) = \sqrt{(x_1-y_1)^2 + (x_2-y_2)^2 + \ldots + (x_n-y_n)^2}

測定値にバラツキがある場合の距離

このようなユークリッド距離は単純だが、実際にデータを取った場合は、そう単純ではない。ユークリッド距離の計算には、それぞれの座標が平等に寄与している事が前提である。ところが実際の測定値は元々大きなバラツキを示す測定値もあれば、小さなバラツキを示す測定値もある。

例えば図のように変数x_1のバラツキの方が変数x_2のバラツキよりも大きな分布を示す場合を考えよう。それぞれの測定値で同じ1という値が得られたとする。元々小さいバラツキを示すx_2という変数における1という値の重要度の方が、元々大きいバラツキを示すx_1における1という値よりも重要と考えるのが順当だろう。

このように、それぞれの測定値のバラツキによって同じ1という値の意味、つまり単位の重要度が異なると考えるとすると、それぞれの座標値を測定値の標準偏差で割る。つまり、以下のように点Pという値があるならば、


P=\begin{pmatrix} \frac{x_{1}}{\sqrt{s_{1}}} & \frac{x_{2}}{\sqrt{s_{2}}} \end{pmatrix}

と変換してあげることで、単位当たりの重要度を同じに揃えようという考え方である。そうすれば、先のユークリッド距離が適用できる。

このように標準化した場合、点Pと原点Oとの距離は以下のように表す事が出来るはずである。

d(O,P)=\sqrt{\left(\frac{x_{1}}{\sqrt{s_{1}}\, }\right)^{2}+\left(\frac{x_{2}}{\sqrt{s_{2}}\, }\right)^{2}}=\sqrt{\frac{x_{1}^{2}}{s_{1}}+\frac{x_{2}^{2}}{s_{2}}}\,

さらに測定値に相関がある場合の距離

実際のデータをみると、これでも足りない。それは変数間の相関関係である。今度は図のように2つの変数の分布に相関関係がある場合を考えてみよう。例えば、「身長」と「脚の長さ」のように、変数x_1x_2の2つの測定値があり、それが相関するという事である。こうした場合はどうしたら良いだろうか?


先の考え方と同様にするためには、まず最もデータのバラツキを表現する主軸y_1と、それに直交する軸y_2を作り、ある点Pをその新しい直交軸y_1y_2の2軸で表現すれば良いだろう。もし点Pを新しい座標軸でP=(y_1,y_2)と表現出来たとすると、原点Oから点Pまでの距離は、新しい軸の標準偏差s_1x_2を利用して、以下のように「単にバラツキが違う」だけの方法と同じように表現すれば良いだけになるはずである。


d(O,P)=\sqrt{\frac{y_{1}^{2}}{s_{1}}+\frac{y_{2}^{2}}{s_{2}}}\,

まずは色々と材料を準備しよう

料理を始める前に、まずは色々と定義をして準備にとりかかることにしよう。まずは、得られたデータの組を行列で表す。変数x_1x_2の2つの測度に関するn組のデータを以下のように行列Xで表すとする。

X=\left( \begin{array}{cc}x_{11} & x_{21}\\x_{12} & x_{22}\\ \vdots & \vdots\\ x_{1n} & x_{2n} \\ \end{array} \right)


ここで、新しい座標軸としてy_1y_2が出来たと仮定しよう。ちょっとだけ強引かもしれないが仮定するのである。このy_1y_2x_1x_2と同様には直交していると考えるのは順当と思う。この新しい座標軸での値を持ってきて下のように行列Yで表すとする。


Y=\left(\begin{array}{cc}y_{11} & y_{21} \\y_{12} & y_{22} \\\vdots & \vdots \\y_{1n} & y_{2n} \\\end{array}\right)

どうなっていたら嬉しいの?


さて、準備した所で・・・つぎにどうなっていたら良いのかを考えることにする。まず、元のデータの相関行列はどのように表せるか? このままだと基準化していないので、正確には分散・共分散行列だが、データをあらかじめ平均からの偏差に変換(x=x-\overline{x})してあると考えておけば問題ない。

X^TX=\left( \begin{array}{cccc}x_{11} & x_{12} & \cdots & x_{1n}\\x_{21} & x_{22} & \cdots & x_{2n}\\ \end{array}\right)\left( \begin{array}{cc}x_{11} & x_{21} \\x_{12} & x_{22} \\ \vdots & \vdots \\x_{1n} & x_{2n} \\ \end{array}\right)=\left(\begin{array}{cc}r_{x_{1}} & r_{x_{12}} \\r_{x_21} & r_{x_{2}} \\ \end{array}\right)=R_x

それに対して、勝手に仮定した新しい座標での相関行列(正確には分散・共分散行列)はどうなるか?

Y^TY=\left( \begin{array}{cccc}y_{11} & y_{12} & \cdots & y_{1n}\\y_{21} & y_{22} & \cdots & y_{2n}\\ \end{array}\right)\left( \begin{array}{cc}y_{11} & y_{21} \\y_{12} & y_{22} \\ \vdots & \vdots \\y_{1n} & y_{2n} \\ \end{array}\right)=\left(\begin{array}{cc}r_{y_{1}} & r_{y_{12}} \\r_{y_21} & r_{y_{2}} \\ \end{array}\right)=R_y


ここで、新しい座標軸上では2つの変数のデータが無相関であるのが嬉しい。つまり、r_{y_{12}}r_{y_{21}}0となるようになっていれば、単に変数によってバラツキが違う場合と同様に距離を計算できるはずである。

なので、新しい座標軸での相関行列を対角化(対角成分以外をゼロに)できるように新しい座標軸を設定すれば良いのである。

いきなり直感的な答えを仮定する

さて、ここではいきなり直感的に答えを出して、それが本当だ!という説明で理解したことにしたい。

答えは、

現在の座標系でみた相関行列R_x固有ベクトルの方向に、新しい座標系を取れば、新しい座標系での相関行列R_yの対角成分はゼロ、つまり相関なしになる。

固有ベクトルを座標軸にした表現をして相関行列を求める

まずは、固有ベクトルの方向の成分で表示したら、新しい座標軸上の相関係数行列はどうなるかを考えよう。ここで、ぞれぞれの固有ベクトルは長さが1で、お互いに直交すると考えておく。まあ、座標軸とするのだから当然ですが・・・

Qを新しい軸{p_{1}}{p_{2}}の成分で表すとすると、図のように{p_{1}}=(p_{11},p_{12}){p_{2}}=(p_{21},p_{22})という2つのベクトルに下ろした足の長さが、新しい軸での成分である。

足の長さを求めるには内積を用いて


 q\cdot  \p_{1}=\begin{pmatrix} x_{1q} & x_{2q}\end{pmatrix} \begin{pmatrix} p_{11} \\ p_{12}\end{pmatrix}  = y_1\\ q \cdot  p_{2}=\begin{pmatrix} x_{1q} & x_{2q}\end{pmatrix} \begin{pmatrix} p_{21} \\ p_{22}\end{pmatrix} =y_2

これをひとつの式で表すと

\begin{pmatrix} x_{1q} & x_{2q}\end{pmatrix} \begin{pmatrix} p_{11} & p_{21} \\ p_{12} & p_{22}\end{pmatrix} =\begin{pmatrix} y_{1} & y_{2}\end{pmatrix}


すべての点について表すと

\begin{pmatrix} x_{11} & x_{12} \\ x_{21} & x_{22} \\ \cdots  & \cdots  \\ x_{n1} & x_{n2}\end{pmatrix} \begin{pmatrix} p_{11} & p_{21} \\ p_{12} & p_{22}\end{pmatrix} =\begin{pmatrix} y_{11} & y_{12} \\ y_{21} & y_{22} \\ \cdots  & \cdots  \\ y_{n1} & y_{n2}\end{pmatrix}


つまり

Y=XP

ここまできたら、次は新しい座標軸でのデータ行列Yの相関を求めると、

Y^tY=(XP)^tXP=P^tX^tXP=P^tR_xP

つまり、新しい座標系での相関行列R_yR_y=P^tR_xPと表せるわけである。

ここで、P_1P_xが元々のR_x固有ベクトルだから、P^tR_xPが対角化されるという事を示すのだが、その前に、そもそも固有ベクトルゆえの性質を利用するので・・・また一旦脇道にそれて・・・。

固有行列の特徴から対角化される事を確認する

そもそも相関行列の固有ベクトルなのでR_xP=\lambda Pが成り立つ。つまり以下のように表せる。

 \begin{pmatrix} r_{1} & r_{12} \\ r_{21} & r_{2}\end{pmatrix} \begin{pmatrix} p_{11} \\ p_{12}\end{pmatrix} =\lambda _{1}\begin{pmatrix} p_{11} \\ p_{12}\end{pmatrix}  \\ \\\begin{pmatrix} r_{1} & r_{12} \\ r_{21} & r_{2}\end{pmatrix} \begin{pmatrix} p_{21} \\ p_{22}\end{pmatrix} =\lambda _{2}\begin{pmatrix} p_{21} \\ p_{22}\end{pmatrix}


これをひとつの行列にまとめると


\begin{pmatrix} r_{1} & r_{12} \\ r_{21} & r_{2}\end{pmatrix} \begin{pmatrix} p_{11} & p_{21} \\ p_{12} & p_{22}\end{pmatrix} =\begin{pmatrix} \lambda _{1}p_{11} & \lambda _{2}p_{21} \\ \lambda _{1}p_{12} & \lambda _{2}p_{22}\end{pmatrix} =\begin{pmatrix} p_{11} & p_{21} \\ p_{12} & p_{22}\end{pmatrix} \begin{pmatrix} \lambda _{1} & 0 \\ 0 & \lambda _{2}\end{pmatrix}


つまり

R_xP=P \Lambda

さてさて脇道から戻って・・・


Y^tY=(XP)^tXP=P^tX^tXP=P^tR_xP


であり、

R_xP=P\Lambda


ここで固有ベクトルはお互いに直行するので、P^tP=Iなので

Y^tY=P^tR_xP=P^tP\Lambda=\Lambda=\begin{pmatrix} \lambda _{1} & 0 \\ 0 & \lambda _{2}\end{pmatrix}

ほらね。新しい座標系ではデータの相関がなくなり、新座標軸のバラつきが残った形になっている。

ちなみに、\lambda _{1}は第一軸のバラつきを意味し、\lambda _{2}は、第二軸のバラつきを意味している。

さらに・・・

本当は、これはマハラノビスの汎距離と言われるもので、D^2=x^tR^{-1}x と表す事ができる。そうすると、バラツキがあろうが、相関しようが統一して表現できるのだが、そのあたりはまた今度・・・・ながかった・・・・。