非度量多维尺度分析(Non-metric multidimensional scaling,NMDS)是间接梯度分析方法,其基于距离或不相似矩阵产生排序。与尝试最大化排序中的对象之间的方差或对应关系的方法不同,NMDS试图尽可能接近地表示低维空间中的对象之间的成对不相似性。可以使用任何相异系数或距离度量来构建用作输入的距离矩阵。

NMDS是一种基于排名的方法。这意味着原始距离数据被等级替换。因此,对象A不是距离对象B远离2.1个单位、对象C远离4.4个单位,对象C是对象A的“第一”远,而对象B是对象B的“第二”远。虽然丢失了关于距离大小的信息,但基于秩的方法通常对于没有可识别分布的数据更稳健。

如果排序的目的不是最大限度地保留对象之间的实际距离,只是反映对象之间的顺序关系,这个时候NMDS是一种可行的解决方案。NMDS与PCoA同属于多维尺度分析(multidimensional scaling,MDS),与PCoA一样,NMDS可以基于任何类型距离矩阵对对象进行排序。与PCoA不同的是,NMDS不再基于距离矩阵数值,而是基于排位顺序进行计算,是非线性的模型能更好的反映生态数据。

NMDS 计算过程:

预先设定排序轴的数量m

在m维空间内构建对象的初始结构,初始结构是调整对象之间位置关系的起点。通常,PCoA是一个很好的初始结构。

在m维空间内,用一个迭代程序不断调整对象位置,目标是不断最小化应力函数(stress function,其值被转化为0~1 之间的数值)。

不断调整对象位置,直至应力函数值不再减少,或已达到预定的值。

大部分NMDS会根据PCA结果旋转最终的排序图,使结果更容易解读。

# 导入本章所需的程序包

library(ade4)

library(vegan)

library(gclus)

library(ape)

rm(list = ls())

setwd("D:\\Users\\Administrator\\Desktop\\RStudio\\数量生态学\\DATA")

# 导入CSV文件数据

spe

env

spa

# 删除没有数据的样方8

spe

env

spa

# 基于鱼类数据Bray-Curtis距离矩阵的NMDS排序

# ****************************************

spe.nmds

spe.nmds

spe.nmds$stress

plot(spe.nmds, type="t", main=paste("NMDS/Bray-应力函数值=", round(spe.nmds$stress,3)))

#当前生成的排序图与PCA、CA和PCoA的排序图进行比较,有什么不同?

# 评估NMDS拟合度的Shepard图

par(mfrow=c(1,2))

stressplot(spe.nmds, main="Shepard图")

gof = goodness(spe.nmds)

plot(spe.nmds, type="t", main="拟合度")

points(spe.nmds, display="sites", cex=gof*200)

NMDS排序图内加聚类分析结果

spe.bray

# 基于Bray-Curtis相异矩阵Ward聚类结果(提取4组)

spe.bray.ward

spe.bw.groups

grp.lev

# 与NMDS结果进行组合

sit.sc

p

for (i in 1:length(grp.lev)) {

points(sit.sc[spe.bw.groups==i,], pch=(14+i), cex=2, col=i+1)

}

text(sit.sc, row.names(spe), pos=4, cex=0.7)

# 添加聚类树

ordicluster(p, spe.bray.ward, col="dark grey")

legend(locator(1), paste("Group",c(1:length(grp.lev))),

pch=14+c(1:length(grp.lev)), col=1+c(1:length(grp.lev)), pt.cex=2)

