目录

  • 1. 什么是多维尺度分析MDS
  • 2. MDS实现步骤
  • 3. 代码
  • 4.参考资料

1. 什么是多维尺度分析MDS

本质上是一种降维方法,让高维数据在低维尺度上直观展示,便于观察其中的差异(距离)。

2. MDS实现步骤

step1:获取数据,行是每一个数据,列是每个特征
step2:以两列(特征)作为差异(距离)的计算标准,计算每个数据两两之间的距离
step3:应用MDS对每个数据进行可视化,直观表现数据差异(距离)
step4:找到最佳维度数量,重新对数据进行可视化
step5:模型效果评价

3. 代码

引入包和数据,本数据共76行,24列,每行是一个数据,最后两列是经纬度特征。

install.packages(c("Rling", "fields", "rgl", "MASS"))
library(Rling); library(fields); library(rgl); library(MASS)
data(eWAVE)

计算数据两两之间的距离,应用MDS,返回每个数据的低维坐标及特征值,可视化前20维的解释力:

geo.dist <- rdist.earth(eWAVE[, 23:24], miles = FALSE)
geo.dist <- as.dist(geo.dist)
geo.mds <- cmdscale(geo.dist, eig = TRUE) #equivalent to cmdscale(geo.dist, k = 2, eig = TRUE)
barplot(geo.mds$eig[1:20], xlab = "Number of dimensions", ylab = "Eigenvalues", main = "Scree plot")


图中可以看出三个维度后解释力大幅下降,所以三维解是最优解。在这先继续以二维展示,后续再做三维的。下面展示MDS后各个数据的距离可视化结果。

plot(geo.mds$points, type = "n", main = "MDS of geographic distances between varieties of English")
text(geo.mds$points, labels = rownames(eWAVE), cex = 0.6)


可以发现各个数据的远近,越近差异越小,越远差异越大。
下面以最佳维度n=3来进行MDS展示。

geo.mds.3d <- cmdscale(geo.dist, k = 3, eig = TRUE)
plot3d(geo.mds.3d$points, type = "n")
text3d(geo.mds.3d$points, texts = rownames(eWAVE), cex = 0.6)


查看MDS模型的有效性,得分越大越好(类似于R2):

geo.mds.3d$GOF

另一种计算有效性方法,得分越小越好(<0.05):

sqrt(sum((geo.dist-dist(geo.mds.3d$points))^2)/sum(geo.dist^2))

除此之外,还可以将每个点的MDS距离与真实距离画图展示,x轴对应于每个pair之间的地理距离,而y轴则表示MDS解决方案所表示的pairs之间的距离。模型效果越好点离对角线越近。

geo.sh <- Shepard(geo.dist, geo.mds.3d$points)
plot(geo.sh, main = "Shepard plot", pch = ".")
lines(geo.sh$x, geo.sh$yf, type = "S")

4.参考资料

