← 統計検定テキスト 一覧

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

要点(BLUF)

手元にあるのが「対象どうしの距離(近さ・遠さ)の表」だけのとき、その距離関係をできるだけ保つように対象を2次元などの低い次元に並べ直す手法が 多次元尺度構成法(MDS, Multidimensional Scaling) です。準1級では「古典的MDSがどういう計算で座標を出すか」「それがなぜ主成分分析(PCA)と一致するのか」「計量と非計量の違い」が問われます。古典的MDSの心臓部はこの一行です。

  B=12HD(2)H  =  XX  \boxed{\;B=-\tfrac12\,H\,D^{(2)}\,H\;=\;XX^\top\;}

要するに「二乗距離の表 D(2)D^{(2)}二重中心化すると内積(グラム)行列 BB になり、BB固有値分解すれば座標 XX が復元できる」ということです。


1. 問題設定:距離行列しかない

対象が nn 個あります。手元にあるのは、各ペア (i,j)(i,j)距離(非類似度) を並べた n×nn\times n の行列だけだとします。

D=(dij),dij0,dii=0,dij=djiD=(d_{ij}),\qquad d_{ij}\ge 0,\quad d_{ii}=0,\quad d_{ij}=d_{ji}

やりたいこと:各対象に低次元(典型的には2次元)の座標 x1,,xn\mathbf x_1,\dots,\mathbf x_n を割り当て、その座標間の距離が元の dijd_{ij} をできるだけ再現するようにする。得られた散布図を 布置(configuration) と呼びます。似た対象が近く、異なる対象が遠くに並んだ「地図」が出来上がります。

flowchart LR
  D["距離(非類似度)行列<br/>D = (d_ij)"] --> M["MDS"]
  M --> X["低次元の布置<br/>(2次元の散布図)"]
  X --> V["似た対象は近く<br/>異なる対象は遠くに配置"]

PCAやクラスター分析が「変数(座標)が与えられたデータ」から出発するのに対し、MDSは「距離だけ」から出発する点が決定的に違います。距離さえ定義できれば、元の座標が分からなくても(あるいはそもそも存在しなくても)布置を描けます。

MDSには大きく2系統あります。距離の数値そのものを再現しようとする 計量MDS(metric MDS)=代表が古典的MDS、距離の順位だけを保とうとする 非計量MDS(non-metric MDS) です。まず古典的MDSを導出し、後半で非計量MDSに触れます。


2. 古典的MDS(計量MDS)の導出

古典的MDSは 主座標分析(Principal Coordinate Analysis, PCoA)トーガソン・スケーリング(Torgerson scaling) とも呼ばれます。導出の流れは「距離 → 内積 → 固有値分解 → 座標」の4段です。各段で「要するに何をしているか」を添えます。

2.1 距離を内積に翻訳する

仮に対象の真の座標 xiRp\mathbf x_i\in\mathbb R^p が存在して、dijd_{ij} がそのユークリッド距離だったとします。二乗距離を展開します。

dij2=xixj2=xixi+xjxj2xixjd_{ij}^2=\lVert\mathbf x_i-\mathbf x_j\rVert^2=\mathbf x_i^\top\mathbf x_i+\mathbf x_j^\top\mathbf x_j-2\,\mathbf x_i^\top\mathbf x_j

ここで内積を bij=xixjb_{ij}=\mathbf x_i^\top\mathbf x_j と書く(これが グラム行列 B=(bij)B=(b_{ij}) の成分)と、

  dij2=bii+bjj2bij  \boxed{\;d_{ij}^2=b_{ii}+b_{jj}-2\,b_{ij}\;}

要するに「距離が分かれば内積が分かるかもしれない」という見通しです。逆に解くと bij=12(dij2biibjj)b_{ij}=-\tfrac12\bigl(d_{ij}^2-b_{ii}-b_{jj}\bigr)。ただし右辺の対角項 bii,bjjb_{ii},b_{jj}(=各点の原点からの距離)が未知です。距離は平行移動で不変なので、距離行列 DD だけからは座標の原点を決められません。この未知の対角項を消す操作が、次の二重中心化です。

2.2 二重中心化でグラム行列を復元する

