← 統計検定テキスト 一覧

📊 対象級:準1級 | 重要度:B(標準)

要点(BLUF)

判別分析は「群(クラス)があらかじめ分かっているデータから判別ルールを学習し、新しいデータをどの群に属するか分類する」教師ありの手法です。準1級では「マハラノビス距離による分類」「Fisherの線形判別の導出(群間変動と群内変動の比の最大化)」「ベイズ判別から LDA・QDA がどう出てくるか」が問われます。中心となる距離はこの一行に集約されます。

  D2(x,μ)=(xμ)Σ1(xμ)  \boxed{\;D^2(\mathbf x,\boldsymbol\mu)=(\mathbf x-\boldsymbol\mu)^\top\Sigma^{-1}(\mathbf x-\boldsymbol\mu)\;}

要するに「群の中心からの距離を、その群のばらつき(共分散)で割り引いて測り、一番近い群に割り当てる」ということです。


0. 問題設定:判別分析とは何か

KK 個の群(クラス)G1,,GKG_1,\dots,G_K があり、どのデータがどの群に属するか分かっている学習データが与えられているとします。判別分析の目的は、この学習データから判別ルール(判別関数)を作り、群が未知の新しい観測 x\mathbf x を適切な群に割り当てることです。

ここで決定的に重要なのが「群が既知」という点です。これが**教師あり(supervised)**学習であることを意味します。群が未知のままデータをグループ化する手法は別物(クラスター分析)であり、混同が頻出の引っかけです(クラスター分析、後述の ⚠️ 節)。

graph LR
  subgraph 判別分析["判別分析(教師あり)"]
    A["学習データ<br/>群ラベルが既知"] --> B["判別ルールを学習"]
    B --> C["新しいデータ x を<br/>既知の群へ分類"]
  end
  subgraph クラスター分析["クラスター分析(教師なし)"]
    D["ラベルなしデータ"] --> E["似たもの同士を<br/>グループ化"]
  end

判別の戦略には大きく2系統あり、結論から言うと両者は等分散正規のもとで一致します

  1. 距離ベース:各群の中心への「距離」を測り、最も近い群へ割り当てる(マハラノビス距離)。
  2. 確率ベース:各群に属する確率(事後確率)を計算し、最も高い群へ割り当てる(ベイズ判別)。

Fisherの線形判別はこれらとは別の動機(射影軸の最適化)から出発しますが、2群・等分散のもとでは同じ線形境界に行き着きます。以下、順に見ます。


1. マハラノビス距離

1.1 定義

群の平均(中心)を μ\boldsymbol\mu、共分散行列を Σ\Sigma とするとき、観測 x\mathbf x から群中心までの**マハラノビス距離(の二乗)**は

  D2(x,μ)=(xμ)Σ1(xμ)  \boxed{\;D^2(\mathbf x,\boldsymbol\mu)=(\mathbf x-\boldsymbol\mu)^\top\Sigma^{-1}(\mathbf x-\boldsymbol\mu)\;}

です。各群について D2D^2 を計算し、D2D^2 が最も小さい群へ x\mathbf x を割り当てる、というのが距離ベースの判別の基本形です。共分散行列・相関行列の基礎は 分散共分散行列・相関行列 を参照してください。

1.2 なぜ共分散の逆行列を挟むのか

中心からの「素朴な距離」はユークリッド距離 xμ2=(xμ)(xμ)\lVert\mathbf x-\boldsymbol\mu\rVert^2=(\mathbf x-\boldsymbol\mu)^\top(\mathbf x-\boldsymbol\mu) です。マハラノビス距離はこれに Σ1\Sigma^{-1} を挟んだものです。意味を分解します。

Σ=I\Sigma=I(単位行列)なら、マハラノビス距離はユークリッド距離に一致します。

Σ=I  D2=(xμ)I1(xμ)=(xμ)(xμ)=xμ2\Sigma=I\ \Longrightarrow\ D^2=(\mathbf x-\boldsymbol\mu)^\top I^{-1}(\mathbf x-\boldsymbol\mu)=(\mathbf x-\boldsymbol\mu)^\top(\mathbf x-\boldsymbol\mu)=\lVert\mathbf x-\boldsymbol\mu\rVert^2

要するに「各変数が分散1で互いに無相関なら、両者は同じもの」です。つまりマハラノビス距離はユークリッド距離の一般化です。

ではなぜ Σ1\Sigma^{-1} を挟むのか。理由は変数ごとのばらつき・相関で正規化するためです。

幾何的には、D2=D^2= 一定 の点の集合は μ\boldsymbol\mu を中心とする楕円体Σ\Sigma の固有ベクトルが軸、固有値の平方根が軸長)になります。Σ=I\Sigma=I ならこれが球面(ユークリッド)に戻ります。

直観:「同じcmだけ中心から離れていても、その方向に普段からデータが大きくばらついているなら、それは“普通の範囲内”。逆にめったに動かない方向に少し離れただけなら、それは“異常”」。この“ばらつきで割り引く”操作が Σ1\Sigma^{-1} です。

1.3 群ごとに共分散が同じか違うか

各群が固有の共分散 Σk\Sigma_k を持つと考えるか、全群で共通の Σ\Sigma を使うかで、後述の LDA / QDA が分岐します。実務では群ごとの共分散をまとめた併合(プール)共分散行列

SW=1nKk=1KiGk(xixˉk)(xixˉk)S_W=\frac{1}{n-K}\sum_{k=1}^{K}\sum_{i\in G_k}(\mathbf x_i-\bar{\mathbf x}_k)(\mathbf x_i-\bar{\mathbf x}_k)^\top

を共通の Σ\Sigma の推定として使うのが等分散(LDA)の立場です。この SWS_W は次の Fisher判別の群内変動行列と本質的に同じものです。


2. Fisherの線形判別(導出・省略しない)

2.1 アイデア:射影してから1次元で分ける

Fisherの線形判別(Linear Discriminant, LDA の原型)は、多次元データ x\mathbf x を方向ベクトル a\mathbf a に射影した1次元のスコア y=axy=\mathbf a^\top\mathbf x を作り、その軸上で群がいちばんよく分かれる方向 a\mathbf a を選ぶという発想です。

「よく分かれる」を数式にするため、射影後の2種類のばらつきを考えます。

flowchart LR
  X["多次元データ x"] -->|"y = aᵀx に射影"| Y["1次元スコア y"]
  Y --> B["群間変動 S_B<br/>(中心の隔たり)大きくしたい"]
  Y --> W["群内変動 S_W<br/>(群内の散らばり)小さくしたい"]
  B & W --> J["比 J(a)=aᵀS_B a / aᵀS_W a を最大化"]

2.2 群間変動・群内変動の定義(多次元・KK 群)

各群の標本平均を xˉk\bar{\mathbf x}_k、全体平均を xˉ\bar{\mathbf x}、群 kk の標本数を nkn_k とします。

SB=k=1Knk(xˉkxˉ)(xˉkxˉ)(群間変動行列)S_B=\sum_{k=1}^{K}n_k(\bar{\mathbf x}_k-\bar{\mathbf x})(\bar{\mathbf x}_k-\bar{\mathbf x})^\top \qquad\text{(群間変動行列)} SW=k=1KiGk(xixˉk)(xixˉk)(群内変動行列)S_W=\sum_{k=1}^{K}\sum_{i\in G_k}(\mathbf x_i-\bar{\mathbf x}_k)(\mathbf x_i-\bar{\mathbf x}_k)^\top \qquad\text{(群内変動行列)}

要するに SBS_B は「群の中心が全体平均からどれだけ離れているか」、SWS_W は「各データが自分の群の中心からどれだけ離れているか」を行列で測ったものです。

方向 a\mathbf a に射影したスコア y=axy=\mathbf a^\top\mathbf x の群間・群内変動は、それぞれ aSBa\mathbf a^\top S_B\mathbf aaSWa\mathbf a^\top S_W\mathbf a(いずれもスカラー)になります。

2.3 Fisherの判別比とその最大化

「群間を大きく、群内を小さく」を1つの比にまとめたのがFisherの判別比です。

  J(a)=aSBaaSWa  \boxed{\;J(\mathbf a)=\frac{\mathbf a^\top S_B\mathbf a}{\mathbf a^\top S_W\mathbf a}\;}

