【Rによるデータサイエンス】多次元尺度法
【定義】
多次元尺度法とは。
多次元尺度法(MDS:Multi-Dimensional Scaling)は、個体間の親近性データを2次元あるいは3次元空間に、類似したものを近く、そうでないものを遠くに配置する方法である。
ここでイキナリ分からない。
親近性データとは・・・。どうやら親近性データという用語は無いようで、親近とは近くにあるという意味だから、親近性データとは近くにあるデータということだろうか。よくわからないと思いつつ読み進めると、MDSについて次のように言い換えていた。
MDSは、データから距離(あるいは類似度)を求め、そのデータにも続いて2〜3次元空間上の各点(個体)の座標値を求め、視覚的にその相対関係を考察するデータ解析方法である。
たとえば、関西の主要府県の地点間距離が与えられていて、これから地点の2次元座標値を求め、視覚的に相対関係を考察すると考えれば良い。
MDSは、計量MDSと非計量MDSに大別される。
計量MDSとは、距離データを低次元に配置する方法である。
非計量MDSとは、類似度や相関係数行列のような厳密には距離とは言えないが、距離に変換可能なデータを低次元に配置する方法。
【計量的MDSのケーススタディ】
1.距離を求める
2.座標値を求める
関数cmdscaleを実行するとイキナリ座標値が求まるが、これはcmdscale関数が関数内部で距離を求めた後に、変換を施した行列の固有ベクトルの座標値を返却するからだ。
> eur.cmd<-cmdscale(eurodist) > eur.cmd [,1] [,2] Athens 2290.274680 1798.80293 Barcelona -825.382790 546.81148 Brussels 59.183341 -367.08135 Calais -82.845973 -429.91466 Cherbourg -352.499435 -290.90843 Cologne 293.689633 -405.31194 Copenhagen 681.931545 -1108.64478 Geneva -9.423364 240.40600 Gibraltar -2048.449113 642.45854 Hamburg 561.108970 -773.36929 Hook of Holland 164.921799 -549.36704 Lisbon -1935.040811 49.12514 Lyons -226.423236 187.08779 Madrid -1423.353697 305.87513 Marseilles -299.498710 388.80726 Milan 260.878046 416.67381 Munich 587.675679 81.18224 Paris -156.836257 -211.13911 Rome 709.413282 1109.36665 Stockholm 839.445911 -1836.79055 Vienna 911.230500 205.93020
3.2〜3次元上で個体を配置する(散布図を作成する)
可視化はplot関数を使用すれば良い。
> plot(eur.cmd,type="n") > text(eur.cmd,rownames(eur.cmd))
4.信頼性について考察する
3で作成したMDS配置図における距離は、用いた距離の推測値である。
推測値の当てはまりの良さは両距離行列の相関係数を用いて考察することができる。
MDS配置図の距離を求める。
> dist(eur.cmd) Athens Barcelona Brussels Calais Cherbourg Cologne Copenhagen Geneva Gibraltar Hamburg Barcelona 3357.7975 Brussels 3109.4732 1271.8716 Calais 3255.5927 1226.9290 155.3073 Cherbourg 3369.1466 961.9737 418.6705 303.3739 Cologne 2973.9661 1469.3067 237.6021 377.3385 656.2381 Copenhagen 3322.6525 2238.8684 968.3654 1022.5259 1318.6130 803.3734 Geneva 2777.9871 871.5929 611.3491 674.3298 632.4525 713.3226 1515.8857 Gibraltar 4490.1733 1226.8006 2336.9393 2239.1025 1935.8252 2565.8209 3243.6617 2078.2859 Hamburg 3099.3683 1914.4808 645.7548 729.8212 1033.1741 454.9498 356.3815 1163.2917 2968.8991 Hook of Holland 3167.1797 1477.2645 210.7337 275.0595 578.3819 193.2176 761.6368 808.7878 2513.8534 455.1278 Lisbon 4573.2552 1216.1548 2037.1936 1913.1400 1618.6599 2274.5884 2861.6386 1935.0946 604.0745 2628.1668 Lyons 2988.5438 698.6800 623.4377 633.4875 494.3436 788.3241 1582.4131 223.4542 1878.0684 1242.0486 Madrid 4002.4829 644.6856 1628.1236 1529.1656 1225.9198 1858.5007 2536.3542 1415.4452 709.9526 2258.9512 Marseilles 2948.7309 549.1078 836.6722 846.9026 681.7789 991.2102 1790.4100 325.8322 1767.2483 1446.1327 Milan 2455.3476 1094.0285 809.2916 913.7058 936.4318 822.6404 1582.3662 322.6968 2320.3385 1227.3309 Munich 2418.4839 1487.7987 692.9967 843.1010 1011.1284 568.4227 1193.5546 617.9640 2695.2152 854.9644 Paris 3166.7363 1010.6649 266.4253 230.9487 211.2989 490.5881 1228.4331 474.9985 2075.2899 911.8926 Rome 1724.6580 1634.6459 1613.2878 1731.2024 1757.3926 1570.6933 2218.1817 1127.7494 2797.1071 1888.5679 Stockholm 3914.3894 2907.4410 1663.9876 1682.2372 1952.0464 1531.9859 744.9879 2243.9529 3806.1284 1099.2435 Vienna 2106.8950 1769.7530 1026.8041 1180.0367 1357.8888 868.8922 1334.4232 921.2991 2991.6986 1040.0060
用いた距離を求める。
> eurodist Athens Barcelona Brussels Calais Cherbourg Cologne Copenhagen Geneva Gibraltar Hamburg Hook of Holland Lisbon Lyons Madrid Marseilles Milan Munich Barcelona 3313 Brussels 2963 1318 Calais 3175 1326 204 Cherbourg 3339 1294 583 460 Cologne 2762 1498 206 409 785 Copenhagen 3276 2218 966 1136 1545 760 Geneva 2610 803 677 747 853 1662 1418 Gibraltar 4485 1172 2256 2224 2047 2436 3196 1975 Hamburg 2977 2018 597 714 1115 460 460 1118 2897 Hook of Holland 3030 1490 172 330 731 269 269 895 2428 550 Lisbon 4532 1305 2084 2052 1827 2290 2971 1936 676 2671 2280 Lyons 2753 645 690 739 789 714 1458 158 1817 1159 863 1178 Madrid 3949 636 1558 1550 1347 1764 2498 1439 698 2198 1730 668 1281 Marseilles 2865 521 1011 1059 1101 1035 1778 425 1693 1479 1183 1762 320 1157 Milan 2282 1014 925 1077 1209 911 1537 328 2185 1238 1098 2250 328 1724 618 Munich 2179 1365 747 977 1160 583 1104 591 2565 805 851 2507 724 2010 1109 331 Paris 3000 1033 285 280 340 465 1176 513 1971 877 457 1799 471 1273 792 856 821 Rome 817 1460 1511 1662 1794 1497 2050 995 2631 1751 1683 2700 1048 2097 1011 586 946 Stockholm 3927 2868 1616 1786 2196 1403 650 2068 3886 949 1500 3231 2108 3188 2428 2187 1754 Vienna 1991 1802 1175 1381 1588 937 1455 1019 2974 1155 1205 2937 1157 2409 1363 898 428
MDS配置図の距離dist(eur.cmd)=dist(cmdscale(eurodist))と、実際の距離eurodistの相関係数を調べる。
> cor(eurodist,dist(cmdscale(eurodist)))^2 [1] 0.9722261