← 統計検定テキスト 一覧

📊 対象級:準1級 ・ 1級 | 重要度:C(低頻度)

要点(BLUF)

正準相関分析(CCA: Canonical Correlation Analysis)は、2つの変数群 X\mathbf Xpp 変数)と Y\mathbf Yqq 変数)について、それぞれの線形結合 u=aXu=\mathbf a^\top\mathbf Xv=bYv=\mathbf b^\top\mathbf Y を作り、その相関 corr(u,v)\mathrm{corr}(u,v) を最大化する 手法です。この u,vu,v正準変量(canonical variate)、最大化された相関が正準相関係数(canonical correlation) です。最大化問題は次の一般化固有値問題に帰着します。

  ΣXX1ΣXYΣYY1ΣYXa=ρ2a  \boxed{\;\Sigma_{XX}^{-1}\Sigma_{XY}\,\Sigma_{YY}^{-1}\Sigma_{YX}\,\mathbf a=\rho^2\,\mathbf a\;}

要するに「2群間の相関を最大にする方向 a\mathbf a は固有ベクトルとして求まり、正準相関係数 ρ\rho はその固有値の平方根」ということです。


1. 問題設定:2群間の「最も相関する向き」を探す

これまでの手法は、変数群の扱い方が違いました。

正準相関分析が扱うのは「複数 対 複数」です。例えば「学力テスト群(国語・数学・英語)」と「身体測定群(身長・体重・握力)」のように、性質の異なる2つの変数群があり、群と群の関係の強さを知りたいとき。個々の変数ペアの相関は p×qp\times q 個もあって全体像が見えません。そこで各群を1本の合成変数に縮約し、その2本の相関で群間関係を要約します。

graph LR
  subgraph X群["X群(p 変数)"]
    X1["x₁"]
    X2["x₂"]
    X3["x₃"]
  end
  subgraph Y群["Y群(q 変数)"]
    Y1["y₁"]
    Y2["y₂"]
  end
  X1 --> U["正準変量 u = aᵀX"]
  X2 --> U
  X3 --> U
  Y1 --> V["正準変量 v = bᵀY"]
  Y2 --> V
  U -. "相関 ρ を最大化" .- V

各群の中で重み a,b\mathbf a,\mathbf b を調整し、できあがる合成変数 u,vu,v の相関 ρ\rho が最大になるように選ぶ。これが正準相関分析の核心です。

記号の準備

2群を縦に積んだベクトル (XY)\begin{pmatrix}\mathbf X\\ \mathbf Y\end{pmatrix} の分散共分散行列を、群ごとにブロック分割します。基礎は 分散共分散行列・相関行列 です。

Σ=(ΣXXΣXYΣYXΣYY)\Sigma=\begin{pmatrix}\Sigma_{XX} & \Sigma_{XY}\\[2pt] \Sigma_{YX} & \Sigma_{YY}\end{pmatrix}

要するに「群内の関係(対角ブロック)と群間の関係(非対角ブロック)に分けて整理した」だけです。


2. 完全導出:相関最大化 → 一般化固有値問題

2.1 最大化する対象

正準変量 u=aXu=\mathbf a^\top\mathbf Xv=bYv=\mathbf b^\top\mathbf Y の分散・共分散を、上のブロックで書き下します。線形結合の分散・共分散の公式(Var(aX)=aΣXXa\mathrm{Var}(\mathbf a^\top\mathbf X)=\mathbf a^\top\Sigma_{XX}\mathbf a など)から、

Var(u)=aΣXXa,Var(v)=bΣYYb,Cov(u,v)=aΣXYb\mathrm{Var}(u)=\mathbf a^\top\Sigma_{XX}\mathbf a,\quad \mathrm{Var}(v)=\mathbf b^\top\Sigma_{YY}\mathbf b,\quad \mathrm{Cov}(u,v)=\mathbf a^\top\Sigma_{XY}\mathbf b

よって最大化したい相関は

