距離行列とMDS法

>100 Views

January 27, 26

スライド概要

profile-image

SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

2026年1月28日 @ SAS Institute Japan Ltd., Nakanoshima Qross 第12回 大阪SAS勉強会 「距離行列とMDS法」 高田 浩成 1 / 26

2.

概要・背景 概要 距離データ ※本発表内容は個人的見解であり所属組織を代表するものではありません • 多変量解析・次元削減 • 特定の条件下で使用する手法 ①『距離行列』 多次元の距離の成分から構成される行列 縦と横の表形式で格納 ②『MDS法』 距離行列を利用して低次元での座標を計算 位置付けされた知覚マップを作成 アプローチ 高次元データ → それぞれにも種類があり使い分けや基本理論を紹介 Copyright©EPS All rights reserved. 2 / 26

3.

概要・背景 背景 • MDSは1950~60年代に開発 • 近年はその考え方を発展させて距離情報にも関係する t-SNE(2000年代)やUMAP(2010年代)が著名に • 通常SASの機能ではMDSのみ対応 • 元来: 社会科学における活用・分析 心理学(質問紙法など)・マーケティング(顧客セグメンテーションなど) • 最近: 自然科学における測定技術の進歩・多様化 バイオ(遺伝子解析など)やマテリアル(結晶構造解析など) 情報量・次元数の多いデータの視覚化・低次元化が重要に • 再注目もされている手法 Copyright©EPS All rights reserved. 3 / 26

4.

目次 1. 距離行列 距離の種類・計算 距離行列の構造 【SAS】DISTANCEプロシジャ 2. MDS法 マッピングのイメージ 古典的MDS/計量MDS/非計量MDSと基本理論 【SAS】MDSプロシジャ 3. 補足 再構成による検証 主成分分析との違い 【SAS】PRINCOMPプロシジャ Copyright©EPS All rights reserved. 4 / 26

5.

①距離行列 Copyright©EPS All rights reserved. 5 / 26

6.

①距離行列 距離について 論理的な尺度 • 距離(distance) =非類似度(dissimilarity) 値が大きいほど異なる = 1 - 類似度(similarity) • 「距離」は数値、「類似度」はその他文字等に対応 • 対象が2点存在して比較できる状態 感覚的な尺度 • 尺度水準 【定量】 比率尺度(連続数値・基準あり)・間隔尺度(連続数値・基準なし) 【定性】 順序尺度(カテゴリー)・名義尺度(順序不明:※解析困難) • 数値化あるいは順序化できれば解析可能 Copyright©EPS All rights reserved. 6 / 26

7.

①距離行列 距離と次元 1次元(直線) 次元up 2次元(平面) 座標:(x, y) 距離:d 座標:x 距離:d 次元up y 3次元(空間) z 座標:(x, y, z) 距離:d y x x x 次元(軸)が増えても距離は1つの変数で定義できる →他の情報が少なくても距離を使って位置関係をある程度再現しようという考え Copyright©EPS All rights reserved. 7 / 26

8.

①距離行列 距離行列の構造 • • • • MDS法の前提条件・入力データとなる 2点間の距離を表・行列で示す 何次元であっても形式は同じ 対称行列、 N行N列(正方行列) 対称となる半分 は省略可能 行列の数式(記法) ★表・データセットの読み方 A B C D A B D= ① A-B間 の距離 Copyright©EPS All rights reserved. C-D間 の距離 d21 0 d23 d32 0 d31 d2n d3n … ② D d12 d13 … d1n … C 0 dn1 dn2 dn3 … 0 各距離dに対応2点インデックスが付与 8 / 26

9.

