第一次接触NMDS,看到的时候一脸懵逼,后来经过查阅资料学习,非度量多维尺度分析是一种将多维空间的研究对象(样本或变量)简化到低维空间进行定位、分析和归类,同时又保留对象间原始关系的数据分析方法。适用于无法获得研究对象间精确的相似性或相异性数据,仅能得到他们之间等级关系数据的情形。其基本特征是将对象间的相似性或相异性数据看成点间距离的单调函数,在保持原始数据次序关系的基础上,用新的相同次序的数据列替换原始数据进行度量型多维尺度分析。换句话说,当资料不适合直接进行变量型多维尺度分析时,对其进行变量变换,再采用变量型多维尺度分析,对原始资料而言,就称之为非度量型多维尺度分析。其特点是根据样品中包含的物种信息,以点的形式反映在多维空间上,而对不同样品间的差异程度,则是通过点与点间的距离体现的,最终获得样品的空间定位点图,理解起来有点难度,我还是比较喜欢实践操作。分析过程如下:
> library(vegan)
载入需要的程辑包:permute
载入需要的程辑包:lattice
This is vegan 2.4-5
Warning message:
程辑包‘vegan’是用R版本3.4.3 来建造的
> data("varespec")
> data("varechem")
> rankindex(varechem,varespec)
euc man gow bra kul
0.2396330 0.2735087 0.2288358 0.2837910 0.2839834
> vare.dis <- vegdist(varespec,method = "bray");range(vare.dis)
[1] 0.1117280 0.9539592
> require(MASS)
载入需要的程辑包:MASS
> vare.mds0 <- isoMDS(vare.dis)
initial value 18.026495
iter 5 value 10.095483
final value 10.020469
converged
> ordiplot(vare.mds0,type = "t")
Warning message:
In ordiplot(vare.mds0, type = "t") : Species scores not available
> stressplot(vare.mds0,vare.dis)
> vare.mds <- metaMDS(varespec,trace = T)
Square root transformation
Wisconsin double standardization
Run 0 stress 0.1843196
Run 1 stress 0.2311596
Run 2 stress 0.195049
Run 3 stress 0.2096851
Run 4 stress 0.2075794
Run 5 stress 0.1955841
Run 6 stress 0.2048307
Run 7 stress 0.2266532
Run 8 stress 0.2391157
Run 9 stress 0.1843196
... New best solution
... Procrustes: rmse 0.0001060273 max resid 0.0004244422
... Similar to previous best
Run 10 stress 0.2080782
Run 11 stress 0.1982378
Run 12 stress 0.1843196
... New best solution
... Procrustes: rmse 2.861714e-05 max resid 8.876764e-05
... Similar to previous best
Run 13 stress 0.231162
Run 14 stress 0.2005511
Run 15 stress 0.2399346
Run 16 stress 0.1974422
Run 17 stress 0.2290228
Run 18 stress 0.195049
Run 19 stress 0.2164106
Run 20 stress 0.2100135
*** Solution reached
> vare.mds
Call:
metaMDS(comm = varespec, trace = T)
global Multidimensional Scaling using monoMDS
Data: wisconsin(sqrt(varespec))
Distance: bray
Dimensions: 2
Stress: 0.1825658
Stress type 1, weak ties
Two convergent solutions found after 20 tries
Scaling: centring, PC rotation, halfchange scaling
Species: expanded scores based on ‘wisconsin(sqrt(varespec))’
> plot(vare.mds,type = "t")
运行过程中产生图片如下:


