0 ~ 1 のスケールで 1200 人までの任意の 2 つのペア間の類似性/非類似性を計算しています。
これらの関係を XY 平面で視覚化したいと思います。これらの関係を利用して、類似性の高い人同士を近づけ、非類似性の高い人同士を遠ざけることができるソフトウェア ツールはありますか?
0 ~ 1 のスケールで 1200 人までの任意の 2 つのペア間の類似性/非類似性を計算しています。
これらの関係を XY 平面で視覚化したいと思います。これらの関係を利用して、類似性の高い人同士を近づけ、非類似性の高い人同士を遠ざけることができるソフトウェア ツールはありますか?
多次元スケーリングを使用する必要があります。目的は、2 次元の線形距離との類似性の相対的な違いを表すデータの変換を特定することです。これには、従来のスケーリングまたはメトリック ベースのスケーリングを使用する必要があります。
R を使用した例を次に示します。
コードはかなり単純です。の距離行列を作成するための魔法がすべて入ってcmdscale
おり、 を使用しています。次に、R を使用するか、視覚化のためにデータを別の場所にエクスポートできます。vegdist
cmdscale
## load libraries
library(ggplot2) # for charting
library(vegan) # for jaccard
## simulate some data - 1200 rows, 5 features/cols/fields
features <- matrix(abs(rnorm(1200*5)),ncol=5)
rownames(features) <- paste("P", seq(1:1200), sep="")
## calculate jaccard distances
d <- vegdist(features, method = "jaccard")
## Multidimensional Scaling
fit <- cmdscale(d,eig=TRUE, k=2)
# prepare the data for plotting
mds <- data.frame(
x = fit$points[,1],
y = fit$points[,2],
name = rownames(features))
# plot
ggplot(mds, aes(x=x,y=y,label=color=name)) + geom_text(size=1)
## bonus visualization! - a dendrogram
fit <- hclust(d, method="ward")
plot(fit)