Pythonで実施する統計量の算出方法のあれこれ

データ分析において統計量の算出は基本中の基本です。
Pythonを使えば、複雑な計算も簡単に実行できます。
本記事では「主要な統計量の説明」と「Pythonでの実践方法」を段階的に解説します。



Today's Contents



【1. 平均値(Mean)】
データの中心位置を示す最も一般的な指標です。全データの合計をデータ数で割って算出します。ただし外れ値の影響を受けやすい点に注意が必要です。

~理論~
  全データの合計をデータ数で割った値
~活用シーン~
 製造工程の平均不良率算出
 店舗の1日平均売上高
 対称分布(正規分布など)のデータ分析
~メリット~
 計算が簡単で直感的に理解しやすい
 すべてのデータを考慮した公平な指標
~デメリット~
 外れ値に極めて敏感(例:年収データに億単位の値が1件あると平均が歪む)
 非対称分布では実態を反映しない(例:所得分布で平均値が大多数の実感より高くなる)

【2. 中央値(Median)】
データを小さい順に並べたときの真ん中の値。外れ値の影響を受けにくいため、所得分布など偏りのあるデータの分析で重宝します。

~理論~
  データを順番に並べた中央の値
~活用シーン~
 不動産価格や所得分布など外れ値が多いデータ
 顧客の滞在時間分析(一部の長期滞在者の影響排除)
 非対称分布データの中心傾向把握
~メリット~
 外れ値の影響を受けない
 極端な値が含まれる実データに適応可能
~デメリット~
 データ数が偶数の場合の計算方法に注意が必要
 すべてのデータを活用しないため情報量が限定的

【3. 最頻値(Mode)】
最も頻繁に出現する値です。カテゴリデータの分析(例:人気色ランキング)で活用されます。

~理論~
 最も頻度が高い値
~活用シーン
 アンケートの最多回答項目の特定
 小売業の「最も売れた商品サイズ」分析
 カテゴリデータ(性別、地域など)の分析
~メリット~
 数値データだけでなくカテゴリデータにも適用可能
 外れ値の影響を受けない
~デメリット~
 複数の最頻値(多峰性分布)が存在する場合の解釈が困難
 連続値データでは実用性が低い(例:身長データで厳密な最頻値が存在しない)

【4. 分散(Variance)】
データのばらつきを表します。平均との差の2乗の平均値で計算されます。
値が大きいほどデータの散らばりが激しいことを意味します。

~理論~
 平均との差の2乗平均
~活用シーン~
 リスク管理(金融資産の価格変動の定量化)
 実験データの再現性評価
 品質管理におけるバラツキの監視
~メリット~
 すべてのデータのばらつきを考慮
 数学的処理(微分など)が容易
~デメリット~
 単位が元データの2乗となるため直感的解釈が困難
 外れ値の影響を強く受ける

【5. 標準偏差(Standard Deviation)】
分散の平方根。単位を元データに揃えることで、直感的な解釈が可能になります。「68-95-99.7則」で正規分布の理解に役立ちます。

~理論~
 分散の平方根
~活用シーン~
 テストの点数のばらつき評価
 生産ラインの製品寸法の均一性チェック
 投資リスクの比較(値が大きいほどリスク大)
~メリット~
 元データと同じ単位で解釈可能
 正規分布の場合「平均±1σ」で約68%のデータを包含
~デメリット~
 分散と同様に外れ値の影響を受ける
 非対称分布では解釈が複雑化

【6. 範囲(Range)】
最大値と最小値の差。
データの広がりを簡易的に把握できますが、外れ値に敏感です。

~理論~
 最大値 - 最小値
~活用シーン~
 気温の日較差の把握
 在庫管理における最小・最大在庫量の確認
 データの大まかな広がりの把握
~メリット~
 計算が瞬時に可能
 データ分布の両端を確認できる
~デメリット~
 1組の外れ値で結果が大きく変動
 データの分布形状に関する情報が欠如

【7. 四分位数(Quartiles)】
データを4等分する値です。
第1四分位数(25%点)、第3四分位数(75%点)を組み合わせた「四分位範囲」は外れ値の影響を排除した分析に有用です。

~理論~
 データを4等分する値(Q1:25%, Q2:50%, Q3:75%)
~活用シーン~
 ボックスプロットによる可視化
 外れ値検出(IQR = Q3 - Q1を用いる)
 非対称分布データの分析(例:家賃分布)
~メリット~
 中央値との組み合わせで分布を多角的に分析可能
 外れ値の影響を排除した解釈が可能
~デメリット~
 計算方法が複数存在(例:N+1方式)
 データ数が少ない場合の信頼性低下