原点を データの重心 に固定します(ixi=0\sum_i\mathbf x_i=\mathbf 0)。このとき座標を中心化したことになり、グラム行列 BB の行和・列和がゼロになります(ibij=jbij=0\sum_i b_{ij}=\sum_j b_{ij}=0)。この性質を使うと、未知の biib_{ii} を距離だけで書き直せます。

実際、dij2=bii+bjj2bijd_{ij}^2=b_{ii}+b_{jj}-2b_{ij} の両辺で行平均・列平均・全平均を取り、ibij=0\sum_i b_{ij}=0 を代入して整理すると、

bij=12(dij21nkdik2行平均1nkdkj2列平均+1n2k,ldkl2全平均)b_{ij}=-\frac12\Bigl(d_{ij}^2-\underbrace{\tfrac1n\textstyle\sum_k d_{ik}^2}_{\text{行平均}}-\underbrace{\tfrac1n\textstyle\sum_k d_{kj}^2}_{\text{列平均}}+\underbrace{\tfrac1{n^2}\textstyle\sum_{k,l}d_{kl}^2}_{\text{全平均}}\Bigr)

つまり「二乗距離 dij2d_{ij}^2 から、その行平均・列平均を引いて全平均を足し戻し12-\tfrac12 倍する」と内積 bijb_{ij} が出ます。未知だった bii,bjjb_{ii},b_{jj} は平均操作の中に吸収されて消えました。要するに「原点を重心に置くと、距離だけから内積が一意に復元できる」ということです。

この「行平均・列平均を引いて全平均を足す」操作は、行列で書くと 二重中心化(double centering) そのものです。中心化行列(centering matrix)

H=In1n11(1=(1,,1))H=I_n-\frac1n\mathbf 1\mathbf 1^\top\qquad(\mathbf 1=(1,\dots,1)^\top)

を両側から掛けます。HH をベクトルに左から掛けると各成分から全体平均が引かれる(中心化される)射影行列で、H=HH^\top=HH2=HH^2=H を満たします。二乗距離行列 D(2)=(dij2)D^{(2)}=(d_{ij}^2) に対し

  B=12HD(2)H  \boxed{\;B=-\frac12\,H\,D^{(2)}\,H\;}

とすれば、上の成分ごとの式がまとめて実現されます(左から HH で各列を中心化=行平均を除去、右から HH で各行を中心化=列平均を除去、両方の効果で全平均が足し戻る)。要するに「12HD(2)H-\tfrac12\,H D^{(2)} H という一発の行列演算が、距離の表を内積の表に変換する装置」です。

2.3 固有値分解で座標を取り出す

B=XXB=XX^\topXX は各行が xi\mathbf x_i^\topn×pn\times p 座標行列)という構造を持つので、BB対称かつ半正定値(固有値が非負)です。スペクトル分解すると

B=QΛQ,Λ=diag(λ1,,λn),λ1λ20B=Q\Lambda Q^\top,\qquad \Lambda=\mathrm{diag}(\lambda_1,\dots,\lambda_n),\quad \lambda_1\ge\lambda_2\ge\dots\ge 0

QQ は正規直交固有ベクトルを並べた行列です。Λ1/2=diag(λ1,)\Lambda^{1/2}=\mathrm{diag}(\sqrt{\lambda_1},\dots) とおけば B=QΛQ=(QΛ1/2)(QΛ1/2)B=Q\Lambda Q^\top=(Q\Lambda^{1/2})(Q\Lambda^{1/2})^\top なので、

  X=QΛ1/2  \boxed{\;X=Q\,\Lambda^{1/2}\;}

が求める座標です。要するに「内積行列の固有ベクトルを固有値の平方根で伸縮したものが座標」になります。

低次元への縮約:上位 rr 個(普通 r=2r=2)の固有値・固有ベクトルだけを残します。

X(r)=QrΛr1/2(Λr=diag(λ1,,λr))X_{(r)}=Q_r\,\Lambda_r^{1/2}\qquad(\Lambda_r=\mathrm{diag}(\lambda_1,\dots,\lambda_r))

固有値 λk\lambda_kkk 軸が説明する分散(情報量) を表すので、大きい固有値の軸から採用するほど元の距離をよく再現できます。寄与率 λk/lλl\lambda_k/\sum_l\lambda_l で「2次元でどれだけ説明できたか」を測れます。

