分散(variance)は、データの散らばり具合を「平均 からの差の二乗の平均」として定量化する指標である。代表値が「分布の中心」を表すなら、分散は「分布の広がり」を表す代表的な量となる。中心と広がりがあれば、分布の最も基本的な姿(正規分布なら完全に決まる)が記述できる。

  • 母分散: sigma2 = E[(X - mu)^2]
  • 標本分散: s2 = sum((xi - x_bar)^2) / (n - 1)

ここで mux_bar平均 を表す。X は確率変数、E[ ] は期待値。標本分散の分母が n - 1 になっているのは「不偏推定量にするため」で、標本平均自体を 1 つ計算に使った分の自由度を引いている(不偏推定の話は後述)。

なぜ二乗するのか

分散の定義に「二乗」が入っているのは、単に大きい値が欲しいからではなく、複数の数学的な要請が同時に効いているためである。

  • 符号の打ち消しを避ける: 平均からの差 xi - mu をそのまま足し合わせると、正と負が打ち消し合って常にゼロになる。絶対値 |xi - mu| を使う手もあるが(これは平均絶対偏差、MAD)、絶対値は微分不可能で数学的扱いが面倒
  • 大きな逸脱を強調する: 二乗するので、平均から大きく離れた値ほど寄与が増える。差 2 → 4 倍の寄与差 10 → 100 倍の寄与。これにより「分布の裾の重さ」が分散に反映される
  • L2 損失と直接対応する: 分散は最小二乗推定の損失関数と同じ形をしている。線形回帰や PCA などの主要な手法が「分散を最小化・最大化する」枠組みで定式化できるのはこのため
  • 加法性が成り立つ: 独立な確率変数 XY について Var(X + Y) = Var(X) + Var(Y) が成り立つ。これは絶対値ベースの散らばり指標では成り立たない便利な性質

絶対値ベースの代替(平均絶対偏差、四分位範囲)は外れ値に強いが、数学的扱いやすさを犠牲にする。「外れ値に弱いが扱いやすい分散」と「外れ値に強いが扱いにくい絶対値系」というトレードオフがある、と理解しておくと判断軸が立ちやすい。

前提・注意

  • データは数値であることが前提
  • 外れ値の影響を強く受ける
  • 単位が二乗になる(元の単位のまま比較できないので、直感的な大きさは標準偏差で見る)

利点

  • ばらつきを定量的に測れる
  • 数学的に扱いやすい(加法性がある)
  • 標準偏差など他の指標の基盤になる

欠点

  • 外れ値に弱い
  • 単位が直感的でない

Python での実例

以下は、平均(算術平均)が同じで分散が異なる分布を比較する例。

import numpy as np
import matplotlib.pyplot as plt

rng = np.random.default_rng(0)
values1 = rng.normal(loc=0.0, scale=1.0, size=500)
values2 = rng.normal(loc=0.0, scale=3.0, size=500)

plt.figure(figsize=(6, 4))
plt.hist(values1, bins=30, color="#59a14f", alpha=0.55, edgecolor="white", label="sigma=1")
plt.hist(values2, bins=30, color="#e15759", alpha=0.45, edgecolor="white", label="sigma=3")
plt.title("Variance comparison")
plt.xlabel("Value")
plt.ylabel("Count")
plt.legend()
plt.tight_layout()
plt.show()

出力:

variance_hist


分散の分解と加法性

分散には数学的に重要な性質がいくつかあり、応用統計の多くがこれらに支えられている。

1. 分散分解(全体分散 = 群内分散 + 群間分散)

データを複数のグループ(クラスや特徴量の値ごと)に分けたとき、全体の分散は次のように分解できる。

Var(全体) = E[Var(X|Group)] + Var(E[X|Group])
         ↑                  ↑
         群内分散の平均     群間平均の分散

これは ANOVA(分散分析)の核心であり、機械学習では「特徴量がどれだけ目的変数のばらつきを説明するか」を評価する基盤となる。決定木の分割評価(不純度の減少)も同じ発想を使っている。

2. 加法性(独立変数の和の分散)

独立な確率変数 XY について、

Var(X + Y) = Var(X) + Var(Y)
Var(aX + b) = a^2 * Var(X)

線形結合の分散がこのように単純に計算できるのは、分散が「二乗ベース」であるおかげである。中心極限定理(標本平均の分布が正規分布に近づく)の証明にもこの加法性が使われている。

共分散への橋渡し

分散は 1 変数の散らばりを表すが、2 変数の関係を見る場合は 共分散(covariance) に拡張される。

Cov(X, Y) = E[(X - mu_x)(Y - mu_y)]

Cov(X, X) = Var(X) なので、共分散は分散の 2 変数版と見ることができる。さらに、共分散を両者の標準偏差 で割って正規化したものが 相関係数 となる。分散 → 共分散 → 相関係数 という階段は、統計学の基礎構造を成している。

数学での使いどころ

数学・統計では分散は以下で使われる。

  • ばらつきの尺度(中心だけでなく広がりを見る)
  • 分散分解(ANOVA、決定木の分割評価、変動の説明力)
  • 共分散・相関係数 の土台
  • 不偏推定量・最尤推定の理論(推定量の分散で精度を測る)
  • 大数の法則・中心極限定理(標本平均の分散が sigma2 / n に縮む)

機械学習での使いどころ

機械学習では分散は前処理・学習アルゴリズム・評価のあらゆる場面で頻出する。

  • 特徴量のスケール確認: 分散が極端に大きい/小さい特徴量はモデルを歪めるので、事前に確認
  • 標準化: 分散 1 に揃える前処理。LogisticRegressionkNN など多くのモデルで必須
  • 低分散特徴量の除外: VarianceThreshold で「ほとんど動かない特徴量」を捨てる
  • PCA の主成分の重要度: 各主成分は元データを「分散が最大になる方向」へ射影したもの。主成分の固有値 = その軸上での分散
  • 決定木の分割評価(回帰木): 分割前後の分散減少量を「不純度の減少」として使う
  • バギング・RandomForest の効果: 独立な木の平均で予測の分散を 1/n に縮める
  • バイアス-バリアンストレードオフ: モデルの誤差を「バイアス² + 分散 + ノイズ」に分解する古典的枠組み。過学習 はモデルの分散が大きい状態
  • 推定値の信頼区間: 推定量の標準誤差は標準偏差で表すが、根拠は分散

具体的な利用例:

  • 特徴量選択の初手: VarianceThreshold(threshold=0.01) でほぼ定数の特徴量を捨てる
  • A/B テストの効果検定: 群間平均の差を群内分散で割って t 値を計算する
  • アンサンブル学習: 個別モデルの予測の分散を平均で抑える

適さないケース

  • 外れ値が多いデータ(ロバストな指標が必要)
  • 単位をそのまま解釈したい場合(標準偏差のほうが直感的)