とあるお兄さんの雑記

基本的に技術系の内容を書きますが、何を書くかは私の気分です。

統計学における基礎的な用語集vol.4~箱ひげ図~

例によって統計学における基礎的な用語集をまとめていきます。おおよその内容は統計Webの「統計学の時間」に倣っています。

箱ひげ図(box plot)

データの分布を「箱」と「ひげ」であらわしたグラフで、データがどのあたりに集中しているのかをひと目で捉えることが出来ます。
ただし、平均、分散、標準偏差は箱ひげ図からは分かりません。分布の形も分かりません。

パーセンタイル

データを小さい順(昇順)に並べたとき、最初から数えて全体の 100\alpha\%に位置する値のことを指します。ここで 0 \leq \alpha \leq 1です。


第一四分位は25パーセンタイル、第三四分位は75パーセンタイルと言います。(別にどちらで読んでも大丈夫かと思います、意味さえ分かれば)ちなみに第二四分位は50パーセンタイルもしくは単に中央値です。

(※私が高校生の頃は、ちょうどゆとり教育が終わるかどうかの瀬戸際でして、高校3年の数学Cにあたる統計(確率?)は学ばずに卒業しました。
ちなみに高校の数学は3年間同じK先生という方でした。めっちゃしごかれましたが、とても良い先生でした。K先生はお元気でしょうか?私は元気でやっています。)

箱ひげ図のあてはめ

f:id:kurasher:20200520225452p:plain
箱ひげ図詳細

上が標準的な箱ひげ図です。
1. 図のAとDの部分がひげBとCの部分が箱
2. ひげの最上端が最大値、ひげの最下端が最小値
3. 箱の最上端が第三四分位数、箱の最下端が第一四分位数、箱の中にある線は中央値
4. 最大値と最小値の差を範囲(レンジとも言う)
5. 第三四分位数と第一四分位数の差を四分位範囲(interquartile range:IQR)と言う


箱ひげ図のA、B、C、Dの区間にあるデータの個数はいずれの区間でも同じ個数です(個人的に箱ひげ図の中で一番重要だと思います)。 同じ個数であるにも関わらず区間の長さが異なることから、データのばらつき具合を知ることが出来ます。

例えば、BとCではBの方が短いためデータがCよりも集中していることが分かります。また、箱の高さは全データの半分のデータを表します。

箱ひげ図の書き方

箱ひげ図の書き方について見ていきましょう。箱ひげ図の書き方はいろいろあるようですが、今回は統計Webの外れ値のある箱ひげ図の書き方を例に箱ひげ図を書いてみます(これが一般的かどうかは分かりません)。

ひげの長さを設定します。一般的には四分位範囲(IQR)の 1.5倍を上下限としています。
つまり、

ひげの上限 =第三四分位数  + 1.5 \times 四分位範囲
ひげの下限 =第一四分位数  - 1.5 \times 四分位範囲

で求めます。


求めたひげの上限がデータの最大値よりも大きい(データの最大値 \leqひげの上限)場合、データの最大値をひげの上限とします。 ひげの下限に関しても一緒で、求めたひげの下限がデータの最大値よりも小さい(ひげの下限 \leqデータの最小値)場合、データの最小値をひげの下限とします。

外れ値

ではもし、ひげの上限よりもデータの最大値の方が大きい(ひげの上限 \leqデータの最大値)場合はどうなるでしょうか? もしそのようなデータが現れた場合、それを外れ値として扱います。外れ値は、得られた観測値のなかで大きく外れた値のことです。ここではひげの上限よりも大きい値、下限よりも小さい値を外れ値として扱います。

外れ値がある場合の箱ひげ図が下図になります。

f:id:kurasher:20200521000905p:plain
外れ値のある箱ひげ図

Pythonで箱ひげ図

Pythonで箱ひげ図を書いてみましょう。例によってKaggleのHouse Pricesからデータを取ってきます。今回はSales Pricesを箱ひげ図に表してみます。

import pandas as pd
import matplotlib.pyplot as plt

train = pd.read_csv("train.csv", encoding = "utf-8")
plt.boxplot(train["SalePrice"])

実行すると以下のグラフが出てきます。

f:id:kurasher:20200521000549p:plain
Pythonによる箱ひげ図

外れ値が多いですね。とはいえ、簡単に箱ひげ図を表すことが出来ました。よりきれいに見せたい場合はseabornなどを使うのもありかと思います。

まとめ

今回は箱ひげ図についてまとめました。以下は箱ひげ図の重要な部分だけをまとめたものです。

  • 区間A、Dの部分をひげ、区間B、Cの部分を箱という
  • 区間A、B、C、Dのデータの個数は等しい
  • 区間BとCのデータの個数は全データ数の半分
  • 範囲(レンジ)は最大値  - 最小値のこと
  • 四分位範囲(IQR)は第三四分位数 - 第一四分位数のこと
    f:id:kurasher:20200520225452p:plain
    箱ひげ図詳細