度数分布(ヒストグラム)
データの全体像を掴むために一番手っ取り早くて、一番信頼性の高い方法が度数分布でしょう。その度数分布を簡単に速く作ることができればいいですね。
ビジネス統計(基礎編)で度数分布の詳しい説明をしていますが、本来は階級数や階級幅をどう決めるかに多少のセンスが必要です。もちろん、センスに頼らずに統計的に妥当な階級数・幅を見つける方法も基礎編で取り上げています。
しかし、階級数や幅はある程度自動で決めてもらっていいから、早くデータの分布状況を確認したいという要求があることも事実です。そこで、rpnマイスターパッケージではfreqとstemleafを用意しました。それぞれ微妙に利用方法が異なるのですが、freqは階級数が少なくて度数が多い場合、stemleafは階級数が多くて度数が少ない場合に適しています。
黒点数の度数分布
具体的な例題で示したほうが分かりやすいでしょう。data.txtに309年間の黒点観測データがあるとします。データの並びを再掲します。
1701 11
1702 16
:
(中略)
:
2006 15.2
2007 7.5
2008 2.9
これらの黒点数の度数分布を作ります。まず、黒点数の小数点を切り捨てます(四捨五入でも構いません)。そして、整数になった黒点数の度数をカウントして度数分布を作ります。以下が度数分布を作るrpn式になります。
5 8
11 8
16 8
:
(中略)
:
145 1
94 1
119 1
先のrpn式で黒点数の小数を切り捨てたデータを、次のfreqプログラムに渡しています。freqは渡されたデータから度数分布を作っていきます。一番目の"5 8"は黒点数が5だった年が8回あったことを示しています。最後の"119 1"は黒点数が119だった年が1回です。ちなみに黒点数と度数の組み合わせはソートされていないので、注意してください。
この度数分布ですが、中略とあるように黒点数と度数の組み合わせが多くなります。以下のrpn式で行数をカウントしてみます。
120
120もありますね。この度数分布の基本統計量はどうでしょうか。
デ ー タ 120 120
最 小 値 0 1
最 大 値 190 11
範 囲 190 10
合 計 値(Σ) 8321 309
平 均 値(μ) 69.3417 2.575
分 散 値(σ2) 2187.74 3.72771
標準偏差(σ) 46.7733 1.93073
分 散 値(s2) 2206.13 3.75903
標準偏差(s) 46.9694 1.93882
歪度(a3≒0) 0.436502 1.5707
尖度(a4≒3) 2.24117 5.7322
変動係数(ν) 0.677362 0.752941
度数の最小が1で、最大が11です。xypとnpdを使ってグラフにしてみましょう。
度数
^ 15
| 平均
| :
| :
| *:
| :
| :
|*** :
|* : *
|** : *
| ** *** :*
** **** *:
* ** ***: * * *** **
| * *** * * ****** ** * 190
| * ** *** ****************** * *
+---------|----------|---------|-------> 黒点数
freqで度数分布にしたデータをxypに引き渡しています。xypはx軸を黒点数、y軸を度数としてグラフ化しています。グラフはそのままnpdに渡されて、多少の修飾(文字の追加・修正等)をしています。
分布図から黒点数が多くなるに従って、度数が急激に少なくなっていることが分かりますね。ちなみに、":"は全ての黒点数の平均です。度数分布から平均値を計算する場合は以下のrpn式になります。
49.3689
大体、50個です。階級と度数を掛けたものを合計して、全データ数の309で割って平均値を出しています。もちろん、単純に以下の方法でも構いません。こちらの方がより正確な平均値です。
49.7521
全黒点数のデータをmeanプログラムに渡して、平均値を計算させています。
黒点数を丸めて再度、度数分布
上の度数分布ですが、細かすぎて分からないという場合はfreqで度数分布を作る前に数値を丸めます。具体的には0から9までの数値を0に、10から19までの数値を10に丸めてしまいます。
この丸めた数値で再度、度数分布を作るとどうなるでしょうか。以下にそのrpn式を示します。
0 46
10 44
20 32
30 31
50 13
40 33
60 33
70 11
120 4
100 13
80 13
110 8
90 10
150 6
130 6
140 4
190 1
180 1
今度はあまり長くならずに表示できました。この度数分布表を眺めていても傾向がある程度分かりますが、一応xypでグラフにしてみましょう。度数分布からx軸の最大が190、y軸の最大が46であることが分かります。
度数
^ 50
* *
- 平均
| :
| :
- * * * : *
| :
| :
- :
| :
| :
- * * * *
| : * *
| : * * * * 190
| : * *
+---------|----------|---------|-------> 黒点数
数値を丸めて度数分布図を作ったほうが分かりやすいですね。黒点数が増えると度数が急激に少なくなる傾向がはっきり分かると同時に黒点数が少ない0から9個、10個から19個の分布がとても多いことが、前の度数分布図よりもはっきりと分かりますね。
幹葉表示で一石二鳥
freqによる度数分布作成は面倒な階級数や幅の検討を省略してくれますが、もっと楽な方法はないでしょうか。それがstemleafプログラムです。幹葉表示と言われる度数分布の表現法なのですが、詳しくはかんたんデータ分析講座のシェア分析 part3にありますので、ここでは簡単に実行例だけを示します。
幹葉表示を発案したのはジョン・テューキー(1915~2000)です。テューキーは高速フーリエ変換(FFT)、探索的データ解析を開発。ルートグラム、箱髭図、10本の集計図を提案しています。>rpn x _ i <data.txt | rpn -c stemleaf
0 | 0001112222333444455555555666666677778888889999
1 | 00000011111111222223333344555556666666677789
2 | 00001111222233444566667777889999
3 | 0000012234444555566666777788899
4 | 000001112233444555567777777777789
5 | 2334444467899
6 | 000112233333334444446666667788999
7 | 00333477889
8 | 0011233455589
9 | 2223334568
10 | 0011333445569
11 | 11124589
12 | 1245
13 | 024689
14 | 0125
15 | 144579
16 |
17 |
18 | 4
19 | 0
黒点数が少ない年が圧倒的に多いこと、黒点数が多い年の割合は急激に少なくなっていることが一目瞭然です。黒点数が180を超えた年は309年間で僅かに2年だけということがすぐに分かります。
幹葉表示は、度数分布も分かる上に階級内でのデータ分布も垣間見ることができるので、一石二鳥の優れものですね。
freqは500階級数程度を目安に使用してください。
stemleafは500個の数値程度を目安に使用してください。
本講座で使用したプログラムは、rpnマイスターパッケージとして購入することができます。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。