見出し画像

1-3 箱ひげ図と度数分布 〜 箱ひげ図大特集号

今回の統計トピック


箱ひげ図、ヒストグラムを作成します!
データの最小値・最大値・四分位数・外れ値を深掘りします。

公式問題集の準備

「公式問題集」の問題を利用します。お手元に公式問題集をご用意ください。
公式問題集が無い場合もご安心ください!
「知る」「実践する」の章で、のんびり統計をお楽しみください!

問題を解く


📘公式問題集のカテゴリ

1変数記述統計の分野
問3 箱ひげ図と度数分布(主要都市の平均気温)

試験実施年月
統計検定2級 2019年11月 問1(回答番号1)

問題

公式問題集をご参照ください。

解き方

箱ひげ図は、データの最小値・四分位数・最大値・外れ値を可視化する図です。
度数分布のようなデータの個数(度数)を把握しにくい反面、データの散らばり具合・集中具合を直感的に把握できるツールです。

箱ひげ図サンプル

度数分布表の階級(気温℃の幅)を意識しながら、箱ひげ図を見ます。

東京について分析しましょう。

  • 箱ひげ図では、16~18℃に2つの外れ値の◯があります。
    外れ値の◯はデータ1点に対応しているので、階級16~18℃にデータの個数=度数が2の度数分布表が、東京に該当すると考えられます。
    度数分布表で階級16~18℃の度数が2の列は、Aのみです。
    東京の度数分布表は「A」ということが分かります。

  • その他の階級について確認しましょう。
    箱ひげ図を確認すると、0~2℃、14~16℃および18~20℃のデータが無いことが分かります。
    度数分布表で階級0~2℃、14~16℃および18~20℃の度数が0の列は、Aのみです。

その他の都市について分析しましょう。

名古屋
箱ひげ図で唯一、最小値が0~2℃の名古屋。
度数分布表で階級0~2℃の度数が1以上の列は、Eのみです。
よって、名古屋は「E」です。

大阪
箱ひげ図で唯一、最小値が4~6℃の大阪。
度数分布表で、階級0~2℃および2~4℃の度数が0で、かつ、階級4~6℃の度数が1以上の列は、Dのみです。
よって、大阪は「D」です。

広島
広島と福岡を比べると、最大値が広島は16~18℃、福岡は18~20℃です。
残りの度数分布表で、階級18~20℃の度数が0の列は、Bのみです。
よって、広島は「B」です。

福岡
福岡は残りの「C」です。

注意点
ここまではクイズを解くような方法で分析しました。。
数字を丹念に拾って度数分布表のA~Eの各階級の度数から最小値・四分位数・最大値を計算(推測を含む)する方法で解答を検討するのもアリだと思います。

解答

①(A)です。

難易度 やさしい

・知識:箱ひげ図、度数分布表
・計算力:不要
・時間目安:1分

知る


おしながき

公式問題集の問題に接近してみましょう!
ここでは公式問題集と同じ「2018年12月の東京・名古屋・大阪・広島・福岡の日別平均気温(℃)データ」を利用します。
※2022年12月のデータには外れ値がありませんでした。

【出典記載】
出典:気象庁「過去の気象データ検索」サイト
【コンテンツ編集・加工の記載】
記事の記載にあたっては、気象庁「過去の気象データ検索」サイトの情報をを加工して作成しています。

(ご参考)2022年12月版の箱ひげ図

2022年12月の5都市の日別平均気温(℃)

ちなみに、2018年と比べて、2022年は気温が低い状況でした。
5都市全体の最高は11.6℃(2018年は18℃以上あり)、最低は -0.6℃(2018年は氷点下なし)です。

今回は箱ひげ図と四分位数に取り組みます。

箱ひげ図

📕公式テキスト:1.4.2 箱ひげ図(22ページ~)

箱ひげ図は「1変数」を要約記述する図です。
次の図は箱ひげ図のサンプルです。
横軸に5都市が並び、縦軸は平均気温(℃)を示します。

2018年12月の5都市の日別平均気温(℃)

四分位数・中央値・四分位範囲・四分位偏差
12月の31日間を気温の低い順に並べて、25%、50%、75%の位置にある日の気温をそれぞれ、第1四分位数第2四分位数第3四分位数といいます。
特に真ん中になる第2四分位数は中央値ともいいます。
箱ひげ図の「箱」を四分位数で構成します。
・箱の下辺:第1四分位数
・箱中の線:第2四分位数(中央値)
・箱の上辺:第3四分位数
また、「箱の高さ=第3四分位数-第1四分位数」を四分位範囲と呼びます。
四分位範囲の2分の1を四分位偏差と呼びます

