角度の平均、角度の分散について

中田 亨 (産業技術総合研究所)

2006年4月25日

角度の平均は難しい

データの平均、分散、標準偏差を計算することは、ごく初歩的な処理です。

しかし、データが角度である場合には、数学的には問題が生じます。角度は360度で一周すること(角度の多義性)に起因する問題です。

例えば、361度は見かけ上は1度のことです。-20度は340度を意味することもありえます。さらには、勾配の上り下りの向きを考えない方がよい題材の場合、190度と10度が同じことを意味します。

このような角度をどのように処理すべきでしょうか。方法は4つほどあります。

角度値単純合算法

角度値単純合算法は、角度の数値をそのまま使って、通常の平均や分散の計算をする方法です。データのばらつきが小さい場合に使われます。角度の周期性の効果を無視してよいと考えているわけです。

厳密に言えば、ずばりインチキですが、簡単なのでよく使われます。

3次元の角度になると、ますます困ってしまいます。緯度と経度の算術平均をすることになりますが、北極(南極)付近と赤道付近では、計算の実態が全く異なります。

例:北極点から緯度で10度離れ、それぞれ等間隔の点が20個ある。これらの平均緯度は80度と計算される。しかし、点群の中心は北極点なので、オカシイ。(逆に、80度という答えが正しい場合もありえる。例えば、植物の生育北限緯度の計算など。)計算者は、どちらを正しいとするか、選択せねばなりません。

このような問題を「ジンバル・ロック」現象と言う人もいます。

単位ベクトル合算法

単位ベクトルの合算では、まずデータの角度を偏角(=xy平面上の傾き)として持った単位ベクトルを作ります。それら単位ベクトルを合算し、長大なベクトルを作ります。その長大ベクトルの偏角を、“角度の平均値”とするものです。

この方法の場合は、角度の周期性の効果を考えなくてよいので、あからさまなインチキはありません。(上記のジンバル・ロック問題は選択は考えねばいけませんが。)

データの角度が揃っていないと、回答が不安定になりがちです。

分散と標準偏差は、長大ベクトルの分布での±1σの位置の角度を使うことができます。

生データベクトル合算法

角度を計算する元になったデータをそのまま使う方法です。元データのベクトルを、角度と長さに分離せず、そのまま直交座標の座標値を使って、計算します。

ただし、元データの長さに意味が無い場合や、長さデータが信用できない場合には使うべきではありません。

ポテンシャル的な考え方

ポテンシャル的な考え方とは、データの示す角度のまわりに「平均値っぽさ」の重み(ポテンシャル)をつけ、どの角度が、一番「平均値っぽさ」の重みが強いかを探して、平均値とする方法です。

重み付けには、球面調和関数(spherical surface harmonics)を使う場合が多いようです。

球面調和関数とは: 球のシャボン玉を思い浮かべてください。シャボン玉がプルプル震えるとき、振れ幅はどのように分布するでしょうか。一番簡単なのは、全体で膨張と収縮を同じタイミングで行うもの。次に凝った震え方は、上半球と下半球で交互に膨張と収縮を繰り返すもの。さらに考えていくと、ミカンの房とか、サッカーボールの模様みたいな、もっと複雑に分割したいろいろな震え方が考えられますね。このように、シャボン玉(=球面)の震え方のパターン(=調和関数)を示すものです。

単位ベクトル合算法は、ある種のきわめて単純な球面調和関数を使った方法とも言えます。

複雑な球面調和関数は計算がすごく面倒なので、あまり使いたくはありません。が、題材によっては、特定の球面調和関数を使うことに適切性があるかもしれません。「この角度はサッカーボール模様のように分布するはずだ」と自信の持てる場合は、特定の球面調和関数を使うべきでしょう。(パターン見本は、ルジャンドル陪関数、ルジャンドル同伴関数、 Legendre fuction などを調べてみてください。)

しかし、単に「高等数学だからかっこよさそうなので使う」とか、「処理の正しさに自信が無いので難しい数学を使う」ということは避けるべきでしょう。

3次元角度の乱数

ランダムに、3次元の方向を発生させたいという需要があります。その方法を考えて見ましょう。

単純に、緯度と経度とで、それぞれ別々に0〜360度の一様乱数を発生させると、北極南極付近では密度が高くなってしまいます。ですから、緯度と経度で考えることは正しくありません。

簡単な方法。答えの方向をV=(x, y, z) とします。x, y, z をそれぞれ-1以上1以下の範囲で一様乱数として発生させます。この結果、Vの長さが1以下になるなら、答えとして採用します。

角度の統計検定

ある角度データの群れを測ってみると、どうやら42度ぐらいを平均として分布しているらしいと見込めたとしましょう。これが正しいことを統計を使って主張する方法について考えて見ましょう。

角度の多義性(360度で一周)がある場合は、普通の統計検定手法を使うことは厳密にはできません。(そこまで厳密な人は珍しいですが。)

角度の分布を一種の酔歩と考えると、Rayleigh 分布と仮定した検定が使えます。動物の帰巣本能の有無を調べる研究では、Rayleigh が使われています。

力任せに、モンテカルロ法を使う場合もあります。つまり、乱数を発生させて、角度のムラが発生する確率を実験的に測ります。角度ムラの珍しさを引き合いに出して、元々の角度データの規則性を主張します。

以上