分散(variance)は、データの散らばり具合を「平均 からの差の二乗の平均」として定量化する指標である。代表値が「分布の中心」を表すなら、分散は「分布の広がり」を表す代表的な量となる。中心と広がりがあれば、分布の最も基本的な姿(正規分布なら完全に決まる)が記述できる。
- 母分散:
sigma2 = E[(X - mu)^2] - 標本分散:
s2 = sum((xi - x_bar)^2) / (n - 1)
ここで mu と x_bar は平均 を表す。X は確率変数、E[ ] は期待値。標本分散の分母が n - 1 になっているのは「不偏推定量にするため」で、標本平均自体を 1 つ計算に使った分の自由度を引いている(不偏推定の話は後述)。
なぜ二乗するのか
分散の定義に「二乗」が入っているのは、単に大きい値が欲しいからではなく、複数の数学的な要請が同時に効いているためである。
- 符号の打ち消しを避ける: 平均からの差
xi - muをそのまま足し合わせると、正と負が打ち消し合って常にゼロになる。絶対値|xi - mu|を使う手もあるが(これは平均絶対偏差、MAD)、絶対値は微分不可能で数学的扱いが面倒 - 大きな逸脱を強調する: 二乗するので、平均から大きく離れた値ほど寄与が増える。
差 2 → 4 倍の寄与、差 10 → 100 倍の寄与。これにより「分布の裾の重さ」が分散に反映される - L2 損失と直接対応する: 分散は最小二乗推定の損失関数と同じ形をしている。線形回帰や PCA などの主要な手法が「分散を最小化・最大化する」枠組みで定式化できるのはこのため
- 加法性が成り立つ: 独立な確率変数
XとYについて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()
出力:
分散の分解と加法性
分散には数学的に重要な性質がいくつかあり、応用統計の多くがこれらに支えられている。
1. 分散分解(全体分散 = 群内分散 + 群間分散)
データを複数のグループ(クラスや特徴量の値ごと)に分けたとき、全体の分散は次のように分解できる。
Var(全体) = E[Var(X|Group)] + Var(E[X|Group])
↑ ↑
群内分散の平均 群間平均の分散
これは ANOVA(分散分析)の核心であり、機械学習では「特徴量がどれだけ目的変数のばらつきを説明するか」を評価する基盤となる。決定木の分割評価(不純度の減少)も同じ発想を使っている。
2. 加法性(独立変数の和の分散)
独立な確率変数 X と Y について、
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 に揃える前処理。LogisticRegression や kNN など多くのモデルで必須
- 低分散特徴量の除外:
VarianceThresholdで「ほとんど動かない特徴量」を捨てる - PCA の主成分の重要度: 各主成分は元データを「分散が最大になる方向」へ射影したもの。主成分の固有値 = その軸上での分散
- 決定木の分割評価(回帰木): 分割前後の分散減少量を「不純度の減少」として使う
- バギング・RandomForest の効果: 独立な木の平均で予測の分散を
1/nに縮める - バイアス-バリアンストレードオフ: モデルの誤差を「バイアス² + 分散 + ノイズ」に分解する古典的枠組み。過学習 はモデルの分散が大きい状態
- 推定値の信頼区間: 推定量の標準誤差は標準偏差で表すが、根拠は分散
具体的な利用例:
- 特徴量選択の初手:
VarianceThreshold(threshold=0.01)でほぼ定数の特徴量を捨てる - A/B テストの効果検定: 群間平均の差を群内分散で割って t 値を計算する
- アンサンブル学習: 個別モデルの予測の分散を平均で抑える
適さないケース
- 外れ値が多いデータ(ロバストな指標が必要)
- 単位をそのまま解釈したい場合(標準偏差のほうが直感的)