工繊大の塚本です.

In article <cjqf5t$sa3$1@caraway.media.kyoto-u.ac.jp>
"Hiroyuki" <smine13@hotmail.com> writes:
> In article <041002020203.M01301379@ims.kit.ac.jp>
> Tsukamoto Chiaki <chiaki@kit.ac.jp> writes:
> > 直線からの距離の二乗の和は重心を通る直線について最小になる
> > ことが分かります.
> 
> これでパラメーターは3つ減らせます。うれしい!

いえ, S^2 の接空間は 4 parameters で, そのうち 2つ減って
 2 parameters になるのです.

> あ、おにりんさんがご指摘くださった多変量解析の
> 主軸を求めるという方法は、私、多変量解析をま
> じめに勉強したことがないので、主軸って何?とい
> う人ですから、最初からギブアップです。(^^;;

これは勉強されると良いと思います. 重心を原点にとってデータを
ベクトル X_a  (a = 1, 2, ... , N)
        ┌      ┐
        │X_{1a}│
  X_a = │X_{2a}│
        │X_{3a}│
        └      ┘
で表します. 求める直線の単位方向ベクトル u  ((u, u) = 1)
        ┌   ┐
        │u_1│
    u = │u_2│
        │u_3│
        └   ┘
をどう求めるかというと, Σ_a (X_a - (X_a, u) u, X_a - (X_a, u) u)
を最小にするように取れば良い訳ですが,

  Σ_a (X_a - (X_a, u) u, X_a - (X_a, u) u)
  = Σ_a (X_a, X_a) - Σ_a (X_a, u)^2

ですから, (u, u) = 1 という条件付の Σ_a (X_a, u)^2 の
最大値問題を解くことになります.

  d((u, u) - 1) = 2(u, du) = 2 Σ_i u_i du_i,
  d(Σ_a (X_a, u)^2) = 2 Σ_a (X_a, u)(X_a, du)
                     = 2 Σ_i (Σ_j (Σ_a X_{ia} X_{ja}) u_j) du_i,

ですから, ある実数λについて

  d(Σ_a (X_a, u)^2) - λ d((u, u) - 1) = 0,

即ち,

  Σ_j (Σ_a X_{ia} X_{ja}) u_j) = λ u_i  (∀i)

を満たす u を求めることになります. これは Y = X X^*

  Y_{ij} = Σ_a X_{ia} X_{ja}

という対称行列の固有ベクトルを求めることに他なりません.
(この対称行列は普通のデータについては正定値で), 最大値
問題の解, つまり最小二乗法に対応する解としては, 最大の
固有値λに対する固有ベクトル u  ((u, u) = 1) を取ること
になります.

数学的にはこういうことですが, 実際にはこのようなものを
求めるパッケージはどこにでも転がっている筈ですから, お
探しになって見られれば良いでしょう.
-- 
塚本千秋@応用数学.高分子学科.繊維学部.京都工芸繊維大学
Tsukamoto, C. : chiaki@kit.ac.jp