ρ(a,b)=corr(u,v)=aΣXYbaΣXXabΣYYb\rho(\mathbf a,\mathbf b)=\mathrm{corr}(u,v) =\frac{\mathbf a^\top\Sigma_{XY}\mathbf b}{\sqrt{\mathbf a^\top\Sigma_{XX}\mathbf a}\,\sqrt{\mathbf b^\top\Sigma_{YY}\mathbf b}}

要するに「群間共分散(分子)を、各群の標準偏差(分母)で割った2群版の相関係数」です。

2.2 スケール不定性を制約で固定する

この ρ\rhoa,b\mathbf a,\mathbf b を定数倍しても値が変わりません(分子・分母が同じ倍率でスケールするため)。つまり a,b\mathbf a,\mathbf b大きさは無意味で、向きだけが本質です。そこで分散を1に固定する制約を課して一意化します。

Var(u)=aΣXXa=1,Var(v)=bΣYYb=1\mathrm{Var}(u)=\mathbf a^\top\Sigma_{XX}\mathbf a=1,\qquad \mathrm{Var}(v)=\mathbf b^\top\Sigma_{YY}\mathbf b=1

この制約下では分母が1になるので、問題は「aΣXYb\mathbf a^\top\Sigma_{XY}\mathbf b を最大化する」に簡約されます。要するに「向きの自由度だけ残し、分散1のスケールに固定した」わけです。

2.3 ラグランジュ未定乗数法

制約付き最大化なので、乗数 ρ1,ρ2\rho_1,\rho_2(係数 12\tfrac12 は後の式を綺麗にするため)を導入します。

L(a,b,ρ1,ρ2)=aΣXYbρ12(aΣXXa1)ρ22(bΣYYb1)\mathcal L(\mathbf a,\mathbf b,\rho_1,\rho_2) =\mathbf a^\top\Sigma_{XY}\mathbf b -\frac{\rho_1}{2}\bigl(\mathbf a^\top\Sigma_{XX}\mathbf a-1\bigr) -\frac{\rho_2}{2}\bigl(\mathbf b^\top\Sigma_{YY}\mathbf b-1\bigr)

a,b\mathbf a,\mathbf b で偏微分してゼロと置きます(2次形式の微分 (aAa)/a=2Aa\partial(\mathbf a^\top A\mathbf a)/\partial\mathbf a=2A\mathbf aAA は対称、を使う。詳細は 重回帰分析 の行列微分公式と同じ)。

La=ΣXYbρ1ΣXXa=0    ΣXYb=ρ1ΣXXa(1)\frac{\partial\mathcal L}{\partial\mathbf a}=\Sigma_{XY}\mathbf b-\rho_1\Sigma_{XX}\mathbf a=\mathbf0 \;\Longrightarrow\; \Sigma_{XY}\mathbf b=\rho_1\Sigma_{XX}\mathbf a \tag{1} Lb=ΣYXaρ2ΣYYb=0    ΣYXa=ρ2ΣYYb(2)\frac{\partial\mathcal L}{\partial\mathbf b}=\Sigma_{YX}\mathbf a-\rho_2\Sigma_{YY}\mathbf b=\mathbf0 \;\Longrightarrow\; \Sigma_{YX}\mathbf a=\rho_2\Sigma_{YY}\mathbf b \tag{2}

2.4 乗数が一致し、それが正準相関係数になる

式 (1) に左から a\mathbf a^\top を掛けると、左辺 aΣXYb\mathbf a^\top\Sigma_{XY}\mathbf b、右辺 ρ1aΣXXa=ρ11=ρ1\rho_1\,\mathbf a^\top\Sigma_{XX}\mathbf a=\rho_1\cdot1=\rho_1(制約より)。同様に式 (2) に左から b\mathbf b^\top を掛けると右辺は ρ2\rho_2。左辺はどちらも aΣXYb\mathbf a^\top\Sigma_{XY}\mathbf b に等しいので、

ρ1=ρ2=aΣXYb=Cov(u,v)=ρ\rho_1=\rho_2=\mathbf a^\top\Sigma_{XY}\mathbf b=\mathrm{Cov}(u,v)=\rho

