ストップウォッチ
既にファイル化されているデータを使うのは簡単ですが、実際にデータを収集するとなると意外に大変です。ストップウォッチやカウンターを片手に地道に計測して、紙に記録することになります。
データ収集では、観測したい事象が何回発生したか、何個あるか、何時起こったかなど記録するのですが、この作業を何とか軽減したいものです。そんなときに便利なrpnプログラムを用意しました。キーを叩くだけで時間を記録してくれるwatchプログラムです。
キーを叩いて時間を記録
次のように入力すると、watchプログラムはストップウォッチのように時間を計測してくれます。
実行しても見た目に変化がありませんが、何かキーを押す度に時間が表示されます。キーはエンターキーでもスペースキーでも構いません。
091215 1 <-- 任意のキーを押す
先頭の数字がキー押下の時間を示していて、2桁の時間、2桁の分、そして2桁の秒の6桁固定になっています。次の数字が前の記録時間からの経過時間です。しばらく待ってから、キーを押下すると2行目に押下した時間が表示されることが確認できます。
091215 1 <-- 任意のキーを押す
091230 15 <-- 任意のキーを押す
キー押下の時間が9時12分30秒で前回の記録時間から15秒経過していることが分かります。なお、計測を終了したいときは^Zを押します。
103616 1
103617 1
<-- ^Zで終了
^ZはCtrlキーを押しながらCキーを押すことです。キーボード左端下にCtrlというキーがあるので、そのCtrlを押したままでアルファベットのZキーを押してください。
ファイルにそのまま時間を記録
観測する事象が10件程度であれば、画面に表示される時間を確認すればよいのですが、記録する数が多くなったり、後から再利用したい場合はリダイレクトでファイルに記録することになります。
このrpn式だけでキーを叩くたびにtmpファイルに時間が記録されていきます。ただし、実行中はファイルにリダイレクトするため、押下した時間は画面に表示されません。当然、計測結果のtmpファイルの行数を数えれば記録した回数(事象が発生した回数)になりますし、経過時間を合計すれば観測に掛かった全時間になります。
10
>rpn -c sum <tmp
125
上の実行例は、キーを10回叩いてから^Zで終了した場合です。観測に125秒掛かっていることが分かりますね。
車30台の通過を記録
少し具体的な利用例を示しましょう。車が通過するときの時間の間隔は指数分布であると言われています。果たして本当にそうでしょうか。実際に計測してみましょう。
計測方法は以下のrpn式だけです。記録時間はファイルのcar.txtに格納されていくことになります。基準となる一台の車が通過した瞬間にrpnを実行です(次の一台からが計測対象)。
計測中、画面には何も出てきませんが、時間の経過を監視しています。車が通過する度に任意のキーを押します。30台通過したら^Zキーで終了です。
計測終了時には必ず^Zを押下してください。^Cを入力するとデータは保存されません。
さっそくファイルの中身を確認してみましょう。
104220 4
104257 37
104300 3
104302 2
104324 22
:
(中略)
:
104727 33
104745 18
104747 2
104800 13
104808 8
きちんと保存されているようです。
車の通過時間の分布
それでは、収集したデータを使って、横軸に時間の経過、縦軸に通過に掛かった時間をプロットしていきます。
^y 50 *
| *
-
| *
|
- *
|
|
- *
| * *
| *
- * * *
| ** *
| * * ** x
4000 * ** * ** * 5000
+--|---|---|---|---|---|---|---|---|--->
通過時間はバラバラに見えますね。次に経過時間の基本統計量を計算してみましょう。
デ ー タ 30
最 小 値 1
最 大 値 50
範 囲 49
合 計 値(Σ) 352
平 均 値(μ) 11.7333
分 散 値(σ2) 172.596
標準偏差(σ) 13.1376
分 散 値(s2) 178.547
標準偏差(s) 13.3622
歪度(a3≒0) 1.64748
尖度(a4≒3) 4.76248
変動係数(ν) 1.13882
データ数は30個、車の通過間隔の最小時間は1秒、最大時間は50秒でした。平均して11秒で通過していますね。また、合計値から観測時間は6分弱だったことも分かります。次に度数分布を幹葉表示してみましょう。
0 | 1122222233345567899
1 | 233578
2 | 2
3 | 37
4 | 6
5 | 0
ほとんどが10秒以内の通過です。この分布をグラフにすると以下のようになります。
>rpn _ _ _ #d __ @d <tmp | rpn 1 -c rownum | xyp -x,6 -y,30 -s1,10 -m
^y 30
|
|
|
-
| *
|
|
|
-
|
|
| *
| x
|o * * * *
+-----|------|-----|------|------|----->
幹葉表示で大体の見当は付いていましたが、確かに指数分布に似ていますね。
実際に何かを観察して記録しようとすると意外に大変なことが分かります。できれば記録した瞬間にデジタル化されれば便利です。本格的な記録はできませんが、watchプログラムはちょっとした時間記録ができる小さなソフトウェアツールです。
本講座で使用したプログラムは、カレンダー・システムパッケージとして購入することができます。statinfo, stemleafはrpnマイスターパッケージに同梱されています。rownumはカンタン分析パッケージに同梱されています。freqdistはビジネス統計(基礎編)に同梱されています。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。