これを最大にする a\mathbf a が、群を最もよく分離する射影方向です。

スケール不変性に注意。 a\mathbf acac\mathbf a に変えても分子・分母がともに c2c^2 倍されて JJ は不変です。つまり a\mathbf a の「長さ」には意味がなく「向き」だけが問題です。そこで分母を固定する制約 aSWa=1\mathbf a^\top S_W\mathbf a=1 を課し、その下で分子 aSBa\mathbf a^\top S_B\mathbf a を最大化する問題に言い換えます。

2.4 ラグランジュ未定乗数法 → 一般化固有値問題

制約付き最大化なのでラグランジュ未定乗数 λ\lambda を導入します。

L(a,λ)=aSBaλ(aSWa1)L(\mathbf a,\lambda)=\mathbf a^\top S_B\mathbf a-\lambda\,(\mathbf a^\top S_W\mathbf a-1)

a\mathbf a で微分してゼロと置きます。二次形式 aAa\mathbf a^\top A\mathbf a の微分は AA が対称なら 2Aa2A\mathbf a重回帰分析 の行列微分公式と同じ)で、SB,SWS_B,S_W はともに対称行列です。

La=2SBa2λSWa=0      SBa=λSWa  \frac{\partial L}{\partial\mathbf a}=2S_B\mathbf a-2\lambda S_W\mathbf a=\mathbf 0 \;\Longrightarrow\; \boxed{\;S_B\mathbf a=\lambda S_W\mathbf a\;}

これが**一般化固有値問題(generalized eigenvalue problem)**です。要するに「Fisher判別比を最大化する方向 a\mathbf a は、SBa=λSWaS_B\mathbf a=\lambda S_W\mathbf a を満たす固有ベクトルである」ということです。

SWS_W が正則なら左から SW1S_W^{-1} を掛けて、

SW1SBa=λaS_W^{-1}S_B\,\mathbf a=\lambda\,\mathbf a

という通常の固有値問題になります。SW=IS_W=I ならただの固有値問題 SBa=λaS_B\mathbf a=\lambda\mathbf a(主成分分析と同形)に退化する点が、マハラノビス距離が Σ=I\Sigma=I でユークリッド距離に戻るのと同じ構図です。

なお、固有値 λ\lambda そのものが判別比 J(a)J(\mathbf a) の値です。実際 SBa=λSWaS_B\mathbf a=\lambda S_W\mathbf a の両辺に左から a\mathbf a^\top を掛けると aSBa=λaSWa\mathbf a^\top S_B\mathbf a=\lambda\,\mathbf a^\top S_W\mathbf a となり、J(a)=λJ(\mathbf a)=\lambda が出ます。だから最大固有値に対応する固有ベクトルが最良の判別方向です。KK 群では K1K-1 本までの固有ベクトル(正の固有値を持つもの)を判別軸として使えます(SBS_B のランクが K1K-1 のため)。

2.5 2群の場合:判別方向が SW1(xˉ1xˉ2)S_W^{-1}(\bar{\mathbf x}_1-\bar{\mathbf x}_2) に比例

K=2K=2 では群間変動行列がランク1の特別な形になります。2群の平均差を d=xˉ1xˉ2\mathbf d=\bar{\mathbf x}_1-\bar{\mathbf x}_2 と置くと、SBS_B は本質的に

SBddS_B\propto \mathbf d\,\mathbf d^\top

と書けます(外積なのでランク1)。これを一般化固有値問題に入れると、

SW1SBa=λa    SW1d(da)=λaS_W^{-1}S_B\,\mathbf a=\lambda\mathbf a \;\Longrightarrow\; S_W^{-1}\mathbf d\,(\mathbf d^\top\mathbf a)=\lambda\mathbf a

ここで da\mathbf d^\top\mathbf aスカラーです。すると左辺は「SW1dS_W^{-1}\mathbf d という固定ベクトルのスカラー倍」なので、a\mathbf a も必ず SW1dS_W^{-1}\mathbf d の向きを向きます。固有ベクトルは向きだけが意味を持つ(2.3)ので、結論は

  a  SW1(xˉ1xˉ2)  \boxed{\;\mathbf a\ \propto\ S_W^{-1}(\bar{\mathbf x}_1-\bar{\mathbf x}_2)\;}

