■楕円近似について

 
 例えば,惑星は太陽をひとつの焦点とする楕円軌道をとるが,そのようなデータに対して楕円軌道をあてはめたいという要望は多いだろう.そこで,今回のコラムでは,楕円近似について,3通りの方法を紹介することにした.
 
 楕円近似に用いるデータは,ほぼ楕円上に乗ると思われるデータ
    x,y          x,y         x,y 
    2,0         38,12        -6,17
    7,-2         34,13        -9,14
    14,-3        31,16        -10,12
    18,-4        26,17        -9,8 
    23,-4        19,19        -7,5 
    31,-3        13,20        -3,3 
    38,-1        7,20        0,1 
    41,4         2,19 
    40,8         -3,18
である.
 
 このサンプルデータでは,楕円の全周にわたって25個の2元データ(x,y)が得られているが,場合によっては,弧の一部だけに基づいて楕円を確定することが要請されることもあるだろう.今から200年前,ガウスはそのようなデータに最小2乗法を適用して小惑星セレスの発見を導いた.最小2乗法は200年にわたる英知の結晶ともいえるのだが,まず,この逸話から紹介することにしたい.
 
===================================
 
【1】小惑星セレスの発見と最小2乗法
 
 今日,小惑星は火星と木星のあいだの空間に幾百となく散在していることが知られています.天文学史上,最初に発見された小惑星はセレスで,セレスは第1号であり,かつ,最大の小惑星です.セレスは1801年1月1日の夜,イタリアの天文学者ピアッツィによって発見されました.ピアッツィはボーデの予測した位置にある小惑星の運行を追い続けましたが,2月初旬,この天体は太陽に接近しそのまぶしい光に消されてしまったために観測できなくなってしまいました.
 
 ピアッツィが観測した41日間だけのデータ(9°の弧)だけを使って楕円軌道を確定することは,当時の天文学者たちの計算能力の限界を超えていました.なぜなら,それまでの軌道決定法は豊かな資料に基づくものであり,セレスの場合,少ないデータからケプラー運動を推論することが要請されたからです.そこで,24才の若きガウスはたった3回の完全な観測からその軌道を計算し,太陽の近くで姿を消してしまったセレスがその年の終わり頃再び姿を現す位置を計算しました.1801年12月31日,セレスはガウスの予測した位置に再び姿を現しました.
 
 その位置は粗い円軌道近似で推定したものよりも7°以上も東にずれていましたから,結局,ガウスの予測は非常に正確であることがわかり,若いガウスに最初の大きな名声を与えることになりました.この成果は予知と観測とニュートン力学による軌道計算の劇的な合流点を表す天文学史上の事件であったと考えられるのですが,いまでもガウスの最も知られた業績の一つになっています.セレス以降,ドイツでは小惑星の発見ラッシュとなり,1802年に2番目の小惑星パラス,1804年に3番目の小惑星ジュノー,1807年に4番目の小惑星ベスタが発見されています.
 
 1794年,ガウスは18才のときすでに最小2乗法を考案していたと記録されていますが,ガウスによって天体の運動・軌道を決定するための新しい方法として創始され,ある時刻の位置を予測して再発見の手がかりを与えた方法が最小2乗法なのです.当時の望遠鏡の解像度を考えると,位置の予測なしに再発見は難しかったと思われますが,小惑星セレスの再発見によって最小2乗法は有名になり,実用に供されるようになりました.そして,1821年と1823年にガウスは最小2乗法を発表し,1820年代までに今日広く使われている最小2乗法の基本的な大筋が完成しています.
 
 また,ガウスはこの過程で実験データの期待値からのバラツキが一定の法則に従うことに注目し,その分布を理論的に計算しました.この分布が正規分布(ガウス分布)で,ガウスの結果を厳密に証明したものが中心極限定理です.正規分布はあらゆる種類のデータ解析において中心的な役割を果たしています.測定誤差の基礎となる誤差論も19世紀の始めガウスによって始められ,これが端緒となって数理統計学が進歩しました.換言すれば,数理統計学は正規分布を中心として展開され,ガウス以来200年,誤差,変動,撹乱,ばらつき,偏りのあるデータを適切に処理し情報を抽出する方法を開発してきたのです.
 
