主成分分析の例題 ~ 頂点群にフィットする直線 ~

点群にフィットする直線
  3次元空間に散りばめられた点群
点群
と距離の二乗の総和が最小になる直線 (点群にフィットする直線) を求めよ。
点群にフィットする直線の図

解説
1. 距離の二乗の総和
  点 $\mathbf{r}_{0}$ を通り、 方向ベクトルが $\mathbf{d}$ の直線上の任意の点 $\mathbf{x}$ は、
と表される ($t$ はパラメータ)。
$\mathbf{d}$ が規格化されているとすると、 すなわち、
$$ \tag{1} $$ が成り立つとすると、 この直線と点群 の中の一点 $\mathbf{r}_{\alpha}$ との距離の二乗 $D_{\alpha}$ は、
と表せる (点と直線の距離を参考)。 ここで $(\cdot, \cdot)$ は標準内積を表す記号である。 また $\| \cdot \|$ は内積によるノルムを表す記号である。
  したがって、 各点と直線との距離の二乗の総和 $S$ は、
$$ \tag{2} $$ である。
2. 重心を通る直線
  問題を簡単にするため、直線の通る点 $\mathbf{x}_{0}$ を固定する。 どの点に固定しても良いが、 実際に工学で用いる場合には、 固定する点を頂点群の重心にすることが多い。 すなわち、
である。 そこで、 以下では重心を通り点群にフィットする直線 (重心を通る直線の中で距離の二乗の総和 $S$ を最小にする直線) を求めることにする。
  $\mathbf{x}_{0}$ が固定されたので、 $(2)$ の一つ目の総和
は定数である。 したがって、$(2)$ を最小化する問題は二つ目の総和
$$ \tag{3} $$ を最大にする問題に帰着される。 ここで、転置標準内積の間に
が成り立つこと、および 内積の諸性質を用いて $(3)$ を書き換えると、
$$ \tag{4} $$ となる。ここで行列 $M$ を
と定義した。 $M$ はモーメント行列と呼ばれる。
  $(4)$ の右辺の最大値を求める問題は、 二次形式の最大値を求める問題である。 このように $(3)$ の $S$ を最小化する問題は、 二次形式を最大化する問題に帰着される。
3. 二次形式の最大化
  転置行列の諸性質を用いると、
が成り立つことが分かるので、 $M$ は実対称行列である。 実対称行列は正規行列の一種であり、 正規行列の固有ベクトルによって、 正規直交基底を構成することができるので、 そのように構成した $M$ の固有ベクトルを $\{ \mathbf{v}_{1}, \mathbf{v}_{2}, \mathbf{v}_{3}\}$ と表すと、
が成り立ち (ここで $\delta_{ij}$ はクロネッカーのデルタ)、 $\mathbf{d}$ は $\mathbf{v}_{i}$ によって展開できる。すなわち、
と表せる ( $c_{i}$ は係数 )。 また、$\mathbf{v}_{i}$ は固有ベクトルであるので、
が成り立つ。 ここで、$M$ の固有値 $\lambda_{i}$ は大きい順に
と並んでいるものとする。 以上を用いると、
が成立することが分かる。 これと $(1)$ により、
が成立することを用いると、
を得る。 したがって、 $\left(\mathbf{d}, M \mathbf{d} \right) $ の最大値は $M$ の最大固有値 $\lambda_{1}$ である。
  $\big(\mathbf{d}, M \mathbf{d} \big)$ が最大値 $\lambda_{1}$ になるのは
$$ \tag{5} $$ のときである。 すなわち、$\mathbf{d}$ が $M$ の最大固有値の固有ベクトル $\mathbf{v}_{1}$ に等しいときである。
まとめ
  以上から、 $(3)$ 式
は、$(5)$ のときに最大になることが分かった。 ゆえに、 $(4)$ 式
を見ると分かるように、 $S$ が最小化されるのは $(5)$ のときである。
  まとめると、 重心を通る直線の中で 点群との距離の二乗和 $S$ を最小化する直線は、 直線の向きが モーメント行列 $M$ の最大固有値の固有ベクトル $\mathbf{v}_{1}$ を向くときであることが示された。

主軸
  モーメント行列の最大固有値を与える固有ベクトルを第一主軸という。