Python

Python seaborn チュートリアル プロット機能 データの分布を可視化 (3)

原文のドキュメントはこちらから。

経験的累積分布(ECDF)

分布を可視化する3番目のオプションは、”経験累積分布関数” (ECDF)を計算する。このプロットは、曲線の高さがより小さな値を持つ観測値・結果の割合を反映するように、各データポイントを通して単調に増加する曲線を描く。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
sns.displot(penguins, x="flipper_length_mm", kind="ecdf")

plt.show()

ECDFプロットには、2つの重要な利点がある。ヒストグラムやKDEとは異なり、各データポイントを直接表す。つまり、考慮すべきビン・サイズや平滑化パラメータがない。さらに、曲線が単調に増加するため、複数の分布を比較するのに適している。

import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

penguins = sns.load_dataset("penguins")
sns.displot(penguins, x="flipper_length_mm", hue="species", kind="ecdf")

plt.show()

ECDFプロットの主な欠点は、ヒストグラムや密度曲線よりも直感的に分布の形状を表現できないこと。ヒストグラムではヒレの長さのバイモダリティがすぐにわかるが、ECDFプロットでそれを確認するには、さまざまな傾きを探す必要がある。(ECDFを調べることで、分布に関する重要な疑問に答える強力なアプローチとなる)