2011-07-07 12 views
2

私は5x14のデータ行列を持っています。私は知覚地図を得るためにMDSを使用しています。私は適切にMDSを行うことができます&結果を取得します。多次元スケーリング

しかし私の問題は、MDSでは行または列変数をマップできることです。 MDSを使用して両方の行を&列変数にマッピングすることは可能ですか?

私が使用したコードは以下の通りです:

perp<-read.csv("E:\\Projects\\Combined_3.csv") 
ads.dis<-dist(perp) 
perp_mds <- cmdscale(ads.dis, k = 2,eig=TRUE) 
x <- perp_mds$points[,1] 
y <- perp_mds$points[,2] 
plot(x,y, xlab = "Coordinate 1", ylab = "Coordinate 2", type = "n") 
text(x,y, labels = rownames(perp)) 

誰かがコーディングで私を助けることができる場合、私は感謝するでしょう。

よろしく、一般的には アリ

答えて

4

、答えはないcmdscale()で、noです。オブジェクトの間の相違点は、cmdscale()の知識があることです。 ビーガンパッケージには、プリンシパル座標解析(PCoA aka MDS)の制約バージョンである関数capscale()がありますが、通常のPCoAでは使用できます。

require(vegan) 
data(varespec) 
mod <- capscale(varespec ~ 1) 
plot(mod) 

をしかし、ユークリッド距離とPCOAも使用することができ、自然にオブジェクトの両方をプロットしますPCA、同じであることに注意してください:それはバイプロットのような図にオブジェクトと変数の両方を配置することができますそして、変数:

plot(rda(varespec)) 

またはベースRの機能を使用して

mod2 <- prcomp(varespec) 
biplot(mod2) 

それとも、MDSの非計量バージョンを意味するのですか?

+0

ありがとうございましたGavin!これはまさに私が探していたものです。それは魅力のように機能します。 – Beta