今回は箱ひげ図を紹介します。
箱ひげ図とは
箱ひげ図とは、箱(四角) とひげ(線) によってデータのばらつきをわかりやすく表現した図になります。
以下が、箱ひげ図になります。
この箱ひげ図の見方について説明します。
上から順に説明します。
①外れ値:後述
②最大値:全データの最大値。詳細は後述
③第3四分位数(\(Q3\)):データを小さい順に並べた時の下から75%の位置にある値
④中央値(第2四分位数\(Q2\)):データを小さい順に並べた時のちょうど真ん中にある値(中央値)
⑤第1四分位数\(Q1\):データを小さい順に並べた時の下から25%の位置にある値
⑥最小値:全データの最小値。詳細は後述
となります。
最大値、 最小値、外れ値について
最大値と最小値はデータのばらつきが大きい場合、
IQR(Interquartile Range)というボックスの幅を使って計算するのが一般的です。
IQRは以下のように定義します。
$$\begin{aligned}
IQR = Q3 – Q1
\end{aligned}$$
IQR = Q3 – Q1
\end{aligned}$$
第3四分位数(Q3)から第1四分位数(Q1)の差ですね。
すべてのデータが\((Q3 +1.5 \cdot IQR)\)と\((Q1 -1.5 \cdot IQR)\)に収まっていれば、全データの中の最大値、最小値。
収まっていないデータがあれば、収まっているデータの中から最大値、最小値を決めます。
収まらなかったデータは外れ値となります。
Pythonでプロットしてみる
Pythonを使って箱ひげ図を作ってみます。
matplotlibのboxplotを使えば簡単にプロットできます。
以下サンプルコード
import numpy as np import matplotlib.pyplot as plt data = [0,1,2,3,4,5,6,7,8,9,10,18] print(data) fig1, ax1 = plt.subplots(figsize=(10,10)) ax1.set_title('Basic Plot') ax1.boxplot(data) plt.show()
参考文献
- https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.boxplot.html
- https://en.wikipedia.org/wiki/Box_plot