【補】小惑星(アステロイド)の中には,セレス,パラス,ジュノーのように直径が数百キロメートルのものもありますが,直径が1キロにも満たないものもあります.天体観測の精度があがるにつれて,ますます小さい天体が発見されていますが,どこまでが小惑星で,また,どこからが宇宙塵になるか区別することは天文学者にとっては興味のあることでしょう.しかし,私が調べた限り,その違いの明確な取り決めはなされていないようです.
 
===================================
 
【2】多変量の線形最小2乗法を用いる方法
 
 測定点(x,y)に対して,測定値zが得られているデータ(x,y,z)に,関数
  z=f(x,y)
をあてはめ,関数fに含まれる未定係数を求めることを考えよう.
 
 前述のサンプルデータには測定値zがないので,zi=0を加える,すなわち(xi,yi,0)のように,測定値ziをダミー変数のようにして用いることにする.
 
    x,y,z         x,y,z        x,y,z 
    2,0,0        38,12,0       -6,17,0
    7,-2,0        34,13,0       -9,14,0
    14,-3,0       31,16,0       -10,12,0
    18,-4,0       26,17,0       -9,8,0 
    23,-4,0       19,19,0       -7,5,0 
    31,-3,0       13,20,0       -3,3,0 
    38,-1,0       7,20,0       0,1,0 
    41,4,0        2,19,0 
    40,8,0        -3,18,0
 
 最小2乗法の教科書は多数出版されているが,大抵,独立変数は1つに限られ,目的関数
  s=Σ{yi−f(xi)}^2
を最小化する場合を考えて解説している.
 
 それに対して,独立変数が多変数の場合も考えられよう.この場合は目的関数をz軸方向の残差2乗和
  s=Σ{zi−f(xi,yi)}^2
とすることになる.通常の最小2乗法プログラムを多変数問題を解くことができるように書き換える必要がでてくるが,計算原理は1元でも2元でも独立変数が多変数の場合でもほぼ同じである.
 
 楕円モデル式
  f(x,y)=a1x^2 +a2xy+a3y^2+a4x+a5y−1
を変形すると
 z+1=a1x^2 +a2xy+a3y^2+a4x+a5y