Levshina, Natalia. “How to do linguistics with R.” Data Exploration and Statistical Analysis, Amsterdam-Philadelphia (2015).[附百度云盘链接:https://pan.baidu.com/s/1YnWLPiH7oom_dPABWXFKig 提取码:f3nk)

R语言实现多维尺度分析(Multidimensional Scaling,MDS)相关推荐

  1. 多维尺度变换(multidimensional scaling, MDS)

    多维尺度变换(multidimensional scaling, MDS)是在低维空间去展示高维多元数据的一种可视化方法.该方法看起来类似于利用主成分得分作图,或者对两个线性判别量的得分作图.与上述方 ...

  2. SPSS(十四)SPSS之多维尺度分析(图文+数据集)

    SPSS(十三)SPSS之多维尺度分析(图文+数据集) 多维尺度分析简介 多维尺度(Multidimensional scaling,缩写MDS,又译"多维标度")也称作" ...

  3. 多维尺度分析MDS详解

    一 概述 MDS的初衷是将图结构中的距离在空间的一种表示.例如,已知几个城市的距离,但是不知道城市的坐标,那么MDS就能通过距离矩阵转换成空间坐标向量来近似描述距离.更重要地是,MDS可以更广泛地应用 ...

  4. 多维尺度分析(Multidimensional scaling,MDS)及SPSS实现

    ※ 版权所有,转载请联系作者 ※ 1. 多维尺度分析介绍 多维尺度分析也称做多维尺度变换,多维标度或多维尺度法等. 多维尺度分析(Multidimensional scaling, 简称MDS)是根据 ...

  5. jquery多维对象计算个数_多维尺度分析理论概述

    在工作中常常会遇到这样的情况,有 n 个由多个指标反映的客体,但是反映客体的指标个数是多少不清楚,甚至指标本身是什么也是模糊的,更谈不上直接测量或观察它,仅仅所能知道的是这 n 个客体之间的某种距离( ...

  6. 《R语言机器学习:实用案例分析》——1.2节R的数据结构

    本节书摘来自华章社区<R语言机器学习:实用案例分析>一书中的第1章,第1.2节R的数据结构,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sark ...

  7. 《R语言机器学习:实用案例分析》——1.3节使用函数

    本节书摘来自华章社区<R语言机器学习:实用案例分析>一书中的第1章,第1.3节使用函数,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sarkar ...

  8. 【MDS多维尺度分析】

    multidimensional scaling(MDS)多维尺度分析 MDS其实就是一种降维方法,MDS解决的问题是:当n个对象中各对象之间的相似性(或距离)给定时,确定这些对象在低维空间中的表示, ...

  9. R-GIS: 如何用R语言实现GIS地理空间分析及模型预测

    前言:随着地理信息系统(GIS)和大尺度研究的发展,空间数据的管理.统计与制图变得越来越重要.R语言在数据分析.挖掘和可视化中发挥着重要的作用,其中在空间分析方面扮演着重要角色,与空间相关的包的数量也 ...

最新文章

  1. linux系统发送信号的系统调用是,linux系统编程之信号:信号发送函数sigqueue和信号安装函数sigaction...
  2. 约瑟夫环双向链表c语言实,双向链表与约瑟夫环代码
  3. hbase查看表结构_HBase
  4. C# 入门经典 第三版 下载。
  5. 以脚本方式直接执行修改密码的passwd命令
  6. linux进程打开链接数,Linux 进程打开最大文件连接数Too many open files
  7. mysql游标嵌入式_Oracle与MySQL内嵌游标的使用示例
  8. 艾宾浩斯记忆表格excel_好的记忆方法是一切学习的关键(艾宾浩斯记忆法)
  9. 数据仓库组件:Hive环境搭建和基础用法
  10. java歌词高亮显示滚动_js如何处理音乐播放器的歌词文件达到高亮以及滚动的效果?...
  11. 20个最强的基于浏览器的在线代码编辑器
  12. eclipse汉化(傻瓜式)
  13. lg v35 thinkq刷韩版android9.0教程
  14. python图像文字识别 - PyTesser
  15. centos 7之firewalld防火墙配置IP伪装和端口转发案例详解
  16. Linux下安装sublime汉化版及完美输入中文
  17. 不会玩可别说节日营销过气了
  18. Java基础:Java语言简介
  19. 群晖216j使用web station部署librespeed下载无速度的解决方法
  20. win7系统下如何关闭UAC,去掉软件图标上的盾牌

热门文章

  1. 菜鸟的数学建模之路(一):最短路径算法
  2. 练习_20220305
  3. 一人之下合鸿蒙技巧,一人之下:碧游村马大姐竟然会三个八奇技,网友:怪不得这么强!...
  4. 基于容器制作基于ubuntu启动ssh服务的镜像
  5. 一个可以在线生成条形码的网站
  6. .png格式才支持透明
  7. 心电图心跳信号多分类预测-特征提取(三)
  8. STC8学习笔记(一)stc8内部储存器分类(SRAM、ROM、FLASH、EEPROM)
  9. java击鼓传花游戏list_经典游戏之击鼓传花玩法
  10. 百度前端实战训练营学习记录第一弹