Up

多次元尺度法

MutiDimensional Scaling: MDS

 

対象の空間布置が与えられると対象間の距離が算出できるが、逆に対象間の距離が与えられたときに対応する空間布置を求める方法が多次元尺度構成法(多次元尺度法)である。距離データは、対象間の非類似度、あるいは類似度として与えられるが、非類似度データを距離と見なして多次元尺度法を適用する計量多次元尺度法(metric multidimensional scaling)と、非類似度データを距離と単調関係にあるものとして扱う非計量多次元尺度法(nonmetric multidimensional scaling)が区別される。計量多次元尺度法のウェブサイト非計量多次元尺度法のウェブサイトを用意したが、いずれも布置を汎用の極値探索法で求めている。極値探索法はscipy.optimize.minimizeを用いているのでプログラムは簡単である。一般に、極値探索法では初期値の影響の虞があるが、多次元尺度法ではこの初期値の影響は対象の数が増えると大きい。以下のウェブサイト

計量多次元尺度法

非計量多次元尺度法

では、初期値を距離データの行列Dから作成される (D**2)*(-0.5)に対して2重中心化(double centering)を行い、その固有分解(characteristic decomposition)によって初期値としての布置を設定している(Borg & Groenen, 2005; Carroll and Wish, 1974)。詳しくは、<岡本安晴「心理学データ分析と測定」勁草書房>の第13章「心の地図を描く:多次元尺度法」で説明している。

距離としては、ミンコフスキーr−メトリック

を扱った。

なお、プログラムではファイル入出力やグラフ描画を行っているが、これらは<岡本安晴「いまさら聞けないPythonでデータ分析」丸善出版>で説明している。

 

r−メトリックを視覚的に理解するために、2次元単位円を描くプログラムを作成してみた。

単位円上の点を

とおくと、次式が成り立つ。

これより、

上式に基づき、リスト1のプログラムを作成した。

リスト1 r-metricによる単位円描画プログラム

import numpy as np

import matplotlib.pyplot as plt

 

def calc_coord_r( r ):

    theta_s = [t * (2.0 * np.pi / 1000) for t in range(1000)]

    t_values = [(1.0 / (np.abs(np.cos(t))**r + np.abs(np.sin(t))**r)) ** (1/r) for t in theta_s]

    coords = [[t*np.cos(theta), t*np.sin(theta)] for t, theta in zip(t_values, theta_s)]

    coords = np.array(coords)

    return coords

 

coords_2 = calc_coord_r(2)

coords_3 = calc_coord_r(3)

coords_5 = calc_coord_r(5)

coords_10 = calc_coord_r(10)

 

plt.figure(figsize = (7,7))

plt.plot([-1, 0, 1, 0, -1],[0, -1, 0, 1, 0], label = 'r = 1 (city block)')

plt.plot(coords_2.T[0], coords_2.T[1], label = 'r = 2')

plt.plot(coords_3.T[0], coords_3.T[1], label = 'r = 3')

plt.plot(coords_5.T[0], coords_5.T[1], label = 'r = 5')

plt.plot(coords_10.T[0], coords_10.T[1], label = 'r = 10')

plt.plot([-1, 1, 1, -1, -1], [-1, -1, 1, 1, -1], label = 'r = $\infty$ (sup metric)')

plt.legend(loc = 'center', fontsize = 14)

plt.show()

 

リスト1のプログラムを実行すると図1のグラフが表示される。

図1

 

r=1のときはcity blockメトリック、r=+∞のときはsup metricなどとも呼ばれている。

 

 

引用文献

Borg, I. & Groenen, P.J.F. (2005). Modern multidimensional scaling: Theory and application, 2nd ed. Springer.

Carroll, J, D. & Wish, M. (1974). Models and methods for three-way multidimensional scaling. In D. H. Krantz, A. C. Atkinson, R. D. Luce, & P. Suppes (Eds.). Contemporary developments in mathematical psychology, Vol. II.: Measurement, psychophysics, and neural information processing (pp. 57-105). Freeman.

岡本安晴(2014).心理学データ分析と測定.勁草書房

 

 

Up