すなわち,ajに関しての線形結合
  F(z)=a1Φ1(x,y)+a2Φ2(x,y)+・・・+a5Φ5(x,の形に書くことができる.これに対して,多変量線形最小2乗法によるあてはめを行った.
 
===================================
 
[計算結果]

 
[ DEFINED EQUATION ]
y+1= P(1)*x(1)*x(1)+P(2)*x(1)*x(2)+P(3)*x(2)*x(2)+P(4)*x(1)+P(5)*x(2)
回帰係数とその95%信頼区間
P(1)= -8.15478E-03  S.E.= 2.93847E-04  -8.76795E-03 - -7.54161E-03
P(2)= -.0102795   S.E.= 2.86993E-04  -.0108783 - -9.68061E-03
P(3)= -.0376745   S.E.= 1.33847E-03  -.0404675 - -.0348816
P(4)= .345066    S.E.= .0111774    .321742 - .36839
P(5)= .774031    S.E.= .0251644    .72152 - .826541
残差
No.      ADJUSTED Y  EXPECTED Y  RESIDUAL
1       1       .657513    .342487
2       1       .461031    .538969
3       1       1.00316   -3.16334E-03
4       1       .610247    .389753
5       1       .869437    .130563
6       1       1.15513   -.155133
7       1       .915923    .0840769
8       1       1.24702   -.247021
9       1       1.24664   -.246637
10      1       .5128     .4872
11      1       1.45719   -.457193
12      1       .501492    .498508
13      1       1.18613   -.186134
14      1       1.00756   -7.56073E-03
15      1       .845833    .154167
16      1       .987547    .0124531
17      1       1.37296   -.372964
18      1       1.1725    -.1725
19      1       .955115    .0448847
20      1       .9813     .0186996
21      1       .830632    .169368
22      1       .755065    .244935
23      1       .473025    .526975
24      1       .966945    .0330548
25      1       .736356    .263644
 線形最小2乗法では計算は1秒以内で完了したが,後述する非線形最小2乗法に比べて,あてはめ精度がよくないのが欠点である.
 
 また,陰関数の描画サブルーチンを使って
  f(x,y)=a1x^2 +a2xy+a3y^2+a4x+a5y−1=0
を(馬鹿正直に)描こうとすると時間がかかるという欠点もある.
 
 楕円の長半径・短半径をそれぞれa,b,長軸とx軸のなす角度をθ,楕円の中心を(x0,y0)として,楕円モデル式を
  f(x,y)=a1x^2 +a2xy+a3y^2+a4x+a5y−1=0
ではなく,
  {(x−x0)cosθ+(y−y0)sinθ}^2/a^2+{(x−x0)sinθ−(y−y0)cosθ}^2/b^2=1
とすると,楕円を媒介変数表示の形に表せるので,描画が短時間で済むようになる.
 
 そこで,
  a1,a2,a3,a4,a5 ←→ a,b,θ,x0,y0
双方向の変換式を用意しておきたいものである.ところが,
  a1,a2,a3,a4,a5 ←  a,b,θ,x0,y0
は易しいものの,逆方向の変換
  a1,a2,a3,a4,a5  → a,b,θ,x0,y0
は結構面倒であった.自分で式を立ててみれば,この問題の面倒さがわかるので,係数変換式については読者の演習問題としよう.
 
[補]陰関数の描画については
  拙著:「最小2乗法その理論と実際」,山海堂
を参考にされたい.
 
===================================
 
【3】多変量の非線形最小2乗法を用いる方法
 
 ここでは,モデル式を最初から媒介変数表示しやすい形
  f(x,y)={(x−x0)cosθ+(y−y0)sinθ}^2/a^2+{(x−x0)sinθ−(y−y0)cosθ}^2/b^2−1
として,多変量の非線形最小2乗法によるあてはめを考えることにする.
 
 この式では,未定係数が三角関数の中に含まれているため,どのように変形してもパラメータに関して線形とはならない.すなわち,本質的に非線形なので,線形最小2乗法は使えないのである.
 
 また,非線形最小2乗法では,5個のパラメータa,b,θ,x0,y0の初期値が必要になる.ここで用いるサンプルデータのように楕円の全周にわたって2元データ(x,y)が得られている場合は,かなり正確な初期値をプログラム上で設定することができるが,弧の一部のデータしかない場合もあろう.
 
 そこで,初期値は図の助けを借りて,めのこ(目測)で,
  a0=25,b0=10,θ0=−0.2,x00=15,y00=10
のように設定した.θはラジアン単位である.
 
 変換式
  a1,a2,a3,a4,a5 → a,b,θ,x0,y0
が利用できる場合であっても,
  f(x,y)=a1x^2 +a2xy+a3y^2+a4x+a5y−1
の初期値を設定することは難しいであろう.モデル式を
  f(x,y)={(x−x0)cosθ+(y−y0)sinθ}^2/a^2+{(x−x0)sinθ−(y−y0)cosθ}^2/b^2−1
としたのは,楕円を描きやすいようにするためと,初期値が設定しやすいようにとの配慮からである.
 
===================================
 
[計算結果]

[ DEFINED EQUATION ]
Y= ((x(1)-p(4))*cos(p(3))+(x(2)-p(5))*sin(p(3)))^2/p(1)/p(1)+((x(1)-p(4))*sin(p(3))-(x(2)-p(5))*cos(p(3)))^2/p(2)/p(2)-1
GAUSS-NEWTON METHOD
回帰係数とその95%信頼区間
P(1)= 25.8938    S.E.= .0503435    25.7887 - 25.9988
P(2)= 11.4363    S.E.= .0193518    11.3959 - 11.4767
P(3)= -.152075    S.E.= 1.55393E-03  -.155317 - -.148832
P(4)= 15.8038    S.E.= .039178    15.722 - 15.8855
P(5)= 7.99147    S.E.= .0173133    7.95534 - 8.02759
残差
No.      OBSERVED Y  EXPECTED Y  RESIDUAL
1       0      -6.29967E-03  6.29967E-03
2       0       .037863   -.037863
3       0      -.0514846   .0514846
4       0       .0384736   -.0384736
5       0       4.63796E-03 -4.63796E-03
6       0      -.0241703   .0241703
7       0       .0432599   -.0432599
8       0      -.0292885   .0292885
9       0      -.0437472   .0437472
10      0       .0889643   -.0889643
11      0      -.103175    .103175
12      0       .082667   -.082667
13      0      -.0519268   .0519268
14      0      -8.98975E-03  8.98975E-03
15      0       .0329915   -.0329915
16      0       .0138998   -.0138998
17      0      -.0595061   .0595061
18      0      -.0178359   .0178359
19      0       .0231916   -.0231916
20      0       7.22289E-04 -7.22289E-04
21      0       .0170451   -.0170451
22      0       4.08816E-03 -4.08816E-03
23      0       .0419139   -.0419139
24      0      -.0627353   .0627353
25      0      -.0217317   .0217317
 多変量の非線形最小2乗法を用いる方法では,計算が収束するまで数秒を要したが,あてはまりの良さに関しては満足のゆくものであった.
 
 また,この非線形モデルのあてはめに対しては,ガウス・ニュートン法を用いたが,初期値と計算アルゴリズムの選び方によっては収束しないこともあり得ることを注意しておく.
 
===================================
 
【4】粟屋の2次元フィッティング法
 
 【2】【3】項で述べた多変量最小2乗法は,最も一般的に用いられている楕円近似法であると思われるが,「z軸のデータだけに誤差がある場合で,x,y軸のほうの誤差は全くないかあるいは無視できる.」という前提をおいて,目的関数をz軸方向の残差2乗和
  s=Σ{zi−f(xi,yi)}^2
とし,誤差はあくまでもzのみに含まれるものと仮定している.
 
 実用上はこれで十分な場合も多いが,x,y軸側のデータといえども必ずしも理想的には管理されず,誤差の混入が常であるから,どうしてもx,y双方に誤差を考えないといけない場合がある.
 
 そこで,この節では,x,y軸側のデータにも誤差がある場合のモデル式のあてはめについて,青山学院大学・理工学部・物理を定年退官された粟屋隆先生の方法を用いてあてはめを行う.
 
 粟屋の方法は,品質管理・計量管理で有名なデミングのクラシカルな方法を改良したものであるが,デミングの方法が反復計算にそぐわない1回限りの計算法であるのに対し,反復計算によって精度を逐次高めていくことが可能になっている.
 
 粟屋の関数フィッティングの方法は,最尤法に基づいていて,データ(x,y)の真の値を(x0,y0)とすると,目的関数sは
  s=Σ{(x−x0)^2/σx^2+(y−y0)^2/σy^2}
と書き表すことができる.これはz軸方向の残差2乗和ではなくて,x−y平面におけるデータ点と真値のマハラノビス距離の2乗和である.
 
 もし,σx=σyならば,
  s=Σ{(x−x0)^2+(y−y0)^2}
であるから,x−y平面上のユークリッド距離の2乗和を最小化することと等価になる.すなわち,粟屋の方法は陽関数におけるガウス・ニュートン法を陰関数まで取り扱いを拡張したもので,線形関数・非線形関数いずれの場合もユニバーサルに取り扱うことができる.
 
 読者が粟屋の方法に興味を持ち使って下さることを願って,ここで宣伝しておく.詳細は参考文献
  粟屋 隆「データ解析」,学会出版センター
を参照されたい.
 
===================================
 
[計算結果]

 
[ DEFINED EQUATION ]
Z= ((x-p(4))*cos(p(3))+(y-p(5))*sin(p(3)))^2/p(1)/p(1)+((x-p(4))*sin(p(3))-(y-p(5))*cos(p(3)))^2/p(2)/p(2)-1
GAUSS-NEWTON METHOD
回帰係数とその95%信頼区間
P(1)= 25.8799    S.E.= .0351145    25.8066 - 25.9532
P(2)= 11.4089    S.E.= .0226531    11.3616 - 11.4561
P(3)= -.153808    S.E.= 1.50505E-03  -.156948 - -.150667
P(4)= 15.7137    S.E.= .0298255    15.6515 - 15.776
P(5)= 7.98709    S.E.= .0185638    7.94835 - 8.02583
 
残差
No.      OBSERVED X  EXPECTED X  OBSERVED Y  EXPECTED Y
1       2       1.98631    0      -.033774
2       7       7.06283   -2      -1.77996
3       14      13.9557   -3      -3.28552
4       18      18.0192   -4      -3.77114
5       23      22.9997   -4      -3.96196
6       31      31.0322   -3      -3.1528
7       38      37.7642   -1      -.628064
8       41      41.2769    4       3.95317
9       40      40.3036    8       8.18401
10      38      37.4703    12      11.3733
11      34      34.348    13      13.5801
12      31      30.7508    16      15.446
13      26      26.0756    17      17.2342
14      19      19.0003    19      19.0017
15      13      12.9832    20      19.7793
16      7       7.00369    20      19.9029
17      2       1.93294    19      19.4126
18      -3      -3.05898    18      18.1643
19      -6      -5.91684    17      16.8572
20      -9      -9.05437    14      14.0348
21      -10      -9.85671    12      11.977
22      -9      -8.9996    8       8.00023
23      -7      -6.76672    5       5.24699
24      -3      -3.25036    3       2.59495
25      0      -.0618405   1       .869592
 ここでは,初期値を
  a0=25,b0=10,θ0=−0.2,x00=15,y00=10
として,
  f(x,y)={(x−x0)cosθ+(y−y0)sinθ}^2/a^2+{(x−x0)sinθ−(y−y0)cosθ}^2/b^2−1
をあてはめたが,陰関数f(x,y)=0のあてはめでは,独立変数,従属変数の区別がなく対等と考えられるから,x側,y側どちらにも誤差がある場合のあてはめ法として,粟屋の2次元フィッティング法を適用することができる.しかし,この計算例の場合,数分の計算所要時間を要した.
 
===================================
 
【5】アルゴリズムの比較・性能評価
 
 あてはまりの良さをとるか,あてはめ精度を多少犠牲にしても計算速度を重視するかによって,アルゴリズムの優劣のポイントは変わってくる.まとめとして,楕円近似をする際の各方法の性能比較したものを掲げておこう.
 
         線形法     非線形法   粟屋の方法
計算所要時間   1秒以内     数秒      数分
あてはめ精度    良       優       優
初期値       不要      要       要
ダミー変数     要       要       不要
x,yの誤差   ないと仮定   ないと仮定   あると仮定
関数の描画     要変換    変換不要    変換不要
基本情報の誤差   難       易       易
 
 計算原理からいえば,粟屋の方法が優れていることは明らかであるが,計算に時間がかかるという欠点がある.また,適当な初期値を出発点として反復計算する非線形法と粟屋の方法では,ときに計算が収束せず,発散してしまう場合があるので留意されたい.
 
 その点,多変量の線形最小2乗法では初期値は不要で,収束安定性を考慮する必要もない.プログラムも簡単なため,計算時間が短くて済む.また,楕円の場合は
  a1,a2,a3,a4,a5 → a,b,θ,x0,y0
の係数変換式が利用できるので描画も容易である.ただし,線形法であるから,楕円の基本情報(半径や中心など)の誤差値を求めることは簡単ではない.
 
 楕円近似をコンピュータ上にインプリメントしようとする際は,要求されているあてはめ精度やどれくらいの計算所要時間が許容されるのか,楕円の基本情報の誤差を求められているかどうかにもよるが,総合的にみて多変量の線形最小2乗法が最もすぐれているものと思われた.
 
===================================