最小値・最大値
データの最小値(最も低い気温)、最大値(最も高い気温)も重要な統計情報です。
外れ値が無い場合、箱ひげ図の「ひげ」を最小値・最大値で構成します。
・ひげの下辺:最小値
・ひげの上辺:最大値

外れ値
次のデータは外れ値と呼ばれます。
・(第1四分位数-四分位範囲 ✕ 1.5)よりも小さい値
・(第3四分位数+四分位範囲 ✕ 1.5)よりも大きい値
外れ値は、箱ひげ図のひげの下辺・上辺をはみ出して、データ1つ1つを◯で表します。

箱ひげ図が示すこと
データの広がり、集中、偏りを可視化しています。
「最小値・第1四分位数・第2四分位数・第3四分位数・最大値を示す線」で囲う範囲(高さ)は、データ数が4分の1ずつ収まる範囲を表しているのです。
次の例では、一番濃い/狭い範囲にデータが集中しているのは、小さい順に50~75%に位置するデータ(およそ8~10)です。

箱ひげ図とデータの範囲

中位の50%区間(25~75%)にデータが集まっていて、両端の25%区間(0~25%と75~100%)はデータが少ない状況です。
中央に山があり両端に裾が伸びるような分布なのかもしれません。
このグラフのデータでヒストグラムを作ってみましょう

上述の箱ひげ図に対応するヒストグラム

途中で凹みがありますが、概ね山のような形になっていました。

四分位数の計算

大きく2つの手法があるようです。
また、計算方法の定義はさまざま存在するようです。
四分位数の情報を見る時、計算をする時は、計算方法を明確にしておく必要がありそうです。

①ヒンジ
学校教育で扱う四分位数はこのヒンジが多いようです。

四分位数の計算イメージ(ヒンジ)

図のように、半分(50%)、そのまた半分(25%・75%)に区切って、その区切りの中央に位置する値が四分位数に該当します。
データの個数が偶数の場合、真ん中の2つの値の単純平均を四分位数にします。

パーセンタイル
25%、50%、75%の間隔で厳密に点をはかり、2つの値にまたがる場合には位置の比率で按分する方法です。
(ヒンジの計算では、2つの値にまたがる場合、按分は単純平均=半分ずつにしていました)
EXCELの四分位数の関数、Pythonのpandasのdescribeは、パーセンタイルで四分位数を計算しています。

四分位数の計算イメージ(パーセンタイル)


実践する


四分位数などを計算して、箱ひげ図を作成してみよう

「2018年12月の東京・名古屋・大阪・広島・福岡の日別平均気温(℃)データ」は気象庁のホームページで公開されています。

「過去の気象データ・ダウンロード」のページで気象データをCSVファイルでダウンロードできます。

過去の気象データ・ダウンロードは次のような画面になっていました!

過去の気象データ・ダウンロードサイト(気象庁ホームページより引用)

この画面で必要データの地点、項目、期間を個別に指定します。

CSVファイルのダウンロード
こちらのリンクから整形後のCSVファイルをダウンロードできます。
Pythonサンプルファイルを利用する方は、このCSVファイルをダウンロードしてください。

電卓・手作業で作成してみよう!

上述の方法でデータを取得して、電卓やそろばんをはじいて、手作業で四分位数を計算して、箱ひげ図を書いてみましょう!
一番記憶に残る方法ですし、試験本番の電卓作業のトレーニングにもなります。

EXCELで作成してみよう!

データ数が多い場合、やはり手作業では非効率になります。
パソコンを利用して、手早く作表できるようになれば、実務活用がしやすくなるでしょう。

箱ひげ図

5都市のデータを一度に範囲指定して箱ひげ図を作成します。

EXCEL:グラフの選択

■グラフの選択
①表データの階級と度数を範囲指定します。
②メニューの挿入を選択します。
③リボンの「グラフ」の右隅の矢印ボタンを選択します。
④「グラフの挿入」画面が開きます。「すべてのグラフ」タブを選択します。
⑤箱ひげ図を選択します。

■グラフのカスタマイズ①
箱・ひげの形状に関する調整します。

EXCEL:グラフのカスタマイズ①