①距離行列 距離の種類 (x2, y2) • 多次元(n次元)における距離の定義 (x1, y1) 2) マンハッタン距離: 直角距離 外れ値の抑制(簡素な数式) (x1, y1) Copyright©EPS All rights reserved. 𝑛 ෍ 𝑥𝑖 − 𝑦𝑖 2 • 典型例: 1) ユークリッド距離: 直線距離 最短の距離(→高次元では正確とは限らない) 3) コサイン類似度: ベクトル方向 内積からスケールを除外 文字列に対して長さによらず比較可能 -1:逆方向、0:直行、1:同方向(→類似) 【数式】 【2次元イメージ】 𝑖=1 (x2, y2) 𝑛 ෍ 𝑥𝑖 − 𝑦𝑖 𝑖=1 x=[x1, x2] θ 0 y=[y1, y2] 𝒙∙𝒚 cos 𝜃 = 𝒙 𝒚 9 / 26

10.

①距離行列 ★【SAS】 DISTANCEプロシジャ • 多次元データを距離行列に変換するプロシジャ 基本コード proc distance data=[多次元データ] out=[距離行列] method=[距離] ; id [基準] ; var [種類] ( [次元1] -- [次元n] ) ; run ; 【基本オプション】 • method=: 距離の種類[EUCLID:ユークリッド距離(※デフォルト)、CITYBLOCK:マンハッ タン距離、COSINE:コサイン類似度、JACCARD:ジャッカード類似度] • shape=: 行列対称部分の表示[TRIANGLE:片側(※デフォルト)、SQUARE:両側] 【基本ステートメント】 • id: 基準となる変数(指定推奨) • var: 各次元変数とその種類[interval:数値、ordinal:文字] Copyright©EPS All rights reserved. 10 / 26

11.

①距離行列 【SAS】簡易データによる実装例 多次元データセット 【列】5次元(5変数)→削減対象 データ:座標 【行】 比較対象 SAS program 距離変換 距離行列データセット データ:2点間の距離 臨床評価等における リッカート尺度 (1, 2, 3, …, 10) proc distance data=Q out=D method=EUCLID ; id SUBJECT ; var interval(Q1 - Q5) ; run ; 連続数値データと見做して 主成分分析(PCA)も可能であるが 順序尺度として距離を得た Copyright©EPS All rights reserved. 11 / 26

12.

②MDS法 Copyright©EPS All rights reserved. 12 / 26

13.

②MDS法 MDS法とは 高い (例) • Multi-Dimensional Scaling:多次元尺度構成法 食品の特徴による 2次元マッピング 食品B 食品A • 視覚化できる2次元か3次元まで次元削減する 食品C 苦い 甘い • 類似性の高いものが近くにくる知覚マップ 食品D • 他の解析の前処理や傾向把握として使用されることが多い (単独より組み合わせでも活躍) 安い • とくに初めから距離データのみでも得られている状況で活躍 商品棚への配置 (似たものを近くへ) Copyright©EPS All rights reserved. 13 / 26

14.

②MDS法 次元削減のイメージ 高次元 低次元 (距離の活用) (座標の再配置) 次元削減 複雑で把握しにくい Copyright©EPS All rights reserved. グラフ化(視覚化)しやすい 14 / 26

15.

②MDS法 代表的なMDS ①古典的(classical)MDS ◆数学的な手順 ユークリッド距離行列にのみ対応 距離行列→[二重中心化]→内積行列→[固有値分解]→座標 ◆コンピュータシミュレーション的な手順 計算負荷は多くなるが反復法による最適化で柔軟・高精度に ②計量(metric)MDS 距離の絶対値を保持、複雑な関数を単純な関数で近似して反復的に改善 (広義には計量と言う意味で古典的MDSを含めることも) ③非計量(non-metric)MDS 非線形構造(順序尺度など)、距離の順位を保持、古典的MDSでは不可 Copyright©EPS All rights reserved. 15 / 26

16.

