最頻値 OpenOfficeとエクセルの結果の違い 本当の?最頻値の求め方

MODE関数の返り値について、同じ値が複数存在する場合、エクセルでは最初に最頻になった値が返されたり、OpenOfficeでは小さいほうの値が返されたりして、何を信じていいのか分からなくなってしまいました。
そこで、下の画像、左端のような得点と該当人数の場合はどうなるのだろうと考えてみました。

送信者 OpenOffice

一番人数が多いのは、=MAX(B2:B21)で9が返されます。しかし、10点と13点の2つ、あります。
ここで、OpenOfficeとエクセルがどういう値を返すか見てみます。
OpenOfficeでは、=MODE(10;10;10;10;10;10;10;10;10;13;13;13;13;13;13;13;13;13)で10が返されます。
エクセルの場合、返される値が時と場合によってばらばらになってしまうことが分かりました。
=MODE(10,10,10,10,10,10,10,10,10,13,13,13,13,13,13,13,13,13)では10が返されますが、
=MODE(13,13,13,13,13,13,13,13,13,10,10,10,10,10,10,10,10,10)では13が返されます。
出席番号の順番にテストの点数を公表したり、学校に到着した生徒から順番にテストの点数を公表したり、とにかくテストの点数を発表してそれをそのまま記録すると、エクセルの場合、異なった値を返してしまう可能性がある、ということになってしまいます。
返されるデータとして10点が正しいか13点が正しいかは別の話として、同じデータをMODE関数に当てはめた場合、当てはめる順番によって返される値が異なるというのは、データの信頼性を失わせる原因になり得ると思います。

しかし、OpenOfficeが返す値、10もデータとして信ずるに値するものかどうか、疑わしいです。
なぜなら、9点から11点のレンジで見ると合計は14人ですが、12点から14点のレンジで見ると17人いるからです。
これは、関数が返す値の精度云々よりも、データを扱う側の問題かなと思ったしだいです。



そこで、データを個々に見るより階級で区切って度数を調べて、どの階級にデータが最も集中しているかを調べたほうがいいのではないかと考えました。
D列に2点ごとに得点区分を設定してその人数(度数)をE列に表示することにしました。
同じような度数の表示は、FREQUENCY関数を紹介する記事でも扱いました。が、前回は、基になるデータが個々の名前と打点でした。そのためにCOUNTIF関数を使って処理しました。また、FREQUENCY関数を使って処理することも可能でした。
が、今回は、すでに得点ごとの人数(度数)がまとめられていますので、ちょっと方法を変えなければいけません。

具体的には、
1:階級値以下の値を条件にして、得点が記されているA列を範囲にしてB列を集計する
2:すでに集計した範囲を差し引く

条件付き集計のSUMIF関数を用いて=SUMIF($A$2:$A$21,"<="&D2,$B$2:$B$21)で2点以下の集計ができます。
同様に=SUMIF($A$2:$A$21,"<="&D3,$B$2:$B$21)で4点以下の集計ができます。ただし、2点以下の集計済み分を差し引く必要がありますので、
=SUMIF($A$2:$A$21,"<="&D3,$B$2:$B$21)-SUM($E$2:E2)
この数式をコピーしてそのまま下の行に貼り付けると、E列に区分ごとの数字が入ります。



さらにF列でこの数字を簡易グラフにしてみます。
このグラフは、REPT関数を用いて作成しています。
REPT関数の書式、使い方は「OpenOfficeで成績表などのデータを簡単にグラフ化する」に書きました。
=REPT("○",E2)で、E2セルに表示されている数値の回数だけ、"○" が繰り返し返されるので、グラフ機能を使わずとも、簡単にグラフっぽいデータが作成できる便利な関数です。
こうしてみると、13点から14点の得点区分に一番多くのデータが集まっていることが分かります。

さらに階級のレンジを変えたりすると、異なった見方ができるかもしれません。データを基に何かを判断するときは、基準をソフトウェアに委ねてしまわずに自分で設定することが大事なのではないでしょうか?

この記事をクリップ!