要するに「2群の判別方向は、2群の平均の差を群内共分散で正規化したベクトル」です。SW=IS_W=I なら単純な平均差 xˉ1xˉ2\bar{\mathbf x}_1-\bar{\mathbf x}_2 の方向(2群の中点を結ぶ向き)になりますが、群内に相関やばらつきの偏りがあれば SW1S_W^{-1} がそれを補正して向きを傾けます。判別の境界はこの a\mathbf a に直交する超平面(線形境界)になります。


3. ベイズ判別と LDA・QDA

3.1 事後確率最大の群へ割り当てる

確率ベースの判別では、観測 x\mathbf x が与えられたときに各群に属する事後確率 P(Gkx)P(G_k\mid\mathbf x) を計算し、これが最大の群へ割り当てます。事後確率はベイズの定理(ベイズの定理)で書けます。

P(Gkx)=πkfk(x)l=1Kπlfl(x)P(G_k\mid\mathbf x)=\frac{\pi_k\,f_k(\mathbf x)}{\displaystyle\sum_{l=1}^{K}\pi_l\,f_l(\mathbf x)}

したがって判別ルールは「πkfk(x)\pi_k f_k(\mathbf x) を最大にする kk を選ぶ」に帰着します。この事後確率最大化による判別は、後述のとおり誤判別確率を最小にするという意味で最適です(ベイズ最適)。

3.2 多変量正規を仮定する → 判別関数

各群が多変量正規分布(多変量正規分布)に従うと仮定します。

fk(x)=1(2π)p/2Σk1/2exp ⁣(12(xμk)Σk1(xμk))f_k(\mathbf x)=\frac{1}{(2\pi)^{p/2}\,\lvert\Sigma_k\rvert^{1/2}}\exp\!\left(-\tfrac12(\mathbf x-\boldsymbol\mu_k)^\top\Sigma_k^{-1}(\mathbf x-\boldsymbol\mu_k)\right)

πkfk(x)\pi_k f_k(\mathbf x) を最大化するのは、その対数を最大化するのと同じです。log(πkfk(x))\log(\pi_k f_k(\mathbf x)) から kk に依らない定数 p2log(2π)-\tfrac{p}{2}\log(2\pi) を落とすと、群 kk判別関数

δk(x)=12logΣk12(xμk)Σk1(xμk)+logπk\delta_k(\mathbf x)=-\tfrac12\log\lvert\Sigma_k\rvert-\tfrac12(\mathbf x-\boldsymbol\mu_k)^\top\Sigma_k^{-1}(\mathbf x-\boldsymbol\mu_k)+\log\pi_k

が得られ、δk(x)\delta_k(\mathbf x) が最大の群へ割り当てます。第2項にマハラノビス距離 12Dk2-\tfrac12 D_k^2 がそのまま現れている点に注目してください。事前確率が等しく共分散も等しいなら、ベイズ判別はマハラノビス距離最小の群を選ぶことと完全に一致します(1節と3節がつながる)。

3.3 等分散なら線形(LDA)、異分散なら二次(QDA)

LDAの判別境界は直線(等分散のとき)

2群が等分散なら判別境界は直線(黒)。境界は平均差をプール共分散の逆行列で重み付けた向きに垂直。異分散だと QDA で曲線になる。図は simulations/hanbetsu_lda_kyoukai.py で生成。

判別の境界が線形か二次曲面かは、群ごとの共分散が共通か否かだけで決まります。ここが準1級最頻出の論点です。

等分散 Σk=Σ\Sigma_k=\Sigma(共通)の場合 → LDA(線形判別分析)。 全群で Σ\Sigma が同じだと、判別関数の二次項を展開したとき

12(xμk)Σ1(xμk)=12xΣ1xk に依らない+μkΣ1x12μkΣ1μk-\tfrac12(\mathbf x-\boldsymbol\mu_k)^\top\Sigma^{-1}(\mathbf x-\boldsymbol\mu_k) =-\tfrac12\underbrace{\mathbf x^\top\Sigma^{-1}\mathbf x}_{k\text{ に依らない}}+\boldsymbol\mu_k^\top\Sigma^{-1}\mathbf x-\tfrac12\boldsymbol\mu_k^\top\Sigma^{-1}\boldsymbol\mu_k

