”みたけ山トレイルラン”のPMF

”みたけ山トレイルラン”の結果をヒストグラムにしてみたので、今回は確率質量関数にしてグラフをつくってみます。

前回
再びの”みたけ山トレイルラン”のヒストグラム
http://jbclub.xii.jp/?p=573

PMFとは
 確率質量関数(probability mass function, PMF)

PMFは正規化されているので全体としての確率は1となる。
thinkstats2が提供するPmfクラスを使うと簡単です。
↓のデータフレームは前回と一緒です。

df.head(10)
Out[81]: 
         A     B        C
0 01:05:03  13.0 01:05:00
1 01:07:10  13.0 01:05:00
2 01:07:52  13.0 01:05:00
3 01:12:00  14.0 01:10:00
4 01:12:14  14.0 01:10:00
5 01:12:31  14.0 01:10:00
6 01:12:54  14.0 01:10:00
7 01:13:23  14.0 01:10:00
8 01:13:44  14.0 01:10:00
9 01:13:54  14.0 01:10:00

pmf = thinkstats2.Pmf(df['B'])
pmf2 = thinkstats2.Pmf(df['C'])
※CはTimedelta型になっているので、プロットするときにthinkiplotクラスを使うことができない。そのため、プロットする際はBを使用する。

Pmfを棒グラフで描画するときはthinkplot.Histを使う。
Pmfをステップ関数として描画する場合はthink.Pmfを使う。

thinkplot.Hist(pmf)
plt.xticks([12, 15, 18, 21, 24,27,30,33], ['1:00:00','1:15:00','1:30:00','1:45:00','2:00:00','2:15:00','2:30:00','2:45:00'])
plt.xlabel('TIME') 
plt.ylabel('PMF') 

mitake_pmf_hist

thinkplot.Pmf(pmf)
plt.xticks([12, 15, 18, 21, 24,27,30,33], ['1:00:00','1:15:00','1:30:00','1:45:00','2:00:00','2:15:00','2:30:00','2:45:00'])
plt.xlabel('TIME') 
plt.ylabel('PMF') 

mitake_pmf

PMFにすると何がよいのでしょうか。おそらく、二つのグラフを比較するときに分かりやすくなるのだと思います。確率なので標本サイズの違いで紛らわしくなることなく比較できます。今回はほかの比較する用のデータがないので描画してませんが、データがあれば描画してみたいです。ただ、こういう大会結果のデータはPDFで掲載されているので、PDFからCSVへ変換するところが物凄い大変なんですよね。大会関係者は、CSVファイルで掲載してほしいところです。

以上

ThinkStats2のコードは以下からダウンロードできます。
https://github.com/AllenDowney/

関連する投稿:

“”みたけ山トレイルラン”のPMF” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください