2.1 非度量多维度标度变换(Non-metric Multidimensional

scaling)

可以用vegan里的 monoMDS

函数执行非度量多维标度变换,它需要把差异(dissimilarities)作为输入量。差异用vegan里的vegdist函数求取。默认值是Bray-Curtis指数,现在常见的是Steinhaus指数,或者芬兰所称的Sørensen指数。基本步骤(依次输入的命令)如下:

> library(permute)

> library(vegan)

This is vegan 2.0-5

//系偶今天(2012-11-20)下载的版本

> data(varespec)

> vare.dis

vegdist(varespec)

> vare.mds0

monoMDS(vare.dis)

> stressplot(vare.mds0,

vare.dis)

默认的是找到两个维度和使用度量变换(cmdscale)作为初始解。解由迭代法求得,可以从迹的信息中看到(可以禁止设置trace=F)。

monoMDS 函数得到的结果有一长串:nobj, nfix, ndim, nobj, nfix, ndim,

ndis, ngrp, diss, iidx, jidx, xinit, istart, isform, ities, iregn,

iscal, maxits, sratmx, strmin, sfgrmn, dist, dhat, points, stress,

grstress, iters, icause, call, model, distmethod, distcall,

这些结果用于configuration和Stress。Stress

(S)是衡量拟合优度的一个统计量,是关于差异和序列距离 的单调非线性函数,表达式如下:

NMDS图把群落非线性的差异投影到序列空间上进行观察,它能处理任意形状非线性的物种响应。可以使用MASS程序包里的Shepard函数查看图像,或者使用vegan里的stressplot函数(画的图如下)。

stressplot 函数画出的是Shepard图,横坐标是群落差异,纵坐标是排序距离(ordination

distances)。表现为单调的阶梯状曲线(图中的红线)。应注意,图中给出了两个与拟合优度有关的统计量。一个是与stress有关的R2=1-S2(Non-metric

fit,R2=0.963)。另一个fit-based

R2是和的相关系数,或者是阶梯状曲线与点的相关系数。这两个相关系数都以Shepard图的残差为基础,但他们的零模型(null

model)不同。线性拟合的零模型中所有的序列距离都相等,拟合得到一条“胖”水平直线。看起来是可取的,但是N个点的零模型需要N-1维数据,在几何上是不可能在序列空间中实现这个零模型的。基础stress使用的零模型中所有的观测放在同一个点,这在几何上是可能的。最终的警示语:你可能看到过有人使用和的相关系数。这是危险的,是一种误导。因为NMDS是一种非线性方法,根据该准则,一种改良的、具有更多的非线性关系会显示错误。

使用vegan中的函数scores和ordiplot处理NMDS的结果。输入命令

ordiplot(vare.mds0, type = "t"),得到下图:

上图显示出的只有site

scores,因为差异信息里不包括物种信息。

由于排序和原始差异是非线性相关,因此在NMDS中迭代搜索异常困难,局部最优比全局最优更容易。因此推荐使用几个随机起始值(random

starts),并且选择stress值最小的近似解。这很繁琐,但vegan里的函数metaMDS可轻易处理之。tracing输出结果很长,我们可以压缩之,即令trace=0(处理的时间可能很长)。输入的命令和结果(Call后面的东西)如下图所示:

根据上述结果制图,输入命令plot(vare.mds,

type=“t”)),图在下面:

我们没有单独计算差异,但是我们给出了原始数据矩阵作为输入。结果比起初复杂的多,在 monoMDS

给出的结果中增加了相当多的东西,有nobj, nfix, ndim, ndis, ngrp, diss, iidx, jidx,

xinit, istart, isform, ities, iregn, iscal, maxits, sratmx, strmin,

sfgrmn, dist, dhat, points, stress, grstress, iters, icause,

call,model, distmethod, distcall, data, distance, converged,

tries,engine,

species.(前面已经见过了),这个函数里包含了一大堆指令,都做哪些工作呢?答案如下:

(1)数据范围相当大,以至于做取方根变换,然后进行Wisconsin双重标准化(Wisconsin

double

standardization),或者按最大值把物种分类,并通过标准化转变成总和相等。通常使用这两种标准化来改进序列,但在最初的分析中我们并不关心他。

(2)使用Bray-Curtis差异方程。

(3)使用几个随机起始量(random

starts)来运行monoMDS,运行若干次或者找到两个相似且stress最小的组合(configurations)后停止运行。任何时候,它都会返回最优解。

(4)对解进行旋转,目的是令site scores方差最大的处在第一轴上。

(5)标定(Scaled)解,从而使一个单位相当于从复制的类似物中把群落相似性均分(Function scaled the

solution so that one unit corresponds to halving of community

similarity from the replicate similarity.)。

(6)找出物种得分(species scores)作为样地得分(site

scores)的平均权重,但要把它们扩大,使物种和样地得分的方向相等。在display命令里令shrink=TRUE命令可以恢复该过程。

当然,在系统帮助文档里有metaMDS的详解。

非度量多维标度_R软件包vegan教程 2.1非度量多维度标度变换相关推荐

  1. [转载]R软件包vegan教程 5.1 函数adonis的使用

    原文地址:R软件包vegan教程 5.1 函数adonis的使用作者:mateco 5 差异和环境(Dissimilarities and environment) 已经讨论了排序的环境因子解释,和环 ...

  2. [转载]R软件包vegan教程 5.1 函数adonis的使用_圈圈Bio_新浪博客

    原文地址:R软件包vegan教程 5.1 函数adonis的使用作者:mateco 5 差异和环境(Dissimilarities and environment) 已经讨论了排序的环境因子解释,和环 ...

  3. SD155非接触五维位移监测仪应用建筑物监测 大坝监测 滑坡监测 桥梁监测 地表监测 墙裂监测

    SD155非接触五维位移监测仪,一款非接触原理的多维度空间位置监测系统,拥有完全的知识产权.使用基于GSM/GPRS网络进行无线数据传输,数据实时性稳定性增强.使用相对量的测量方法,提高了位移监测精度 ...

  4. CloudCC生态软件包开发教程-李育红-专题视频课程

    CloudCC生态软件包开发教程-631人已学习 课程介绍         CloudCC PaaS是一个用于创建下一代云应用程序的生态开发平台.CloudCC PaaS平台使用Java 编程语言开发 ...

  5. 老男孩mysql运维dba实战21部完整版_老男孩MySQL DBA 运维课程全套,资源教程下载...

    课程名称 老男孩MySQL DBA 运维课程全套 课程目录 01-第一部-MySQL基础入门(21节) 02-第二部-老男孩MySQL多实例安装与企业应用场景(10节) 03-第三部-老男孩MySQL ...

  6. 两个非递减有序单链表La和Lb合并成一个非递增有序链表Lc

    #include<iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> ...

  7. Golang爬虫终极杀器——Chromedp让你成为二维码登陆终结者(教程)

    Golang爬虫终极杀器--Chromedp让你成为二维码登陆终结者(教程) Github源码 - chromedp 文章项目Gitee源码 1 Chromedp是什么 chromedp是一个更快.更 ...

  8. 【转载】非Lumia 950/XL机型 强行开启continuum教程

    听说Windows 10 Mobile 的 Continuum 特性很长时间了,但是由于我自己的 Lumia 930 不在支持之列,一直没能体验到这个功能.今天在酷七看到了这篇文章,按文章所述的步骤进 ...

  9. python菜鸟教程100实例-运维人员学习python菜鸟教程

    这篇文章主要为大家详细介绍了运维人员学习python菜鸟教程,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 从不会写代 ...

  10. centos 卸载软件_Linux服务器运维必备技能 软件包和启动项超详细整理

    一.RedHat/CentOS包管理 1. 包管理工具RPM (1) 简介 最早用在 RedHat的包管理器,现在已经成为Linux常见的包管理系统.RPM包有两种类型: 二进制RPM包 源码RPM包 ...

最新文章

  1. 修改maven中的jdk版本
  2. linux运行360sh,在深度deepin系统中运行install.sh文件的方法
  3. Java使用递归实现全排列的代码
  4. DHCP+VTP(实验讲解+配置)
  5. android Handler更新UI
  6. 大数据的“媒体玩法”
  7. linux系统下部署go语言环境
  8. 军哥 LNMP 常见问题
  9. spring5.0学习笔记1
  10. 《信息系统项目管理师教程》目录
  11. 现在主流人工智能(AI)方法的本质是什么?
  12. Extjs 例外被抛出且未被接住
  13. 建立一个电脑网络至少需要两台计算机,两台电脑见建立一个局域网方法介绍
  14. overflow与absolute的关系
  15. python中的myql的execute()
  16. 【数据分析可视化】股票市场分析实战之风险分析
  17. Matlab/simulink 风电风机一次调频,变桨控制,变风速调频对比,转子动能控制,虚拟惯性控制,风机内部控制详细,频域模型,DFIG,PMSG
  18. VMware Workstation 15 pro 安装macOS 10.13,macOS 10.14教程(仅供个人兴趣学习使用)
  19. ubuntu16.04中安装Kdevelop和使用技巧
  20. Boll布林带波动率策略

热门文章

  1. nginx打开网页报错
  2. C++ 矩阵求a*b-1及行列式、伴随矩阵和逆矩阵思想及源代码
  3. 求1到n的所有质数(素数)
  4. 用css制作网站首页
  5. NPS之Socks流量分析以及未授权复现
  6. 计算机无法登陆提示rpc服务器不可用,电脑提示RPC服务器不可用的解决方法
  7. Linux shell:echo显示彩色字体
  8. 数据挖掘(一)-探索性数据分析
  9. 二手车交易价格预测 ——EDA 探索性数据分析
  10. YouTube如何开启双语显示