matplotlibで日本語データをグラフ表示すると文字化けしてしまいます。
そこで日本語化への対応方法を示します。
matplotlibで日本語データをグラフ表示すると文字化けしてしまいます。
そこで日本語化への対応方法を示します。
ヒストグラムをみたときに、これは**分布に似ていると思うときがあります。そのときの検定方法を載せておきます。観測された事象がある確率分布に従うということがわかれば、平均や標準偏差がわかれば、その事象を再現できることになります。シミュレーションも簡単にでき、物事の動きを判断するときに大変便利です。なぜか書籍などにはこのあたりを書いてあるものが僕は出会っていません。
(1) 訪問回数の度数分布を考える。
次のような月別のWiFiの利用回数の度数分布があります。これは、https://crawdad.org/kth/campus/20190701/eduroam/ のデータを計算したものです。
これのヒストグラムを書いてみると、次のようになります。これをみたときに、仮に「幾何分布と似ていないか」と考えたとします。このヒストグラムが幾何分布に従っているかを検定します。
(2) 幾何分布を利用して度数分布を作成する
この確率を用いて度数分布表を作成します。ヒストグラムのデータから平均は8.403(日)とわかっています。幾何分布は平均は確率pの逆数なので、p = 1/8.403 = 0.119となります。ちなみに今回の標準偏差は7.15になります。
k回の度数を求めるには、発生総数(今回は31688)×p(1-p)^(k-1)で求めていきます。これで度数分布表を求めていくと、
階級値 | 度数 | 幾何分布 | 幾何分布度数 | 平均 | 標準偏差 |
1 | 6240 | 0.1190051172 | 3771.034154 | 8.403 | 7.15 |
2 | 3579 | 0.1048428993 | 3322.261793 | 確率 | |
3 | 2136 | 0.09236605778 | 2926.895639 | 0.1190051172 | |
4 | 1702 | 0.08137402424 | 2578.58008 | ||
5 | 1445 | 0.07169009895 | 2271.715855 | ||
6 | 1245 | 0.06315861032 | 2001.370044 | ||
7 | 1098 | 0.0556424125 | 1763.196767 | ||
8 | 1077 | 0.04902068067 | 1553.367329 | ||
9 | 1052 | 0.04318696882 | 1368.508668 | ||
10 | 961 | 0.03804749854 | 1205.649134 | ||
11 | 934 | 0.03351965151 | 1062.170717 | ||
12 | 876 | 0.02953064146 | 935.7669665 | ||
13 | 859 | 0.02601634401 | 824.4059089 | ||
14 | 908 | 0.02292026594 | 726.2973871 | ||
15 | 896 | 0.020192637 | 639.8642814 | ||
16 | 893 | 0.01778960987 | 563.7171576 | ||
17 | 880 | 0.01567255526 | 496.6319312 | ||
18 | 851 | 0.01380744099 | 437.53019 | ||
19 | 884 | 0.01216428485 | 385.4618584 | ||
20 | 790 | 0.01071667271 | 339.5899248 | ||
21 | 710 | 0.009441333817 | 299.176986 | ||
22 | 642 | 0.008317766779 | 263.5733937 | ||
23 | 356 | 0.007327909969 | 232.2068111 | ||
24 | 241 | 0.006455851184 | 204.5730123 | ||
25 | 176 | 0.005687571857 | 180.227777 | ||
26 | 128 | 0.005010721701 | 158.7797493 | ||
27 | 59 | 0.004414420178 | 139.8841466 | ||
28 | 37 | 0.003889081587 | 123.2372173 | ||
29 | 20 | 0.003426260977 | 108.5713578 | ||
30 | 13 | 0.003018518388 | 95.65081068 | ||
合計 | 31688 | 0.9776539084 | 30979.89705 |
のように計算できます。この幾何分布で算出した度数分布をグラフにしてみると、次のようになります。きれいすぎです。
(3) 適合度の検定
今回はカイ2乗検定をしていきます。帰無仮説H0は「得られたデータは理論上の確率分布(幾何分布)に従う(適合する)」、対立仮説HAは「得られたデータは理論上の確率分布(幾何分布)に従うと言えない」です。
Power_divergenceResult(statistic=6981.330926190308, pvalue=0.0)
となり、P値=0.0となり、同一分布とはみなせないという結論になりました。結論としては残念ですが、このようなやり方で離散型の確率分布との適合度を検証できます。連続型の確率分布の場合は、範囲で考えるため、もう少し面倒になります。
参考
https://drive.google.com/file/d/1lbivZ_PRGdx6liTdMI9bE-Ce1mH6IL8-/view?usp=sharing
https://www.trifields.jp/chi-square-test-test-of-goodness-of-fit-1054
https://toukei.link/programmingandsoftware/statistics_by_python/chisqtest_by_python/
http://www.a.math.ryukoku.ac.jp/~hig/course/stat_2018/w13.pdf