flowchart TD
  D2["二乗距離行列 D^(2)"] --> HC["二重中心化<br/>B = -½ H D^(2) H"]
  HC --> EIG["固有値分解<br/>B = Q Λ Qᵀ"]
  EIG --> COORD["座標 X = Q Λ^(1/2)"]
  COORD --> RED["上位 r 個の固有値だけ残す<br/>→ r 次元の布置"]

3. 主成分分析(PCA)との関係 ── 双対性

ユークリッド距離に基づく古典的MDSは、元データに対するPCAと同じ低次元布置を与えます。 両者は同じ情報を「行側から見るか・列側から見るか」の違いにすぎず、双対(dual) の関係にあります。これは準1級で最も問われる論点です。詳細は 主成分分析(PCA) を参照してください。

数式で確認します。中心化済みデータ行列を X~=HX\tilde X=HXn×pn\times p)とします。

ここで X~\tilde X の特異値分解(SVD)を X~=UΣV\tilde X=U\Sigma V^\top と書くと、

X~X~=VΣ2V(PCA),X~X~=UΣ2U(MDS)\tilde X^\top\tilde X=V\Sigma^2 V^\top\quad(\text{PCA}),\qquad \tilde X\tilde X^\top=U\Sigma^2 U^\top\quad(\text{MDS})

両者は同じ特異値の二乗 Σ2\Sigma^2 を固有値として共有します。 XXXX^\topXXX^\top X非ゼロ固有値が完全に一致する(線形代数の基本事実)からです。したがって:

graph LR
  X["中心化データ X̃ = HX"] --> SVD["特異値分解 X̃ = U Σ Vᵀ"]
  SVD --> PCA["PCA: X̃ᵀX̃ = V Σ² Vᵀ<br/>(p×p, 変数側)"]
  SVD --> MDS["古典的MDS: X̃X̃ᵀ = U Σ² Uᵀ<br/>(n×n, 対象側)"]
  PCA --> SAME["同じ Σ² を共有<br/>→ 同じ低次元布置"]
  MDS --> SAME

要するに「データが手元にあるならPCAでもMDSでも同じ地図が描ける。MDSの強みは、データそのものが無くても距離行列さえあれば同じ地図が描けること」です。