つまりラグランジュ乗数そのものが、最大化された相関(正準相関係数 ρ\rho)に一致するのです。要するに「制約を分散1に取ったおかげで、乗数=共分散=相関、となった」ということです。以下、ρ1=ρ2=ρ\rho_1=\rho_2=\rho と書きます。

2.5 b\mathbf b を消去して一般化固有値問題へ

式 (1) を a\mathbf a について解きます(ΣXX\Sigma_{XX} は正則と仮定)。

a=1ρΣXX1ΣXYb(3)\mathbf a=\frac{1}{\rho}\,\Sigma_{XX}^{-1}\Sigma_{XY}\mathbf b \tag{3}

これを式 (2) に代入し、b\mathbf b だけの方程式にします。

ΣYX1ρΣXX1ΣXYb=ρΣYYb    ΣYXΣXX1ΣXYb=ρ2ΣYYb\Sigma_{YX}\cdot\frac{1}{\rho}\Sigma_{XX}^{-1}\Sigma_{XY}\mathbf b=\rho\,\Sigma_{YY}\mathbf b \;\Longrightarrow\; \Sigma_{YX}\Sigma_{XX}^{-1}\Sigma_{XY}\,\mathbf b=\rho^2\,\Sigma_{YY}\mathbf b

両辺に左から ΣYY1\Sigma_{YY}^{-1} を掛けると、標準的な固有値問題の形になります。

  ΣYY1ΣYXΣXX1ΣXYb=ρ2b  (Y側)\boxed{\;\Sigma_{YY}^{-1}\Sigma_{YX}\Sigma_{XX}^{-1}\Sigma_{XY}\,\mathbf b=\rho^2\,\mathbf b\;} \tag{Y側}

対称的に、式 (2) から b\mathbf b を消去すれば a\mathbf a 側の固有値問題が出ます(要点で示した形)。

  ΣXX1ΣXYΣYY1ΣYXa=ρ2a  (X側)\boxed{\;\Sigma_{XX}^{-1}\Sigma_{XY}\Sigma_{YY}^{-1}\Sigma_{YX}\,\mathbf a=\rho^2\,\mathbf a\;} \tag{X側}

2.6 結論:固有値の平方根が正準相関係数

導出から、次の3点が読み取れます。

  1. 正準相関係数は固有値の平方根:固有値が λ=ρ2\lambda=\rho^2 なので ρ=λ\rho=\sqrt{\lambda}。最大固有値に対応する固有ベクトルが第1正準変量の重み a,b\mathbf a,\mathbf b を与え、その λ1\sqrt{\lambda_1}第1正準相関係数
  2. 正準変量は複数組ある:固有値を大きい順に λ1λ2\lambda_1\ge\lambda_2\ge\cdots と並べると、第2・第3…正準変量が順に得られる。組の個数は min(p,q)\min(p,q) 個(X側とY側の行列の階数で決まる)。
  3. X側・Y側は同じ固有値を共有ΣXX1ΣXYΣYY1ΣYX\Sigma_{XX}^{-1}\Sigma_{XY}\Sigma_{YY}^{-1}\Sigma_{YX}ΣYY1ΣYXΣXX1ΣXY\Sigma_{YY}^{-1}\Sigma_{YX}\Sigma_{XX}^{-1}\Sigma_{XY} は非ゼロ固有値が一致する(ABABBABA の非ゼロ固有値は等しい、という線形代数の事実による)。だからどちらを解いても同じ ρ\rho が得られ、片方の固有ベクトルから式 (3) でもう片方が定まる。

要するに「2群間の相関を最大化する作業は、共分散行列のブロックを組み合わせた行列の固有値分解に完全に置き換わる」ということです。固有値分解は 主成分分析(PCA) と同じ道具立てですが、対象とする行列が違う点が本質です。

⚠️ 第2以降の正準変量には直交性の制約が加わります。第2正準変量は第1正準変量と無相関(Cov(u1,u2)=0\mathrm{Cov}(u_1,u_2)=0 かつ Cov(v1,v2)=0\mathrm{Cov}(v_1,v_2)=0)という条件のもとで相関を最大化します。これは主成分分析で第2主成分が第1主成分と直交するのと同じ発想です。


