0
1

統計学の基礎、データの変動性(範囲、中央値、四分位範囲、箱ひげ図、外れ値)をPythonで理解する

Posted at

概要

データ分析において、データの分布や変動性を理解することは非常に重要です。本記事では、範囲、中央値、四分位範囲(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()

実行結果

image.png

範囲 (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を使用してください。

まとめ

このコードを通じて、学生のテストスコアデータの基本的な統計量を計算し、データの分布や変動性を理解する方法を学ぶことができます。データ分析の基礎として、これらの統計手法は非常に有用です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1