概要
データ分析において、データの分布や変動性を理解することは非常に重要です。本記事では、範囲、中央値、四分位範囲(IQR)、四分位数、箱ひげ図、そして外れ値について説明し、Pythonを使ってこれらの概念を実際に計算・可視化する方法を紹介します。文章とコードはすべてChatGPTo1-previewで書いています。
範囲 (Range)
範囲はデータの最大値と最小値の差で、データの全体的な広がりを示します。極端な値に敏感で、データセットに外れ値がある場合、その影響を大きく受けます。
例:学生のテストスコアが55点から95点までの範囲がある場合、範囲は95点 - 55点 = 40点となります。
中央値 (Median)
中央値はデータを小さい順に並べたときの中央の値です。データの中心的な傾向を示し、平均値と比べて外れ値の影響を受けにくい特徴があります。
例:データセットが[55, 65, 70, 75, 80, 85, 90, 95]の場合、中央値は77.5点(75点と80点の平均)です。
四分位数 (Quartiles)
四分位数はデータを4つの等しい部分に分割する値です。
第1四分位数 (Q1):データの25%がこの値以下
第2四分位数 (Q2):中央値、データの50%がこの値以下
第3四分位数 (Q3):データの75%がこの値以下
四分位範囲 (Interquartile Range, IQR)
四分位範囲 (IQR)はQ3からQ1を引いた値で、データの中央50%の広がりを示します。外れ値の影響を軽減した分散の尺度として利用されます。
IQR = Q3 - Q1
箱ひげ図 (Box Plot)
箱ひげ図はデータの分布を視覚的に表現するグラフで、四分位数、中央値、範囲、そして外れ値を示します。データの分布や偏り、外れ値の有無を一目で把握できます。
外れ値 (Outliers)
外れ値はデータの大部分から大きく離れた異常な値です。一般的には、以下の範囲を超える値が外れ値とされます。
下限:Q1 - 1.5 * IQR
上限:Q3 + 1.5 * IQR
コード全文
# 必要なライブラリのインポート
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# データの準備:学生のテストスコア
scores = [55, 60, 65, 70, 75, 80, 85, 90, 95]
# データをPandasのSeriesに変換
scores_series = pd.Series(scores)
# 範囲の計算
score_range = scores_series.max() - scores_series.min()
print(f"範囲 (Range): {score_range}点")
# 中央値の計算
median = scores_series.median()
print(f"中央値 (Median): {median}点")
# 四分位数の計算
Q1 = scores_series.quantile(0.25)
Q3 = scores_series.quantile(0.75)
print(f"第1四分位数 (Q1): {Q1}点")
print(f"第3四分位数 (Q3): {Q3}点")
# 四分位範囲の計算
IQR = Q3 - Q1
print(f"四分位範囲 (IQR): {IQR}点")
# 外れ値の境界の計算
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
print(f"外れ値の下限: {lower_bound}点")
print(f"外れ値の上限: {upper_bound}点")
# 外れ値の抽出
outliers = scores_series[(scores_series < lower_bound) | (scores_series > upper_bound)]
print(f"外れ値: {outliers.values}")
# 箱ひげ図の作成
plt.boxplot(scores, vert=False)
plt.title('学生のテストスコアの箱ひげ図')
plt.xlabel('スコア')
plt.show()
実行結果
範囲 (Range): 40点
中央値 (Median): 75.0点
第1四分位数 (Q1): 65.0点
第3四分位数 (Q3): 85.0点
四分位範囲 (IQR): 20.0点
外れ値の下限: 35.0点
外れ値の上限: 115.0点
外れ値: []
注意点
このコードを実行するには、Python環境にnumpy、pandas、matplotlibがインストールされている必要があります。
グラフを表示するために、Jupyter Notebookや適切なIDEを使用してください。
まとめ
このコードを通じて、学生のテストスコアデータの基本的な統計量を計算し、データの分布や変動性を理解する方法を学ぶことができます。データ分析の基礎として、これらの統計手法は非常に有用です。