3. 重回帰・主成分分析との関係

正準相関分析は、より馴染みのある2手法を特別な場合として含む「上位概念」と見ると整理できます。

graph TD
  CCA["正準相関分析<br/>X群(p変数)対 Y群(q変数)の相関最大化"]
  CCA -- "Y群が1変数 (q=1)" --> MR["重回帰の重相関係数<br/>複数 対 1"]
  PCA["主成分分析<br/>1群内の分散最大化"]
  CCA -. "対比:群間相関 vs 群内分散" .- PCA

3.1 重回帰(重相関係数)への縮退

Y\mathbf Y1変数q=1q=1)の場合を考えます。このとき b\mathbf b はスカラー倍だけの自由度しかなく、vv は実質 yy そのもの。正準相関係数は「yy と、説明変数の最適な線形結合 aX\mathbf a^\top\mathbf X との相関」になります。これはまさに重回帰の重相関係数 RR(=R2\sqrt{R^2}R2R^2 は決定係数)に一致します。

つまり重相関係数は、片方の群が1変数のときの正準相関係数。正準相関分析は重回帰を「目的変数も多変量」に拡張したものと言えます。

3.2 主成分分析との対比

両者とも「線形結合+固有値分解」という骨格は同じですが、最大化する量が違います

主成分分析(PCA)正準相関分析(CCA)
変数群1群2群
最大化する量群内の分散(情報量)群間の相関(共通性)
対象行列Σ\Sigma(分散共分散行列)の固有値分解ΣXX1ΣXYΣYY1ΣYX\Sigma_{XX}^{-1}\Sigma_{XY}\Sigma_{YY}^{-1}\Sigma_{YX} の固有値分解
固有値の意味各主成分の分散正準相関係数の2乗 ρ2\rho^2
得られる軸の数変数の数min(p,q)\min(p,q)

要するに「PCA は1つの群を要約するために分散を見る、CCA は2つの群の橋渡しのために相関を見る」という対比です。PCA の詳細は 主成分分析(PCA) を参照してください。


4. 引っかけポイント・注意点

⚠️ 相関の最大化であって因果ではない。 正準相関分析が見つけるのは2群間の関連の強さであり、X群がY群を引き起こすという因果は一切含意しません。「学力群と体力群に高い正準相関がある」は「両者が共変している」だけで、片方がもう片方の原因とは言えません。これは相関一般の注意(2変数の記述(散布図・共分散・相関係数)── 相関≠因果/rは直線関係しか測れない/外れ値1点で激変)と同じです。

⚠️ 正準変量の解釈は難しい。 相関を最大化するように選んだ重み a,b\mathbf a,\mathbf b は、数学的には最適でも意味づけが困難なことが多いです。「相関を最大化する向き」と「解釈しやすい向き」は別物だからです。実務では重み(正準係数)だけでなく、各元変数と正準変量の相関である構造係数(structure coefficient) を見て、どの変数が正準変量を主に担うかを解釈します。

⚠️ 片方が1変数なら重回帰に縮退する。 q=1q=1 なら正準相関係数は重相関係数そのもの(3.1 節)。「正準相関分析は重回帰と無関係な別物」と思うのは誤りで、重回帰はその特殊ケースです。

⚠️ 線形関係しか捉えない。 線形結合の相関を見るので、非線形な関連は取りこぼします。非線形に拡張したカーネル正準相関分析などもありますが、準1級・1級の基本範囲は線形版です。

⚠️ 共分散行列の正則性が必要。 導出で ΣXX1,ΣYY1\Sigma_{XX}^{-1},\Sigma_{YY}^{-1} を使うため、群内に強い多重共線性があると不安定化します。変数数が標本数に比べて多い場合は正則化版が使われます(要最新確認)。


5. 試験での問われ方(級ごとの差)

正準相関分析は多変量解析の中でも出題頻度は低め(重要度C) ですが、概念と固有値問題への帰着は問われうるので、級ごとに到達点を分けて押さえます(具体的な出題範囲・頻度は年度により変わるため要最新確認)。