②MDS法 距離行列の要素 ①古典的な理論 (i行j列目) 2 𝑑 • 距離行列Dの各行各列の平均を0にする 𝑖𝑗 = 二重中心化 と座標系に変換する 固有値分解 により最適なスケールを算出 1 T 𝒙𝑖 𝒙𝑗 = − 2 【二重中心化】 内積行列 単調法 𝒙𝑖 − 𝒙𝑗 𝑛 2 = 𝒙𝑖 2 + 𝒙𝑗 𝑛 𝑛 𝑛 𝒙1 , 𝒙2 , … , 𝒙𝑛 T による行列化 1 1 1 𝑿𝑿 = − 𝐼𝑛 − 𝐽𝑛 𝐷 𝐼𝑛 − 𝐽𝑛 2 𝑛 𝑛 【固有値分解】 − 2𝒙T𝑖 𝒙𝑗 1 1 1 2 2 2 2 𝑑𝑖𝑗 − ෍ 𝑑𝑖𝑗 − ෍ 𝑑𝑖𝑗 + 2 ෍ ෍ 𝑑𝑖𝑗 𝑛 𝑛 𝑛 𝑖=1 𝑗=1 𝑖=𝑖 𝑗=1 ・・・ 𝑋 = T 2 n:次元数 I:単位行列 J:全1行列 𝐴 − λ𝐼 𝒙 = 𝟎 𝐴 − λ𝐼 = 0 固有方程式 λ:固有値 圧縮n次元までの「固有ベクトル(x)×固有値の対角行列(λI)」 x:固有ベクトル の結果(行列)が再構成する座標で形成 Copyright©EPS All rights reserved. 16 / 26

17.

②MDS法 ②③現代的な理論 反復法 • 計量・非計量ともに対応 • 最適化により目的関数が最大・最小となる条件を探す • 『ストレス関数』(stress function) 座標に関する指標でズレが最小になるようにする SAS User’s Guideでもこの理論が示されている →「Badness-of-Fit Criterion」 S= σ𝑖≠𝑗 𝑑ሚ𝑖𝑗 − 𝑑𝑖𝑗 2 2 σ𝑖≠𝑗 𝑑𝑖𝑗 d~:元の距離 d:低次元化した距離 • SMACOFアルゴリズム(Scaling by MAjorizing a COmplex Function) ストレス関数の最小化を効率的に解くための繰り返しアルゴリズム [初期化→評価→更新](反復) →→→ 収束判定 • 非計量MDSではさらにクラスカル法により対象を決めて順序(大小関係)のみを保持 Copyright©EPS All rights reserved. 17 / 26

18.

②MDS法 ★【SAS】 MDSプロシジャ • 距離行列に対してMDS法によりマッピングするプロシジャ 基本コード proc mds data=[距離行列] out=[座標] level=[種類] dimension=[圧縮次元] ; id [基準] ; var [距離1] -- [距離n] ; run ; 【基本オプション】 • dimension=: 圧縮次元 [数値] ※デフォルト:2 • level=: 種類 [ABSOLUTE:計量、ORDINAL:非計量] ※デフォルト:ORDINAL 【基本ステートメント】 • id: 基準となる変数(DISTANCEプロシジャと同じ変数) • var: 距離行列の要素 Copyright©EPS All rights reserved. 18 / 26

19.

②MDS法 B D 【SAS】マッピング例 A 距離行列で使用した簡易データを使用 比率尺度ではなく間隔尺度であるため 順序のみで判定する非計量MDSが望ましい C SAS program SGPLOTプロシジャによる 単純プロット (横軸:質問、縦軸:点数) proc mds data=D out=COORD level=ORDINAL dimension=2 ; id SUBJECT ; var A -- D ; run ; データセット(座標) 元の分布と比較して 位置関係は適切と思われる (各軸と数値そのものは意味をなさない) Copyright©EPS All rights reserved. 19 / 26

20.

③補足 Copyright©EPS All rights reserved. 20 / 26

21.

③補足 検証:地図の再現 • 地理座標を距離行列・MDS法により2次元に再構成 • 大阪・東京・名古屋・福岡・札幌の都市 • 緯度(Latitude)・経度(Longitude)のデータ • 厳密にはハバーサイン距離を使用するが x軸:経度、y軸:緯度としてユークリッド距離で近似 距離変換 SAS program proc distance data=CITY out=CITY_D ; id CITY ; var interval(LON LAT) ; run ; proc mds data=CITY_D out=CITY_COORD ; id CITY ; var Osaka -- Sapporo ; run ; 距離のみで 再構成 Copyright©EPS All rights reserved. 21 / 26

22.

