【Python】中心傾向の指標(Mean, Median, Mode, Quartile)
この記事では、「中心傾向の指標」について、わかりやすく説明していきます。
中心傾向の指標とは?
そもそも「中心傾向の指標」とは何でしょうか?
それは、データの中心や代表的な値を示す方法のことです。
例えば、クラスのテストの点数を集めたとき、「だいたいみんな何点くらいだったの?」という質問に答えるための指標です。
数学的な言い方をすると、「データ全体の傾向を一つの値で表す方法」です。
主な中心傾向の指標は3つあります:
- 平均値(Mean)
- 中央値(Median)
- 最頻値(Mode)
- 四方分位(Quartile)
それでは、一つずつ詳しく見ていきましょう!
1. 平均値(Mean)
平均値は、みなさんが最もよく知っている指標かもしれません。
すべての値を足して、データの個数で割ったものです。
計算方法
- すべての数値を足す
- 合計をデータの個数で割る
例
5人の生徒のテスト点数が次のとおりだったとします:
生徒 | 点数 |
---|---|
A | 85 |
B | 92 |
C | 78 |
D | 90 |
E | 85 |
平均値の計算:
平均値 = (85 + 92 + 78 + 90 + 85) ÷ 5
= 430 ÷ 5
= 86
Pythonでの計算例
scores = [85, 92, 78, 90, 85]
mean = sum(scores) / len(scores)
print(f"平均値: {mean}") # 結果: 平均値: 86.0
平均値は簡単に計算できますが、極端に大きな値や小さな値(外れ値)に影響されやすいという弱点があります。
2. 中央値(Median)
中央値は、データを小さい順に並べたときの真ん中の値です。
データの個数が偶数の場合は、真ん中の2つの値の平均をとります。
計算方法
- データを小さい順に並べる
- 真ん中の値を見つける(個数が偶数なら真ん中の2つの平均)
例
先ほどの5人の点数を小さい順に並べると:
78, 85, 85, 90, 92
真ん中(3番目)の値が中央値なので、中央値は85です。
もし6人だったら(78, 85, 85, 90, 92, 95):
中央値 = (85 + 90) ÷ 2 = 87.5
Pythonでの計算例
scores = [85, 92, 78, 90, 85]
sorted_scores = sorted(scores) # 小さい順に並べる
n = len(sorted_scores)
if n % 2 == 0: # 偶数の場合
median = (sorted_scores[n//2 - 1] + sorted_scores[n//2]) / 2
else: # 奇数の場合
median = sorted_scores[n//2]
print(f"中央値: {median}") # 結果: 中央値: 85
中央値は外れ値の影響を受けにくいので、極端な値がある場合に役立ちます。
3. 最頻値(Mode)
最頻値は、データの中で最も頻繁に現れる値です。
計算方法
- データの中で最も多く出現する値を見つける
例
先ほどの点数:85, 92, 78, 90, 85
85が2回出現し、他の値は1回ずつなので、最頻値は85です。
Pythonでの計算例
from collections import Counter
scores = [85, 92, 78, 90, 85]
counter = Counter(scores)
mode = counter.most_common(1)[0][0] # 最も頻度の高い値
print(f"最頻値: {mode}") # 結果: 最頻値: 85
ここで、counter.most_common(1)[0][0]
の部分について詳しく説明します:
この1行は、実は複数の操作を重ねて行っています。
ステップバイステップで解説すると:
- まず
Counter
オブジェクト (この例ではcounter
) に対してmost_common()
メソッドを呼び出しています。 -
most_common(1)
は、「出現頻度が最も高い要素を1つだけ取得する」という意味です。 - この結果は
[(85, 2)]
のようなリスト形式で返されます。この例だと「85が2回出現した」という情報を表しています。 -
[0]
は、そのリストの最初の要素(85, 2)
を取得します。 - さらに
[0]
を付けることで、タプル(85, 2)
の最初の要素である85
を取得しています。
つまり、counter.most_common(1)[0][0]
は「データの中で最も頻繁に現れる値」そのものを取得しているのです。より明示的に書くと以下のようになります:
# 最頻値を計算する別の書き方
most_common_items = counter.most_common(1) # 最頻値と出現回数のペアを含むリスト: [(85, 2)]
most_common_pair = most_common_items[0] # 最頻値と出現回数のペア: (85, 2)
mode = most_common_pair[0] # 最頻値: 85
このように分解して書くと処理の流れが分かりやすくなりますが、Pythonではこれらの操作を1行で連結して書くことができるため、簡潔に counter.most_common(1)[0][0]
と表現できます。
また、最頻値は、特に分類データ(カテゴリカルデータ)で役立ちます。
例えば、学校でのアンケート調査で「好きな教科は何ですか?」という質問をした場合、回答は「数学」「国語」「英語」「理科」「社会」などの分類になります。
このような数値でないデータでは、平均値や中央値を計算することができません。
しかし、最頻値なら「最も多くの生徒が選んだ教科は何か」を簡単に知ることができます。
また、販売データの分析でも、「最も売れている商品」や「最も人気のある色」を知りたい場合にも最頻値が活用されます。
このように、何かの「傾向」や「人気」を把握したい場合、最頻値は非常に直感的で分かりやすい指標となります。
数値データであっても、例えば「1〜5の5段階評価」のような限られた値しか取らないようなデータセットでは、最頻値を見ることで「最も多く選ばれた評価」を知ることができます。
ただし、最頻値には複数存在する可能性があることも覚えておきましょう。
例えば、「2, 3, 3, 4, 4, 7」というデータでは、3と4がそれぞれ2回ずつ出現しており、最頻値は3と4の両方になります。このような場合は「二峰性データ」と呼ばれることもあります。
四分位数(Quartiles)
中心傾向の指標に加えて、データの分布を理解するのに役立つのが「四分位数(しほうぶんい)」です。
四分位数とはデータを4等分する値のことで、特に25%位置の値(第1四分位数)と75%位置の値(第3四分位数)がよく使われます。
四分位数とは?
データを小さい順に並べたとき:
- 第1四分位数(25%位置、Q1): データの下から25%の位置にある値
- 第2四分位数(50%位置、Q2): データの中央値(これは既に説明した中央値と同じです)
- 第3四分位数(75%位置、Q3): データの下から75%の位置にある値
計算方法
- データを小さい順に並べる
- 中央値(第2四分位数)を見つける
- 中央値より小さい値の中央値が第1四分位数
- 中央値より大きい値の中央値が第3四分位数
例
9人の生徒の点数が次のとおりだったとします:
65, 70, 75, 78, 80, 82, 85, 88, 92
- 中央値(第2四分位数): 80
- 第1四分位数(Q1): 75([65, 70, 75, 78, 80]の中央値)
- 第3四分位数(Q3): 85
※ ただし、第1四分位数を求める際に、中央値である80は使わずに、[65, 70, 75, 78]の中央値、つまり70と75の間である72.5になる場合もあります。
このように、四分位数の計算方法については複数の手法があり、第1四分位数(Q1)を求める際の中央値の扱いについても異なるアプローチがあります。
ここでは、中央値を含める方法で話をすすめます。
Pythonでの計算例
import numpy as np
scores = [65, 70, 75, 78, 80, 82, 85, 88, 92]
q1 = np.percentile(scores, 25)
q2 = np.percentile(scores, 50) # 中央値と同じ
q3 = np.percentile(scores, 75)
print(f"第1四分位数(Q1): {q1}") # 結果: 第1四分位数(Q1): 75
print(f"中央値/第2四分位数(Q2): {q2}") # 結果: 中央値/第2四分位数(Q2): 80.0
print(f"第3四分位数(Q3): {q3}") # 結果: 第3四分位数(Q3): 85
四分位数を計算する方法
四分位数を計算する方法にはいくつかの異なる手法があります。
奇数個の要素を持つリストについて、一般的に使われる手法は以下の2つです:
-
中央値を含まない方法(メソッド1)
- データを中央値で2つのグループに分け、中央値自体は除外します
- Q1は下側グループの中央値、Q3は上側グループの中央値になります
-
中央値を含む方法(メソッド2)
- データを中央値で2つのグループに分け、中央値も両グループに含めます
- Q1は下側グループの中央値、Q3は上側グループの中央値になります
例として[1,2,3]を使うと:
-
中央値は2です
-
メソッド1(中央値を含まない場合):
- 下側グループは[1]、上側グループは[3]
- Q1 = 1、Q3 = 3
-
メソッド2(中央値を含む場合):
- 下側グループは[1,2]、上側グループは[2,3]
- Q1 = 1.5、Q3 = 2.5
つまり、[1,2,3]の第1四分位数(Q1)は、計算方法によって1(メソッド1)または1.5(メソッド2)になります。
統計ソフトウェアや計算環境によって採用されているメソッドが異なるため、どちらが「正しい」というわけではなく、使用するコンテキストやソフトウェアに依存します。
例えば、Excelは別の計算方法も使用しています。
四分位数の使い方
四分位数は、データのばらつきを理解するのに役立ちます。第1四分位数と第3四分位数の間には、全データの真ん中50%が含まれています。この範囲を「四分位範囲(IQR: Interquartile Range)」と呼び、データの散らばり具合を表す指標として使われます。
IQR = Q3 - Q1
上の例では:
IQR = 86.5 - 72.5 = 14
四分位数は箱ひげ図(Box Plot)という視覚化手法でよく使われ、データの分布の形状を簡単に把握するのに役立ちます。
中心傾向の指標の比較
それでは、中心傾向の指標と四分位数を含めて比較してみましょう。
次のようなテストの点数データがあるとします:
35, 45, 45, 60, 65, 70, 70, 75, 80, 95
これらの値を使って、各指標を計算してみましょう:
指標 | 値 | 特徴 |
---|---|---|
平均値 | 64 | すべての値の合計を個数で割った値 |
中央値 | 67.5 | 真ん中の位置の値(偶数個なので65と70の平均) |
最頻値 | 45, 70 | 最も頻繁に出現する値(二峰性データ) |
第1四分位数 (Q1) | 45 | データの下から25%の位置の値 |
第3四分位数 (Q3) | 80 | データの下から75%の位置の値 |
四分位範囲 (IQR) | 35 | Q3 - Q1の値 |
グラフで比較してみよう
このデータを箱ひげ図で表現すると、中央値と四分位数の関係が視覚的に理解できます:
最小値 Q1 中央値 Q3 最大値
35 45 67.5 80 95
|-----------|=======|=======|-----------|
25% 75%
この箱ひげ図の見方:
- 箱の部分(
===
で表示):データの中心50%が含まれる範囲 - 箱の左端:第1四分位数(Q1) = 45
- 箱の中の縦線:中央値 = 67.5
- 箱の右端:第3四分位数(Q3) = 80
- 左のひげ:最小値から第1四分位数までの範囲
- 右のひげ:第3四分位数から最大値までの範囲
それぞれの指標はどんなときに使うのが良いのでしょうか?
-
平均値:
- データが対称的で、外れ値が少ないとき
- 総和や合計に意味があるとき(例:平均点で全体の得点を計算したいとき)
- データが連続的な数値で、正規分布に近いとき
-
中央値:
- データに外れ値があるとき(極端に高い値や低い値がある場合)
- 分布が偏っているとき(歪んでいるとき)
- 順序があるが、間隔が等しくないデータのとき(例:1位、2位、3位...)
-
最頻値:
- データの中で最も「典型的な」値を知りたいとき
- 分類データ(カテゴリカルデータ)のとき(例:好きな色、選択肢からの回答)
- 離散的な値のみを取るデータのとき
-
四分位数と四分位範囲:
- データのばらつきや広がりを知りたいとき
- 外れ値を検出したいとき
- 異なるデータセット間の分布を比較したいとき
実際の分析では、これらの指標を組み合わせて使うことで、データの特性をより正確に理解することができます。例えば、平均値と中央値が大きく異なる場合、データに外れ値があるか、分布が歪んでいる可能性があります。
まとめ
中心傾向の指標は、データ全体の傾向を一つの値で表す方法です。それぞれの指標には長所と短所があり、データの性質や目的に応じて使い分けることが大切です。
- 平均値: 全体の合計をデータ数で割ったもの
- 中央値: データを順番に並べたときの真ん中の値
- 最頻値: 最も頻繁に現れる値
- 四分位数: データを4等分する値(特に25%位置と75%位置の値)
実際のデータ分析では、一つの指標だけでなく、複数の指標を組み合わせて考えることで、データの特徴をより正確に理解することができます。
Discussion