PCA古典的MDS
入力データ行列(n×pn\times p距離行列(n×nn\times n
分解する行列共分散 X~X~\tilde X^\top\tilde Xグラム B=X~X~B=\tilde X\tilde X^\top
行列サイズp×pp\times pn×nn\times n
距離がユークリッドのときPCAと同一布置

4. 非計量MDS(順位を保つ)

古典的MDSは距離の数値をそのまま使いますが、実データの非類似度(官能評価のスコア、心理的な「似ている度」など)は、数値の絶対値に意味が薄く 順位(順序)にしか意味がない ことが多いです。そこで距離の数値ではなく 大小関係(順位)だけを保つ ように布置を求めるのが 非計量MDS(non-metric MDS) で、代表が クルスカル法(Kruskal, 1964) です。

4.1 ストレスの最小化

非計量MDSは、布置上の距離 d^ij\hat d_{ij}(座標から計算する実際のユークリッド距離)と、元の非類似度 δij\delta_{ij}順位が一致 することを目指します。具体的には、δij\delta_{ij} の順位に従って単調になるように変換した目標値 δ^ij\hat\delta_{ij}ディスパリティ、単調回帰で求める)と d^ij\hat d_{ij} のズレを表す ストレス(stress) を最小化します。

  Stress=i<j(d^ijδ^ij)2i<jd^ij2  \boxed{\;\mathrm{Stress}=\sqrt{\dfrac{\sum_{i<j}\bigl(\hat d_{ij}-\hat\delta_{ij}\bigr)^2}{\sum_{i<j}\hat d_{ij}^{\,2}}}\;}

要するに「順位さえ合っていればよいことにして、布置上の距離と『順位を保った理想距離』のズレ(ストレス)を一番小さくする座標を、繰り返し計算で探す」手法です。ストレスが小さいほど布置が元の順位をよく再現しています。クルスカルが示した目安は、Stress が概ね 0.050.05 以下で「良い」、0.10.1 で「まずまず」、0.20.2 以上は「乏しい」とされます(基準値は文献により異なるため要最新確認)。

4.2 計量MDSとの違い

計量MDS(古典的MDS)非計量MDS(クルスカル法)
使う情報非類似度の数値そのもの(間隔・比例尺度)非類似度の順位だけ(順序尺度)
求め方固有値分解(解析的に一発)ストレス最小化(反復計算)
仮定距離 \approx ユークリッド距離距離と非類似度が単調関係
一意(固有値分解で決まる)初期値依存・局所最適がありうる

古典的MDSは反復不要で計算が速く一意解が出る一方、距離をユークリッドと仮定します。非計量MDSは順序尺度の弱い仮定で済む代わりに、反復計算で局所最適に陥るリスクがあります。


5. 試験での問われ方(準1級)

MDSは多変量解析の中では出題頻度が高くない(重要度C)ものの、PCA・因子分析・クラスター分析と並ぶ次元縮約・布置の手法として問われます。

  1. 手法の位置づけ:「距離行列を入力とし、低次元の布置を出力する」という入出力を選ばせる。PCA(データ行列が入力)との入力の違い。
  2. PCAとの双対:「ユークリッド距離の古典的MDSはPCAと同一の布置を与える」の正誤判定。
  3. 計量 vs 非計量:「順位だけを保つのは非計量MDS」「固有値分解で解くのは古典的(計量)MDS」の対応。
  4. 二重中心化と固有値分解B=12HD(2)HB=-\tfrac12 H D^{(2)}H から座標を得る流れの穴埋め。固有値=軸の説明分散という解釈。

固有値分解そのものの計算は 主成分分析(PCA) と共通の道具立てです。距離・内積の基礎は 分散共分散行列・相関行列 が下地になります。


よくある疑問(Q&A)

Q1. 古典的MDSとPCAは結局同じものですか?

「ユークリッド距離を使う限り、同じ低次元布置を与える」という意味では双対(等価)です。ただし入力が違います。PCAはデータ行列(各対象の変数値)が必要、古典的MDSは距離行列だけで済みます。データが手元にあるなら結果は一致しますが、「距離しか分からない」「変数を直接観測できない(例:心理的距離・路線間の所要時間)」場面ではMDSしか使えません。要するに「同じ地図を、データから描くか・距離から描くか」の違いです。

Q2. 固有値分解したら負の固有値が出ました。バグですか?

バグとは限りません。古典的MDSは「距離がユークリッド距離である」と仮定して内積行列 BB を作りますが、入力の距離がユークリッド距離として実現不可能(非ユークリッド) だと、BB が半正定値にならず負の固有値が現れます。心理実験の非類似度や、三角不等式を満たさない指標で起きやすい現象です。対処は「負の固有値を捨て、正の固有値の軸だけで近似的に布置する」のが定石です(Bpos=λj>0λjujujB_{\text{pos}}=\sum_{\lambda_j>0}\lambda_j\mathbf u_j\mathbf u_j^\top)。要するに「負の固有値=その距離はユークリッド空間にきれいに埋め込めないサイン」です。

Q3. 次元はいくつ選べばよいですか?

固有値(=各軸の説明分散)の大きい順に採用し、寄与率 λk/lλl\lambda_k/\sum_l\lambda_l の累積や、固有値が急に小さくなる「肘(スクリープロット)」で決めます。可視化目的なら2〜3次元が普通です。非計量MDSなら、次元数を変えてストレスがどこで頭打ちになるかを見て決めます。考え方はPCAの寄与率・累積寄与率と同じです(主成分分析(PCA))。

Q4. 計量MDSと非計量MDS、どちらを使えばよいですか?

非類似度の尺度水準で決めます。距離が間隔・比例尺度で数値そのものに意味があるなら計量(古典的)MDS(固有値分解で一発、速い)。アンケートの「似ている度」のように順位にしか意味がない順序尺度なら非計量MDS(順位だけ保てばよいので仮定が弱い)。迷ったら、数値の絶対値を信じてよいかを基準にします。

Q5. 布置の軸(縦軸・横軸)には意味がありますか?

古典的MDSの軸は固有ベクトルなので、PCAの主成分と同様「最も分散を説明する方向」という統計的意味は持ちます。ただしMDSの布置は回転・反転・平行移動しても距離関係は変わらないため、軸そのものの向き・符号に固有の解釈を強いるのは危険です。読み取るべきは「どの対象が近く・遠いか」という相対配置であって、軸の絶対的な向きではありません。


まとめ


関連ノート