Rで多次元尺度法

発想は「2点間距離の情報から、座標を再現する」。

2点間距離を維持したまま、座標を再構成する。内積の定義から、2点間の距離が明らかであれば、2点間の内積を求めることが出来る。(古典的・計量多次元尺度法)

※北海道の2都市間距離から、地図を再現する

hokkaido <- as.matrix(c(0,115,274,249,152,88,152,30,115,0,202,188,118,200,263,130,274,202,0,358,313,360,413,266,249,188,358,0,98,290,330,277,152,118,313,98,0,195,240,180,88,200,360,290,195,0,64,98,152,263,413,330,240,64,0,159,30,130,266,277,180,98,159,0), ncol = 8)

hok <- matrix(hokkaido, nrow = 8, ncol = 8)

hok

(mds.hok = cmdscale(hok,eig=TRUE))

 

plot(mds.hok$points, xlab="", ylab="", xlim=c(-250,220), ylim=c(-120,220))

text(mds.hok$points+20,c("Sapporo", "Asahikawa", "Wakkanai", "Kushiro", "Obihiro", "Muroran", "Hakodate", "Otaru"))

 

非計量多次元尺度法の場合は、与えられたデータを類似度から非類似度に修正する。

アンケート調査のサンプルはここが詳しい。http://jp.surveymonkey.com/s/R3Y8CFN