③補足 距離行列・MDS法による再構成 MDS後の座標 元の緯度・経度 Copyright©EPS All rights reserved. 全体の方角は不正確であるが・・・ 個別の距離や方向は十分に維持できているとみれる→再構成できた 22 / 26

23.

③補足 PCA MDS 主成分分析(PCA)との違い r1n r21 1 … r2n … … … … sn1 sn2 … snn r12 … … s11 s12 … s1n s21 s22 … s2n … • 主成分分析は代表的な次元削減の1つ • 大きな違いは入力データと削減数 • 連続数値データに対して使用 S= • 分散または相関を最大化する軸を見つける 分散共分散行列S:同じスケール(例:科目ごとの点数) 相関行列R:異なるスケール(例:年齢・身長・体重) →固有値分解 rn1 rn2 … 1 1 R= 基本コード • PRINCOMPプロシジャ 【基本オプション】 cov: 分散共分散行列、※デフォルト:相関行列 plot=: グラフ出力 (行列は内部計算のため事前変換は不要) Copyright©EPS All rights reserved. proc princomp data= out= [オプション] plots=[] ; var [対象1] -- [対象n] ; run ; 23 / 26

24.

③補足 主成分分析の例 • 6人の生徒の国語・数学・理科・社会の小テスト(0点~10点)の結果【比率尺度】 • 同スケールのデータ群のため分散共分散行列を使用 SAS program ※統計学実践ワークブックp.194(例1)、p.197(例2)の再現 proc princomp data=EXAM out=PRIN cov plots=all ; var x1 - x4 ; run ; 第2主成分までで寄与率(固有値比率)95%以上 あるためそこまででほぼ説明できる Copyright©EPS All rights reserved. 24 / 26

25.

まとめ 距離行列とMDS法 • MDS法は視覚化専用で2,3次元のマッピングが目的となる • 距離行列が存在する(作成される)ことが前提条件 • 距離やMDSにも種類があることに留意する • デメリットとして失われる情報もある • SASではDISTANCEプロシジャとMDSプロシジャをセットで使用するのが一般的 (ともにid, varステートメントで明示的に指定することを推奨) • 次元削減においてもデータや目的に応じて手法を使い分ける Copyright©EPS All rights reserved. 25 / 26

26.

参考資料 [1] 日本統計学会、統計学実践ワークブック、学術図書出版社、2020年 [2] 日本統計学会、統計学、東京図書、2013年 [3] 岩崎悠真、マテリアルズ・インフォマティクス:材料開発のための機械学習超入門、日刊工業新聞社、2019年 [4] 水田正弘・佐藤義治、多次元尺度構成法における動的な表示法について、計算機統計学、1998年 https://www.jstage.jst.go.jp/article/jscswabun/10/1/10_KJ00001896044/_article/-char/ja/ [5] Deus Ex Machina:多次元尺度構成法(MDS, Multidimensional Scaling)について、2025年 https://deus-ex-machina-ism.com/?p=56862 [6] Wikipedia - Distance matrix https://en.wikipedia.org/wiki/Distance_matrix [7] Wikipedia - Multidimensional scaling https://en.wikipedia.org/wiki/Multidimensional_scaling [8] Wikipedia - Stress majorization https://en.wikipedia.org/wiki/Stress_majorization [9] SAS Institute Inc., SAS/STAT® User's Guide - The DISTANCE Procedure, 2025 https://documentation.sas.com/api/collections/pgmsascdc/v_068/docsets/statug/content/distance.pdf [10] SAS Institute Inc., SAS/STAT® User's Guide - The MDS Procedure, 2025 https://documentation.sas.com/api/collections/pgmsascdc/v_068/docsets/statug/content/mds.pdf [11] SAS Institute Inc., SAS/STAT® User's Guide - The PRINCOMP Procedure, 2025 https://documentation.sas.com/api/docsets/statug/v_038/content/princomp.pdf [12] 都道府県市区町村: 都道府県庁 位置/標高 https://uub.jp/pdr/s/cap_4.html Copyright©EPS All rights reserved. 26 / 26