xΣ1x\mathbf x^\top\Sigma^{-1}\mathbf x全群共通なので argmax\arg\max では相殺します。logΣ\log\lvert\Sigma\rvert も共通で消えます。残るのは x\mathbf x について1次の項だけです。

δk(x)=μkΣ1x12μkΣ1μk+logπkx の1次式)\delta_k(\mathbf x)=\boldsymbol\mu_k^\top\Sigma^{-1}\mathbf x-\tfrac12\boldsymbol\mu_k^\top\Sigma^{-1}\boldsymbol\mu_k+\log\pi_k \qquad\text{($\mathbf x$ の1次式)}

判別関数が x\mathbf x の1次式なので、2群の境界 δ1(x)=δ2(x)\delta_1(\mathbf x)=\delta_2(\mathbf x) は**超平面(直線・線形境界)**になります。これが LDA です。そしてこの境界の法線方向は Σ1(μ1μ2)\Sigma^{-1}(\boldsymbol\mu_1-\boldsymbol\mu_2) で、2節の Fisher の判別方向 SW1(xˉ1xˉ2)S_W^{-1}(\bar{\mathbf x}_1-\bar{\mathbf x}_2) と一致しますΣ\SigmaSWS_W で推定すれば同一)。距離ベース・確率ベース・Fisher の3つが等分散正規のもとで合流するわけです。

異分散 Σk\Sigma_k が群ごとに異なる場合 → QDA(二次判別分析)。 Σk\Sigma_k が群ごとに違うと、二次項 12xΣk1x-\tfrac12\mathbf x^\top\Sigma_k^{-1}\mathbf xΣk1\Sigma_k^{-1} が群ごとに違うので相殺しませんlogΣk\log\lvert\Sigma_k\rvert も残ります。判別関数は x\mathbf x について2次のまま。

δk(x)=12logΣk12(xμk)Σk1(xμk)+logπkx の2次式)\delta_k(\mathbf x)=-\tfrac12\log\lvert\Sigma_k\rvert-\tfrac12(\mathbf x-\boldsymbol\mu_k)^\top\Sigma_k^{-1}(\mathbf x-\boldsymbol\mu_k)+\log\pi_k \qquad\text{($\mathbf x$ の2次式)}

境界 δ1=δ2\delta_1=\delta_2x\mathbf x の2次方程式なので**二次曲面(放物線・楕円・双曲線などの曲線境界)**になります。これが QDA です。

flowchart TD
  S["各群が多変量正規と仮定<br/>ベイズ判別(事後確率最大)"] --> Q{"群ごとの共分散 Σ_k は<br/>共通か(等分散か)?"}
  Q -- "等分散 Σ_k = Σ(共通)" --> L["二次項が相殺 → 判別関数は x の1次式<br/><b>LDA:線形境界(超平面)</b>"]
  Q -- "異分散 Σ_k が群ごとに異なる" --> QD["二次項が残る → 判別関数は x の2次式<br/><b>QDA:二次境界(曲面)</b>"]
LDA(線形判別分析)QDA(二次判別分析)
共分散の仮定全群共通 Σ\Sigma(等分散)群ごとに Σk\Sigma_k(異分散)
判別関数x\mathbf x の1次式x\mathbf x の2次式
判別境界超平面(線形)二次曲面(曲線)
推定パラメータ数少ない(Σ\Sigma は1個)多い(Σk\Sigma_k を群数だけ)
向く状況標本が少ない・群の散らばりが似ている標本が多い・群で散らばりが大きく違う

要するに「等分散を仮定すると二次項が消えて直線、異分散を許すと二次項が残って曲線」です。QDA は柔軟ですが群ごとに共分散を推定する分パラメータが多く、標本が少ないと過学習しやすい(推定が不安定)というトレードオフがあります。

3.4 事前確率と誤判別コスト

事前確率 πk\pi_k は判別関数に +logπk+\log\pi_k として入ります。ある群の事前確率が大きいほど、その群へ割り当てられやすくなる(境界がその群から遠ざかる)方向に効きます。実務では学習データ中の各群の出現割合 nk/nn_k/nπk\pi_k の推定に使うのが標準です。