問われる深さ
準1級概念と正準相関係数の意味が中心。「2群それぞれの線形結合の相関を最大化する手法」「第1正準相関係数は最大の相関を表す」「重回帰・主成分分析との位置づけ(複数対複数/群間相関 vs 群内分散)」を選択肢で識別できること。正準変量の組の個数が min(p,q)\min(p,q) であること。
1級固有値問題としての定式化と理論ρ=aΣXYb\rho=\mathbf a^\top\Sigma_{XY}\mathbf b を分散1の制約下でラグランジュ未定乗数法により最大化し、ΣXX1ΣXYΣYY1ΣYXa=ρ2a\Sigma_{XX}^{-1}\Sigma_{XY}\Sigma_{YY}^{-1}\Sigma_{YX}\mathbf a=\rho^2\mathbf a に帰着する導出。固有値が正準相関係数の2乗であること、X側・Y側が固有値を共有すること、直交性制約まで。

準1級の多変量解析の土台として 分散共分散行列・相関行列主成分分析(PCA) を先に固めておくと、CCA は「PCA の固有値分解を2群間相関に置き換えたもの」として一気に理解できます。


よくある疑問(Q&A)

Q1. 正準相関分析と重回帰は何が違うのですか?

扱う変数の構成が違います。重回帰は「複数の説明変数 → 1つの目的変数」、正準相関分析は「複数 → 複数」です。実際、目的変数群を1変数にすると(q=1q=1)、正準相関係数は重回帰の重相関係数にぴったり一致します。要するに「正準相関分析は重回帰の目的変数側も多変量に拡張した一般形」で、重回帰はその特殊ケースだと理解すると整理できます。

Q2. 主成分分析と何が違うのですか?両方とも固有値分解ですよね。

骨格(線形結合+固有値分解)は同じですが、最大化する量が違います。主成分分析は1つの変数群の中で**分散(情報量)が最大の方向を探します。正準相関分析は2つの変数群の間で相関(共通性)**が最大になる方向を探します。対象とする行列も、PCA は分散共分散行列 Σ\Sigma そのもの、CCA は ΣXX1ΣXYΣYY1ΣYX\Sigma_{XX}^{-1}\Sigma_{XY}\Sigma_{YY}^{-1}\Sigma_{YX} です。「群内をまとめる PCA/群間を橋渡す CCA」と覚えると区別できます。

Q3. 正準変量はいくつ求まりますか?

min(p,q)\min(p,q) 組です。pp は X 群、qq は Y 群の変数の数。固有値を大きい順に並べ、最大固有値から第1・第2…正準変量が定まります。第2以降は「直前までの正準変量と無相関」という直交条件のもとで相関を最大化します。固有値の平方根がそれぞれの正準相関係数で、1ρ1ρ201\ge\rho_1\ge\rho_2\ge\cdots\ge0 の順に小さくなります。

Q4. 正準相関係数が高ければ、X群がY群の原因と言えますか?

言えません。正準相関分析が示すのは2群間の関連の強さであって、因果ではありません。高い正準相関は「2群が一緒に動いている」ことを意味するだけで、向き(どちらが原因か)も第3の交絡要因の有無も判定できません。これは相関係数一般の注意(相関は因果ではない)がそのまま2群版に拡張されたものです。

Q5. 求めた正準変量の重みが解釈しにくいのですが、使い方が間違っていますか?

間違いではありません。これは正準相関分析の本質的な弱点です。重み a,b\mathbf a,\mathbf b は「相関を最大化する」目的で機械的に決まるため、数学的に最適でも意味づけが難しいことが多いのです。「相関を最大にする向き」と「解釈しやすい向き」は一致しません。実務では、重み(正準係数)そのものより、各元変数とその正準変量の相関である構造係数を見て「この正準変量は主にどの変数を反映しているか」を解釈します。要するに「重みは予測の道具、構造係数は解釈の道具」と使い分けます。


まとめ


関連ノート