はじめに
データ分析や統計学を学ぶ上で、中央傾向の指標(Measures of central tendency)は基本中の基本です。これらの指標は、データの中心的な傾向を示し、データセットの代表的な値を理解するのに役立ちます。本記事では、平均値、中央値、最頻値の3つの主要な中央傾向の指標について詳しく説明し、Pythonを使って具体的な例とともに理解を深めていきます。文章は全てChatGPT o1-previewで書いています。
中央傾向の指標とは
中央傾向の指標は、データがどのような値を中心に分布しているかを示す統計的な指標です。主に以下の3つが広く使われています。
1. 平均値(算術平均)
データの総和をデータ数で割った値です。一般的に「平均」と言えばこの算術平均を指します。
計算方法:すべてのデータの値を合計し、データの個数で割ります。
特徴:データ全体のバランス点を示しますが、外れ値(極端に大きい値や小さい値)の影響を受けやすいです。
2. 中央値
データを小さい順に並べたときの中央の値です。
計算方法:データを昇順(または降順)に並べ、中央の位置にある値を取ります。データの個数が偶数の場合は、中央の2つの値の平均を取ります。
特徴:データの中心的な位置を示し、外れ値の影響を受けにくいです。
3. 最頻値
データの中で最も頻繁に出現する値です。
計算方法:データ内で出現回数が最も多い値を選びます。
特徴:データがどの値に集中しているかを示し、特にカテゴリカルデータで有用です。
Pythonで中央傾向の指標を計算してみる
import numpy as np
import matplotlib.pyplot as plt
# Data Generation
np.random.seed(0)
data = np.random.normal(loc=50, scale=10, size=1000) # Normal distribution with mean=50, std=10
outliers = np.random.uniform(low=100, high=120, size=10) # Outliers
data = np.concatenate((data, outliers))
# Calculation of Measures of Central Tendency
mean = np.mean(data)
median = np.median(data)
# Calculate the mode using histogram bins
counts, bins = np.histogram(data, bins=50)
max_count_index = np.argmax(counts)
mode = (bins[max_count_index] + bins[max_count_index + 1]) / 2
print(f"Mean: {mean}")
print(f"Median: {median}")
print(f"Mode: {mode}")
# Plotting the Histogram
plt.figure(figsize=(10, 6))
plt.hist(data, bins=50, color='skyblue', edgecolor='black')
plt.axvline(mean, color='red', linestyle='dashed', linewidth=2, label=f'Mean: {mean:.2f}')
plt.axvline(median, color='green', linestyle='dashed', linewidth=2, label=f'Median: {median:.2f}')
plt.axvline(mode, color='orange', linestyle='dashed', linewidth=2, label=f'Mode: {mode:.2f}')
plt.legend()
plt.title('Data Distribution and Measures of Central Tendency')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
出力結果
中央傾向の指標の使い分け
平均値を使うべき場合
データが正規分布に近い対称な分布をしているとき。
外れ値が少なく、データ全体の傾向を把握したいとき。
中央値を使うべき場合
データに外れ値が存在し、それらの影響を排除したいとき。
データが非対称な分布をしているとき。
最頻値を使うべき場合
データがどの値に最も集中しているか知りたいとき。
カテゴリカルデータや離散データの場合。
まとめ
中央傾向の指標である平均値、中央値、最頻値は、データの中心的な傾向を理解する上で欠かせない指標です。それぞれの特性と適用場面を理解し、適切に使い分けることで、データ分析の精度を高めることができます。
Pythonを使って実際に計算し、データの分布とともに可視化することで、各指標の意味と違いを直感的に理解できたかと思います。データ分析や統計学の学習の一助となれば幸いです。