角度の平均

Excel で角度データの平均を計算するとき、そのまま Average 関数を使って求めているケースを何度も見たことがあります。単純に平均すると問題が起きる場合があることが意外と知られていないようなので、今回は角度の平均について説明してみます。

15° と 345° の平均は何度でしょう。

下図の通り、この場合の平均は一般的には 0° と考えます。

ところが、単純に平均すると 180° になってしまいます。

$$
\frac{15+345}{2}=180
$$

角度は 360° で一周するデータなので、これを単純に平均すると「15° と 345°」「165° と 195°」の平均はどちらも 180° になります。

角度データが 0° 付近に集まっているという前提であれば、角度の表現を 0°~360° ではなく -180°~180° にするという対処法もあります。ただし、そうすると -165° と 165° の平均も 0° になります。

では、角度の範囲を限定せず、正確に平均を求めることはできるでしょうか。いろいろな方法が考えられるはずですが、一般的には単位ベクトル合成法というロジックが使われます。

まず各角度の偏角を持つ単位ベクトルを作成し、それらの単位ベクトルを合成して長大なベクトルを作成します。そのベクトルの偏角を角度の平均値とします。

実際の計算方法としては、角度 $ \theta $ を $ \cos $ 成分と $ \sin $ 成分に分け、それぞれで合計してアークタンジェントで求めます。

$$
\begin{eqnarray}
X &=& \sum \cos \theta \\
Y &=& \sum \sin \theta \\
& & \\
\bar{\theta} &=& \tan^{-1} \frac{Y}{X}
\end{eqnarray}
$$

Excel で計算する場合は ATAN よりも ATAN2 関数を使うと分母がゼロの場合も計算できるので便利です。

分子と分母がどちらもゼロになる場合は計算できません。これは例えば「0° と 180° の平均は何度?」と考えれば計算できないことがわかるはず。

単位ベクトル合成法で計算したエクセルシートを見せると、できる奴として一目置かれるかも。他者と差をつけるためにも、角度は単純に平均化しないようにしましょう。