誤判別の重大さが群によって違う場合(例:病気を見逃すコストと健康を病気と誤るコストが非対称)、誤判別コスト c(lk)c(l\mid k)(真は kk なのに ll と判定する損失)を重みとして導入し、期待損失を最小にする群へ割り当てるよう判別ルールを修正します。事前確率もコストも「どちらの群に倒すか」の重み付けという意味では同じ働きをします。


4. 誤判別率の評価

作った判別ルールがどれくらい当たるかを**誤判別率(misclassification rate)**で測ります。評価の仕方で見かけの性能が大きく変わるのが注意点です。

要するに「再代入は身内びいきで甘い評価、交差確認は他人の目で見た公正な評価」です。準1級では「再代入誤りは真の誤判別率を過小評価する/だから交差確認を使う」という対比が論点になります。


⚠️ 引っかけポイント・頻出論点


よくある疑問(Q&A)

Q1. なぜ距離をわざわざマハラノビス距離にするのですか。ユークリッド距離ではだめですか。

ユークリッド距離は「全方向に同じものさし」を当てますが、現実のデータは方向によってばらつきが違い、変数間に相関もあります。例えば身長と体重は相関しており、散布図の点群は斜めの楕円状に広がります。この楕円の長軸方向に少し離れても「よくあること」、短軸方向に同じだけ離れると「珍しいこと」です。ユークリッド距離はこの差を無視してしまいます。マハラノビス距離は Σ1\Sigma^{-1} でばらつきと相関を割り引き、「統計的に見てどれくらい珍しい離れ方か」を測ります。Σ=I\Sigma=I(分散1・無相関)の特別な場合だけ両者は一致します。

Q2. LDA と QDA はどちらを使えばよいですか。

群ごとの散らばり(共分散)が似ているなら LDA、明らかに違うなら QDA が原則です。ただし QDA は群ごとに共分散行列を推定するためパラメータが多く、標本数が少ないと推定が不安定になり、かえって性能が落ちます(過学習)。そのため「異分散っぽいが標本が少ない」ときは、あえて等分散を仮定する LDA の方が安定して良い結果を出すことがよくあります。要するに「QDA は柔軟だがデータを食う」ので、標本数と相談して選びます。

Q3. 判別分析とクラスター分析は何が違うのですか。どちらもグループ分けに見えます。

決定的な違いは「正解の群ラベルが最初から分かっているか」です。判別分析は、群が既知の学習データ(例:合格者/不合格者がラベル付きで揃っている)からルールを学び、新しい人を分類する教師あり手法。クラスター分析は、ラベルのないデータ(例:顧客データに分類は付いていない)を、似たもの同士で新たにグループ化する教師なし手法です。「分ける基準(群)が与えられているか/自分で見つけるか」で見分けます。クラスター分析は クラスター分析 で扱います。

Q4. 判別分析とロジスティック回帰はどちらも分類です。使い分けは?

両方とも「どの群か」を当てる手法ですが、考え方が逆向きです。LDA は各群のデータ分布を正規分布で表し、ベイズの定理で「この x\mathbf x はどの群らしいか」を逆算します(生成的)。ロジスティック回帰は群の分布を仮定せず、「群に属する確率」を直接モデル化します(識別的)。正規分布の仮定が妥当なら LDA が効率的ですが、仮定が外れる(外れ値・非正規)とロジスティック回帰の方が頑健です。実用上は、分布の仮定を置きたくない・解釈しやすいオッズ比が欲しい場面でロジスティック回帰、群が正規でデータが少ない場面で LDA、という使い分けが目安です。

Q5. 学習データで測った誤判別率が低いのに、新しいデータでは当たりません。なぜですか。

それは再代入誤りを見ているからです。判別ルールはその学習データに合わせて作られているので、同じデータを当てるのは有利で、誤判別率を実際より低く(楽観的に)見積もります。真の性能を知るには、学習に使っていないデータで評価する交差確認(特に1個抜き交差確認)を使ってください。再代入誤りと交差確認による誤判別率の差が大きいほど、そのモデルは過学習している、という診断にもなります。


まとめ


関連ノート