【8. 歪度(Skewness)】
データ分布の非対称性を測定します。
正の値は右に裾が長く、負の値は左に裾が長い分布を示します。

~理論~
 分布の非対称性(正:右裾が長い,負:左裾が長い)
~活用シーン~
 金融商品のリスク分析(右裾分布は暴落リスク)
 顧客購買データの偏り分析
 テストの点分布の偏り評価
~メリット~
 数値で分布の偏りを客観的に評価可能
 0に近いほど対称性が高いと判断
~デメリット~
 値の解釈に経験が必要(目安:|0.5|以上で有意な偏り)
 単峰分布でのみ有効

【9. 尖度(Kurtosis)】
分布の尖り度合いを表します。
正規分布を基準に、値が大きいと尖った分布、小さいと平坦な分布となります。

~理論~
 分布の尖り度(正規分布を基準に3.0)
~活用シーン~
 リスク管理(尖度大→テールリスク大)
 品質検査(尖度小→均一な製品特性)
 自然現象の分布特性分析(例:降水量分布)
~メリット~
 外れ値の存在確率を推測可能
 分布の過度な尖りを検出
~デメリット~
 解釈が困難(例:ExcelとPythonで計算式が異なる)
 単に「尖っている」だけで実務的な意味が不明な場合あり


【外れ値の有無】
 ある → 中央値 + IQR
 ない → 平均値 + 標準偏差

【データタイプ】
 カテゴリ → 最頻値
 連続値 → 平均/中央値 + 分散/標準偏差

【分布形状】
 対称 → 平均値
 非対称 → 中央値

【リスク分析】
 尖度でテールリスクを評価
 歪度でリスクの方向性を判断

※実例: ECサイトの購入金額分析※
 平均値:広告効果の全体評価
 中央値:大多数顧客の典型的な購買力把握
 歪度:高額購入者の存在度合いの定量化
 尖度:超高額購入イベントの発生確率推測

統計量は単体で使うより「平均±標準偏差」「中央値+IQR」などの
組み合わせが効果的です。
数値の意味を正しく理解することで、データからより深いインサイトを引き出せるようになります。


【ステップ1:データ準備】
まずサンプルデータを含むDataFrameを作成します。
以下は顧客の年齢と購入金額を想定した例です。

import pandas as pd
import numpy as np

# サンプルデータ生成
np.random.seed(42)
data = {
 '年齢': np.random.randint(20, 65, 100),
 '購入金額': np.random.normal(5000, 1500, 100)
}
df = pd.DataFrame(data)

# 意図的に外れ値を追加
df.loc[100] = [70, 25000]


【ステップ2:基本統計量の一括表示】
describe()メソッドで主要統計量をまとめて確認できます。

print(df.describe())



【ステップ3:個別統計量の算出】
特定の統計量を個別に計算する方法です。

# 平均値と中央値の比較
print(f"平均年齢: {df['年齢'].mean():.1f}歳")
print(f"中央値年齢: {df['年齢'].median()}歳")

# 外れ値の影響確認
print(f"\n平均購入金額: {df['購入金額'].mean():.1f}円")
print(f"中央値購入金額: {df['購入金額'].median():.1f}円")

# ばらつき指標
print(f"\n購入金額の分散: {df['購入金額'].var():.1f}")
print(f"購入金額の標準偏差: {df['購入金額'].std():.1f}")

# 四分位範囲
Q1 = df['購入金額'].quantile(0.25)
Q3 = df['購入金額'].quantile(0.75)
print(f"\n四分位範囲: {Q3 - Q1:.1f}円")

# 歪度と尖度
print(f"\n年齢の歪度: {df['年齢'].skew():.2f}")
print(f"購入金額の尖度: {df['購入金額'].kurtosis():.2f}")




【ステップ4:結果の解釈】
平均年齢42.5歳に対し中央値42歳:ほぼ対称分布
購入金額は平均5223円 vs 中央値4987円:外れ値(25000円)で平均が引き上げ
購入金額の標準偏差2918円:約68%のデータが2305~8141円の範囲
歪度0.12:年齢分布がほぼ対称
尖度8.52:購入金額分布が非常に尖っている(外れ値影響)

※重要なポイント
外れ値の影響:平均値は1つの外れ値で大きく変化します。必ず中央値と比較しましょう。
単位の一致:標準偏差は元データと単位が同じため、分散より解釈しやすい特性があります。
分布の形状:歪度・尖度はヒストグラムと組み合わせて確認すると効果的です。
実務での活用:顧客分析では「中央値」、品質管理では「標準偏差」が頻繁に使われます。


本日はここまで。
お疲れ様でした!


コメント