ECDF で累積分布を可視化

中級

6.2.7

ECDF で累積分布を可視化

最終更新 2020-04-22 読了時間 1 分
まとめ
  • 累積割合で「何%が閾値以下か」を示す。
  • sns.ecdfplot で累積分布を階段状に描画。
  • パーセンタイルや閾値の判断に使う。

経験的累積分布関数(ECDF)は、ある値以下のサンプル割合を表現するシンプルなチャートです。閾値判断に役立ちます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")

fig, ax = plt.subplots(figsize=(6, 4))
sns.ecdfplot(data=tips, x="total_bill", hue="time", ax=ax)

ax.set_xlabel("会計金額 ($)")
ax.set_ylabel("累積割合")
ax.set_title("会計金額の ECDF")
ax.grid(alpha=0.2)

fig.tight_layout()

plt.show()

閾値判断に役立ちますの図

読み方のポイント #

  • 曲線の勾配が急な部分はデータが集中している。緩い部分は散らばりが大きい。
  • 例えば「80% の顧客は 30 ドル以下」といった閾値判断が容易になる。
  • 比較する系列が多い場合は色数を抑え、凡例と線種で区別すると読みやすい。

いつ使うか #

  • 適している場面: 累積割合やパーセンタイルを正確に読み取りたいとき。パラメータ選択が不要で常にデータに忠実です。
  • 不向きな場面: 密度の山や谷を直感的に掴むには向かず、一般的な聴衆にはヒストグラムの方が伝わりやすいです。
  • 代替手段: 直感的な分布理解にはヒストグラムや密度プロットの方がわかりやすいです。

よくある失敗パターン #

  • 複数グループの線の重なり: 多数のグループの ECDF を重ねると線が密集して区別がつきません。色の工夫やファセット分割を検討してください。
  • 離散データへの適用時の注意: 離散データでは ECDF が階段状になり、連続分布と見間違える恐れがあります。ステップ表示であることを明記しましょう。