どうもニコイチです。Pythonでデータ分析を始めようもついに4回目です。今回は最低限の統計量とデータ可視化に関して学んでいきたいと思います。
目次
1. 統計量って何だろう?
統計量とは、データの特徴を「数値で要約したもの」です。
例えるなら…
- 人物紹介カードのような「データの自己紹介」
- 健康診断の結果表のような「データの健康状態表」
2. 代表的な統計量を理解しよう
最大値(Max)と最小値(Min)
🎯 意味: データの範囲を示す両端の値
print(df['身長'].max()) # 最大値
print(df['身長'].min()) # 最小値
👉 例え話:
クラスで一番背が高い人と低い人の身長のようなもの
最頻値(Mode)
🎯 意味: 最も多く出現する値
print(df['好きな色'].mode())
📌 注意点:
- 最頻値は複数あることも!
- 例:好きな色が「青」と「赤」が同じ人数いる場合
平均値(Mean)
🎯 意味: 全データの合計÷データの個数
print(df['テスト点数'].mean())
⚠️ 注意点:
- 極端な値に影響されやすい
- 例:テストの点数[50, 55, 52, 48, 100]の平均は61点
- たった1つの100点が平均を大きく上げてしまう
中央値(Median)
🎯 意味: データを順番に並べた時の真ん中の値
print(df['年収'].median())
📌 例え話:
- 5人いる場合:[1,2,【3】,4,5] → 3が中央値
- 6人いる場合:[1,2,【3,4】,5,6] → 3と4の平均の3.5が中央値
四分位数(Quartile)
🎯 意味: データを4等分する値
print(df['身長'].quantile([0.25, 0.50, 0.75]))
👉 例え話:
100人を背の順に一列に並べたとき
- 第1四分位(25%): 25番目の人の身長
- 第2四分位(50%): 50番目の人の身長(=中央値)
- 第3四分位(75%): 75番目の人の身長
分散(Variance)と標準偏差(Standard Deviation)
print(df['身長'].var()) # 分散
print(df['身長'].std()) # 標準偏差
📌 分かりやすい例え:
クラスの身長データで考えてみましょう:
- 分散の計算手順:
- 平均身長:160cm
- 各生徒の身長と平均との差を二乗
- その平均を取る
- 単位は「cm²」になる(使いにくい!)
- 標準偏差:
- 分散の平方根を取る
- 単位が元に戻る(cm)
- データのバラつきを元の単位で理解できる
3. データの可視化
ヒストグラム(量的データ用)
import matplotlib.pyplot as plt
plt.hist(df['身長'], bins=10)
plt.show()
特徴的な形状と意味
- 山が一つで左右対称(正規分布)
▲
▄█▄
▄███▄
- 最も一般的な分布
- 平均値≒中央値≒最頻値
- 例:身長、体重など
- 山が偏っている
▄▄
███▄
████▄
- データに偏りがある
- 例:年収分布など
- 山が二つ
▄ ▄
██ ███
- 二つの異なる集団が混ざっている可能性
- 例:男女混合の身長データなど
- 外れ値がある
▄▄
███ ▄
- 調査や入力のミスの可能性
- データの特殊なケース
棒グラフ(質的データ用)
df['好きな色'].value_counts().plot(kind='bar')
plt.show()
特徴的なパターン
- 均等な分布
█ █ █ █ █
- 各カテゴリがほぼ同じ頻度
- 特定の値が突出
█
█
█ █
█ █ █ █
- 特定のカテゴリが人気/多い
4. 実践的なコツ
データ可視化の選び方
- 量的データ(数値)→ ヒストグラム
- 例:身長、体重、年齢
- 質的データ(カテゴリ)→ 棒グラフ
- 例:血液型、好きな色
🚫 よくあるつまずきポイント
- ヒストグラムのビンの数
- 多すぎる:細かすぎて傾向が見えない
- 少なすぎる:大まかすぎて特徴が埋もれる
- 解決策:
bins
の数を調整して試行錯誤
- 外れ値の扱い
- むやみに削除しない
- なぜその値になったのか考える
- 明らかな誤りは修正
まとめ
- 統計量は「データの特徴を数値で表したもの」
- 可視化は「データの特徴を図で表したもの」
- 両方使って多角的にデータを理解することが大切!
コメント