ふくふくHukuhuku Inc.
EP.04Statistics対象: 中1以上 9分公開: 2026-05-10

度数分布とヒストグラム:分布を見ることの威力

代表値や標準偏差を眺める前に、まずヒストグラムで「分布の形」を見るべき。釣鐘型・歪んだ・二峰性・一様。形が変わると分析手法も変わる。Python で実例を 5 種類見比べる。

#統計#ヒストグラム#分布
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

統計分析の第一歩は「ヒストグラムで分布の形を見る」。代表値や標準偏差を計算する前に、まず形を見ないと、誤った分析をします。本記事では 5 種類の分布 を実例で見比べます。

1. 5 種類の分布パターン

分布代表例
正規分布釣鐘型 (左右対称)身長・体重・テスト点数
右歪み (right-skewed)右に裾が長い年収・売上・閲覧数
左歪み (left-skewed)左に裾が長いテストの満点付近、寿命
二峰性 (bimodal)ピーク 2 つ男女混合の身長、文/理系混合の点数
一様 (uniform)横一直線サイコロの目

2. Python で 5 種類描く

Colab で動かす
Python
import numpy as npimport matplotlib.pyplot as plt
np.random.seed(42)fig, axes = plt.subplots(2, 3, figsize=(12, 7))
# 1. 正規分布data1 = np.random.normal(170, 7, 1000)  # 身長 (平均 170、σ 7)axes[0,0].hist(data1, bins=30, color='steelblue')axes[0,0].set_title('正規分布 (身長)')
# 2. 右歪み (対数正規)data2 = np.random.lognormal(6, 0.6, 1000)  # 年収相当axes[0,1].hist(data2, bins=30, color='salmon')axes[0,1].set_title('右歪み (年収)')
# 3. 左歪みdata3 = 100 - np.random.exponential(10, 1000)data3 = data3[data3 > 0]axes[0,2].hist(data3, bins=30, color='gold')axes[0,2].set_title('左歪み (満点近辺)')
# 4. 二峰性 (2 集団混合)data4 = np.concatenate([np.random.normal(40, 5, 500),                         np.random.normal(80, 5, 500)])axes[1,0].hist(data4, bins=30, color='mediumorchid')axes[1,0].set_title('二峰性 (混合集団)')
# 5. 一様分布data5 = np.random.uniform(0, 100, 1000)axes[1,1].hist(data5, bins=30, color='mediumseagreen')axes[1,1].set_title('一様分布 (ランダム)')
axes[1,2].axis('off')plt.tight_layout()plt.show()

3. 形によって変わる分析手法

分布の形代表値推奨手法
正規分布平均 + σt 検定、線形回帰
右歪み中央値、対数変換後の平均ノンパラメトリック検定 / 対数変換
左歪み中央値ノンパラメトリック検定
二峰性サブグループごとサブグループ分割 → 個別分析
一様範囲「ランダム性」自体を検定

4. 対数変換で正規分布に近づける

歪んだデータを log 変換
Python
import numpy as npimport matplotlib.pyplot as plt
# 右歪みの年収データ (対数正規)income = np.random.lognormal(6, 0.6, 1000)  # 単位: 万円相当
fig, axes = plt.subplots(1, 2, figsize=(10, 4))axes[0].hist(income, bins=40)axes[0].set_title('元データ (右歪み)')axes[1].hist(np.log(income), bins=40)axes[1].set_title('log 変換後 (正規分布に近づく)')plt.show()

5. ヒストグラム作成のコツ

  • bin 数は調整必須: 自動 → 違和感あれば bins=N で変更
  • density=True: 累積を 1 にして確率密度として描く
  • alpha=0.5: 複数分布を重ねる時、透明にすると比較しやすい
  • KDE (kernel density estimation): seaborn の `sns.kdeplot()` で滑らかな線で描く
  • Excel でも作れる: 「データ分析 → ヒストグラム」、bin 範囲を手動指定推奨

6. 次の話

EP.05 では 正規分布と 68-95-99.7 ルール を扱います。「身長 180cm 以上は何 % か」を計算で答えられるようになります。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp