如何解决在R中,如何在对数据进行聚类后绘制相似性矩阵如框图?
| 我想生成一个图表,显示聚类数据和相似性矩阵之间的相关性。 我如何在R中做到这一点? R中是否有任何功能可以在此链接中创建类似于图片的图形? http://bp0.blogger.com/_VCI4AaOLs-A/SG5H_jm-f8I/AAAAAAAAAJQ/TeLzUEWbb08/s400/Similarity.gif(只是在Google上搜索并获得了显示我要生成的图形的链接) 提前致谢。解决方法
@Chase和@ bill_080的注释中建议的一般解决方案需要进行一些增强,以(部分)满足OP的需求。
一个可重现的示例:
require(MASS)
set.seed(1)
dat <- data.frame(mvrnorm(100,mu = c(2,6,3),Sigma = matrix(c(10,2,4,3,0.5,2),ncol = 3)))
使用Eucildean距离计算标准化数据的相异矩阵
dij <- dist(scale(dat,center = TRUE,scale = TRUE))
然后使用群组平均法计算这些数据的层次聚类
clust <- hclust(dij,method = \"average\")
接下来,我们根据树状图形成三个(\'k \')组来计算样本的排序,但是我们可以在这里选择其他内容。
ord <- order(cutree(clust,k = 3))
接下来,根据树状图(共生距离)计算样本之间的差异:
coph <- cophenetic(clust)
以下是3个图像图:
根据聚类分析分组排序的原始差异矩阵,
间隔距离,再次如上排序
原始相异点和共距之间的差异
类似于Shepard的图,比较了原始距离和共同距离。捕获原始距离的聚类越好,这些点将越靠近1:1线
这是产生以上曲线的代码
layout(matrix(1:4,ncol = 2))
image(as.matrix(dij)[ord,ord],main = \"Original distances\")
image(as.matrix(coph)[ord,main = \"Cophenetic distances\")
image((as.matrix(coph) - as.matrix(dij))[ord,main = \"Cophenetic - Original\")
plot(coph ~ dij,ylab = \"Cophenetic distances\",xlab = \"Original distances\",main = \"Shepard Plot\")
abline(0,1,col = \"red\")
box()
layout(1)
会在活动设备上生成此消息:
综上所述,只有Shepard图显示了“聚类数据和[非相似度矩阵之间的相关性”,而不是图像图(水平图)。对于提议的同位异同和原始[dis]相似性的所有成对比较,您如何建议计算两个数字之间的相关性?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。