高頻度な範囲の可視化


はじめに

この記事を藤江氏に捧げたく。

藤江氏が2024/2/7に投稿された動画「やっぱりアレをして1~2週間後に?」を観て、もしかしたら役に立つかも知れないと思った統計手法について解説します。

動画では、17のデータについて、(ワクチン接種)した日から、○亡しぼうした間隔(日)を示しています。また動画内では、同氏がこれまでの経験上、10日前後でアレするケースが多いと感じている、と語っています。

こうしたデータをうまく可視化できれば、より説得力が上がると思いました。この記事では、こうした高頻度の範囲を可視化するための、一つの手法である累積度数分布グラフを解説します。(もちろん万能ではありませんので、あしからず)

この手法は必ずしも一般向けでなく、活用しにくい場合もありますこと、ご了承ください。

元データ

可視化したいデータは、下図のようなものです。

データ番号は、単に1から始まる連番です。可視化したいデータは、小さい方から並べます。

グラフ化(A)

データ番号を、データ数17で割った値の列を作ります。百分率(パーセンテージ)で表示するとよいでしょう。(この計算はあとで微修正するので、ここでは百分率Aとしておきます。)

右の2列、間隔(日)をX軸に、百分率AをY軸とした散布グラフを作ります。

これが「累積度数分布グラフ」です。

グラフの見方

横軸は、間隔(日)です。縦軸は、どれだけのデータが間隔(日)以内に入るかのパーセンテージです。

例えば、横軸10日にあたるグラフの一番上、縦軸で41.2%に相当する点から、間隔が10日以内のデータは41.2%ある、ということがわかります。

また、縦軸50%にあたるグラフは、横軸で11日に相当するので、半分のデータは11日以内である、ということがすぐにわかります。(中央値が11日、ということです)

グラフ化(B)

先のグラフでは、最初のデータは必ず0%より大きい値で始まります。データ数をNとすると、最初のデータの百分率は1/Nとなるからです。一方で、最後のデータは必ず100%になります。

しかしこれではなんとなくグラフとして座りが悪いです。0%で始まらないのに、きれにに100%で終わるからです。(全数データを使うなら、これで問題ありません)

そこで百分率を計算する際に、データ数Nで割るのではなく、1を加えたN+1で割る方法があります。

データ番号を、データ数+1である18で割った値の列を作ります。これを百分率Bとします。

同様に散布グラフを作ります。

これにより、縦軸におけるグラフの下端と上端が、0%と100%の間に対照に収まります。グラフの形は変わりませんし、データが多い場合には殆ど差はありません。使うデータが母集団の全データではなく一部のサンプリングである場合は、よくこうします。

グラフの見方:その2

累積度数分布グラフを描くと、多くのデータはS字、あるいは崖のような形になります。

このとき、縦に急なところ、崖が急な部分が、もっとも頻度が多いところです。例では、なんとなく10日から14日の間が急な坂になっていることが見てとれます。(ミクロではなく、マクロで見ることが大切です)

分析方法は他にもいろいろあります。

データを 20% : 60% : 20% に分割した場合、早い20%は7.5日以内、遅い20%は21日以降だとすぐに読み取れます。真ん中の60%は7.5日から21日の間、ということです。

あるいは、日数が7日から14日の間には、16.7%から66.7%の間の50%、つまり半分があたることがわかります。

まとめ

本記事では、累積度数分布グラフと呼ばれるグラフ化手法により、高頻度な範囲を可視化する方法を示しました。

ヒストグラムと呼ばれるグラフ化手法で山形を示し、高頻度の部分を可視化する方法もありますが、ヒストグラムでは、グラフ化する範囲をどうするか、範囲をどれだけ粗く・細かく分解する(刻む)か、結果を見ながら調整が必要な場合があります。

累積度数分布は、ヒストグラムのグラフ(度数分布グラフ)を左から積分したことに相当します。また範囲や分解度を気にする必要がなく、正確に可視化できます。いろんなデータで活用してみてるとよいでしょう。

この記事が気に入ったらサポートをしてみませんか?