箱ひげ図の箱の部分をダブルクリックして表示される「データ系列の書式設定」の系列のオプション(グラフの図)で設定します。
主な設定
・要素の間隔:箱の間隔を調整
・平均マーカーを表示する:平均をx印で表示
・四分位数計算
 包括的な中央値:0%・100%を含む(QUARTILE.INC関数に類似)
 排他的な中央値:0%・100%を含まない(QUARTILE.EXC関数に類似)

■グラフのカスタマイズ②
グラフの縦軸の値の範囲を調整します。

EXCEL:グラフのカスタマイズ②

箱ひげ図の縦軸の軸ラベルをダブルクリックして表示される「軸の書式設定」の軸のオプション(グラフの図)で設定します。
境界値で最小値、最大値を変更できます。

四分位数

QUARTILE.INC関数、QUARTILE.EXC関数で四分位数と最小値・最大値を計算できます。
INCは0%と100%の値を「含む」計算、EXCは「含まない」計算を行えます。

EXCEL:QUARTILE.INC関数の使用例

EXCELサンプルファイルのダウンロード
こちらのリンクからEXCELサンプルファイルをダウンロードできます。

Pythonで作成してみよう!

プログラムコードを読んで、データを流したりデータを変えてみたりして、データを追いかけることで、作表ロジックを把握する方法も効果的でしょう。
サンプルコードを揃えておけば、類似する作表作業を自動化して素早く結果を得ることができます。

今回は四分位数の計算と箱ひげ図の作成に取り組んでみましょう。

①ライブラリのインポート
主にpandasとmatplotlibを使用します。

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['font.family'] = 'MS Gothic'

②CSVファイルの読み込み
まず、上述のダウンロードリンクより、CSVファイルをダウンロードします。
その後、次のコードを実行して、CSVファイルをpandasのデータフレームに読み込みます。

datafile = './sample_data.csv' # CSVファイルの格納フォルダとファイル名を設定
df = pd.read_csv(datafile)
df.head()

③四分位数の計算
いくつかの方法があるようです。
ここでは3つ掲載します。

■pandasのdescribe

df.describe()
四分位数①pandasのdescribe

pandasのquantile

df.quantile(q=[0, 0.25, 0.5, 0.75, 1], numeric_only=True)
四分位数②pandasのquantile

NumPyのquantile

city = '東京'
q_list = np.quantile(df[city], [0.25, 0.5, 0.75])
print(city)
for i in range(len(q_list)):
    print(f'第{i+1}四分位数: {round(q_list[i], 1)}')
四分位数③NumPyのquantile


④箱ひげ図の表示

pandasのplot.boxを利用して箱ひげ図を作成します。
下から2行目のコメントを外すと、箱ひげ図の画像ファイルを指定したフォルダに保存できます。

df.plot.box(figsize=(4, 3), showmeans=True, yticks=(np.arange(0, 21, 2)),
            ylabel='平均気温(℃)', title='箱ひげ図')
# plt.savefig('./box.png') # 箱ひげ図画像ファイルの保存
plt.show()
箱ひげ図

⑤(参考)ヒストグラムの表示
matplotlibを利用して5都市のヒストグラムを作成します。
下から2行目のコメントを外すと、ヒストグラムの画像ファイルを指定したフォルダに保存できます。

plt.figure(figsize=(12, 8), tight_layout=True)
for i in range(1, df.shape[1]):
    plt.subplot(2, 3, i, ylim=[0, 10])
    plt.hist(df.iloc[:,i], bins=10, range=(0, 20))
    plt.title(df.columns[i], fontsize=15)
    plt.xticks(np.arange(0, 21, 2))
    plt.yticks(np.arange(0, 11, 1))
plt.suptitle('2018年12月の日別平均気温(℃)のヒストグラム', fontsize=15)
# plt.savefig('./hist.png') # ヒストグラム画像ファイルの保存
plt.show()
ヒストグラム

Pythonサンプルファイルのダウンロード
こちらのリンクからJupyter Notebook形式のサンプルファイルをダウンロードできます。



おわりに

第1回から作図が続いています。
記述統計の分野は、データを要約する図表を取り扱う分野でもあります。
作図作業はコンピュータツールを使って行うことが通常でしょう。
その際に、度数分布表の階級の幅、ヒストグラムのビンの数といった記載様式を決めることが大切です。
データの特徴をつかんだ上で、うまく表せるような工夫が必要そうです。
作図作業を重ねることが、データ・数字への感度を高める訓練になるのでしょう。

最後までお読みいただきまして、ありがとうございました。


のんびり統計シリーズの記事

次の記事

前の記事

目次

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