nmds与mds的区别_数量生态学笔记||非约束排序|NMDS相关推荐

  1. rda分析怎么做_数量生态学笔记||冗余分析(RDA)

    上一节数量生态学笔记||冗余分析(RDA)概述中,我们回顾了RDA的计算过程,不管这个过程我们有没有理解透彻,我希望你能知道的是:RDA是响应变量矩阵与解释变量之间多元多重线性回归的拟合值矩阵的PCA ...

  2. rda冗余分析步骤_数量生态学笔记||冗余分析(RDA)

    上一节数量生态学笔记||冗余分析(RDA)概述中,我们回顾了RDA的计算过程,不管这个过程我们有没有理解透彻,我希望你能知道的是:RDA是响应变量矩阵与解释变量之间多元多重线性回归的拟合值矩阵的PCA ...

  3. 冒泡排序和选择排序区别_你以为只是简单的排序?(一)

    一直在犹豫要不要写排序的文章,因为真的烂大街了.可是一旦细看,还真是很多值的思考的地方,所以还是选择记录一下 以下完整代码,均可从这里获取 https://github.com/Rain-Life/d ...

  4. mysql聚合索引跟非聚合索引的区别_聚集索引和非聚集索引的区别有哪些

    下面说说索引使用的几个误区和问题 第一:聚集索引的约束是唯一性,是否要求字段也是唯一的呢? 分析:如果认为是的朋友,可能是受系统默认设置的影响,一般我们指定一个表的主键,如果这个表之前没有聚集索引,同 ...

  5. mysql聚集索引和非聚集索引的区别_聚集索引与非聚集索引的总结

    一.索引简介 众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引.这篇文章会总结SQL Se ...

  6. 输出dag的所有拓扑排序序列_算法学习笔记(53): 拓扑排序

    拓扑排序是对DAG(有向无环图)上的节点进行排序,使得对于每一条有向边 , 都在 之前出现.简单地说,是在不破坏节点 先后顺序的前提下,把DAG拉成一条链.如果以游戏中的科技树(虽然名字带树,其实常常 ...

  7. zoho邮箱收费和免费区别_您需要了解有关适用于ios和android的新zoho vault移动应用程序的所有信息...

    zoho邮箱收费和免费区别 The secret phrase is the true standard of computerized validation and access. Any run ...

  8. 再读《数量生态学:R语言应用》

    我喜欢在海边捡贝壳,我喜欢在草原上追逐群羊,我喜欢数天上的星星.我好奇,只有七秒记忆的鱼,如何找到回家的路.每个人都是天然的生态学家,有着对身边事物多样性以及其中蕴含的数量与空间关系的感悟. 在< ...

  9. 两个质数互质是_两个质数一定是互质数_互质数和质数的区别_分解质因数的方法_互为质数和互质数...

    宜城教育资源网www.ychedu.com两个质数一定是互质数_互质数和质数的区别_分解质因数的方法_互为质数和互质数质数,互质数,分解质因数,合数一个数只有1和它本身两个约数,这样的数叫做质数.一个 ...

  10. CIF、DCIF、D1区别_昂首阔步_百度空间

    CIF.DCIF.D1区别_昂首阔步_百度空间 CIF.DCIF.D1区别 关于视频监控分辨率CIF.DCIF.D1格式的介绍 什么是D1? 做闭路电视监控系统这一行久了,大家都以为D1是硬盘录像机显 ...

最新文章

  1. CLR 中 线程的 ThreadState 解释
  2. kafka删除主题数据和删除主题
  3. python socket清空接受区_原始Python服务器
  4. tensorflow官方posenet模型解析
  5. php ssl 不验证失败,php – 没有SSL的安全身份验证
  6. 2名数学家或发现史上最快超大乘法运算法,欲破解困扰人类近半个世纪的问题...
  7. HLSL Effect的vertex shader和pixel shader的参数传递
  8. 还不会用 Python 提取 PDF 表格?三种类型数据,轻松转换成 Excel
  9. 牛顿法与拟牛顿法求解比较
  10. 中缀向后缀转换表达式
  11. SEASKY开源机械键盘 AD PCB 教程
  12. Future异步回调详解
  13. 当不小心更改了matlab工具箱的内置函数怎么办?以及matlab指定工具箱卸载
  14. php 的几种运行方式
  15. http状态码大全201,304,301,405等等.......
  16. 方便好用计算机,电脑系统哪个最好用 电脑系统对比介绍【图文】
  17. react实现异步插件_react项目优化之webpack
  18. 解决“Spark context stopped while waiting for backend“ issue
  19. Winform实现类似Viso的简单的流程图
  20. 通过代码生成以太坊助记词、根据钱包地址获取私钥

热门文章

  1. golang GC机制
  2. Lerx开源网站内容管理CMS系统源码
  3. 用学习逃避成长,听新知缓解焦虑
  4. 山大商院java课程_山大商院必读书目推荐——《社会科学方法论》
  5. 读书无用论?那个卖猪肉的北大毕业生,曾经受尽嘲讽,现在身价过亿了
  6. 操作系统实验七:动态分区分配方式的模拟
  7. android x86 usb检查不到,【android9.0】system/core下的usbhost模块无法输出log到logcat
  8. 需要计算机安装msxml,怎么在电脑上安装msxml6.0?教大家具体安装步骤
  9. 关于企业微信二次开发
  10. cox回归模型python实现_cox回归模型python实现_生存分析Cox回归模型(比例风险模型)的spss操作实例...