衣带渐宽终不悔分享 http://blog.sciencenet.cn/u/tuqiang2014 在康河的柔波里,做一条水草, 向青草更青处漫溯。

博文

数量生态学笔记||R模式

已有 4221 次阅读 2018-7-24 21:01 |系统分类:科研笔记

在上节课数量生态学笔记||Q模式中我们了解了比较对象对的Q模式,换句话说我们用了各式各样的距离。请大家结合自己的学习学习为什么对象对之间要用距离而不是相关呢?

今天我们来学习一下生态学中比较多变量对的关联测度,也就是相关类型的系数。

R模式:物种多度数据
  • 相关系数
  • 卡方距离
# 加载所需程序包
library(ade4)
library(vegan)    # 应该先加载ade4再加载vegan,以避免一些冲突
library(gclus)
library(cluster)
library(FD)
library(gclus)

source("coldiss.R")  #如果函数文件没有在当前工作目录下,需要指定文件路径
# 使用coldiss()函数产生的彩图(在一些数据分析文献中也称作热图或格状图)
# 导入CSV格式的数据

rm(list = ls())
setwd("D:\\Users\\Administrator\\Desktop\\RStudio\\数量生态学\\DATA")
spe <- read.csv("DoubsSpe.csv", row.names=1)
env <- read.csv("DoubsEnv.csv", row.names=1)
spa <- read.csv("DoubsSpa.csv", row.names=1)
# 剔除无物种数据的样方8
spe <- spe[-8,]
env <- env[-8,]
spa <- spa[-8,]
# 物种多度矩阵的转置矩阵
spe.t <- t(spe)
# 先卡方转化后计算欧氏距离
spe.t.chi <- decostand(spe.t, "chi.square")
 spe.t.D16 <- dist(spe.t.chi)
coldiss(spe.t.D16, diag=TRUE)
   #在右边的图中,你能否分辨出物种组?
# 鱼类有-无数据的Jaccard指数
spe.t.S7 <- vegdist(spe.t, "jaccard", binary=TRUE)
coldiss(spe.t.S7, diag=TRUE)
#将右边的图与之前获得的卡方距离图进行比较,物种组是否一致?

R 模式: 物种有无数据
  • Jaccard
  • Sorensen
  • Ochiai
# 鱼类有-无数据的Jaccard指数
spe.t.S7 <- vegdist(spe.t, "jaccard", binary=TRUE)
coldiss(spe.t.S7, diag=TRUE)
#将右边的图与之前获得的卡方距离图进行比较,物种组是否一致?

R 模式: 定量和序数数据(除物种多度之外的数据)
  • 线性纲量相同:协方差、Person
  • 线性纲量不同:Person
  • 序数变量或单调非线性:Spearman、Kendall相关
# 环境变量之间的Pearson线性相关系数r
env.pearson <- cor(env)    # 默认 method = "pearson"
round(env.pearson, 2)
      das   alt   pen   deb    pH   dur   pho   nit   amm   oxy   dbo
das  1.00 -0.94 -0.39  0.95  0.02  0.73  0.47  0.74  0.41 -0.57  0.43
alt -0.94  1.00  0.46 -0.86 -0.05 -0.79 -0.44 -0.75 -0.38  0.42 -0.38
pen -0.39  0.46  1.00 -0.36 -0.22 -0.53 -0.20 -0.31 -0.17  0.31 -0.17
deb  0.95 -0.86 -0.36  1.00  0.03  0.74  0.38  0.59  0.29 -0.42  0.30
pH   0.02 -0.05 -0.22  0.03  1.00  0.08 -0.08 -0.04 -0.12  0.19 -0.16
dur  0.73 -0.79 -0.53  0.74  0.08  1.00  0.37  0.53  0.30 -0.37  0.34
pho  0.47 -0.44 -0.20  0.38 -0.08  0.37  1.00  0.80  0.97 -0.76  0.91
nit  0.74 -0.75 -0.31  0.59 -0.04  0.53  0.80  1.00  0.80 -0.69  0.68
amm  0.41 -0.38 -0.17  0.29 -0.12  0.30  0.97  0.80  1.00 -0.75  0.90
oxy -0.57  0.42  0.31 -0.42  0.19 -0.37 -0.76 -0.69 -0.75  1.00 -0.84
dbo  0.43 -0.38 -0.17  0.30 -0.16  0.34  0.91  0.68  0.90 -0.84  1.00

# 在绘图之前重新排位变量
env.o <- order.single(env.pearson)
# pairs:一个同时生成双变量之间散点图和相关系数图的函数
# 图中上半部分显示两个变量之间相关系数(带显著水平)
source("panelutils.R") # 如果脚本不在当前工作目录下,需要给出访问路径
op <- par(mfrow=c(1,1), pty="s")
pairs(env[,env.o], lower.panel=panel.smooth, upper.panel=panel.cor,
    diag.panel=panel.hist, main="Pearson 相关矩阵")
par(op)
#请辨认与变量"das"相关的环境变量。这些图能够告诉你什么信息呢?

# 环境变量之间的Kendall秩相关
env.ken <- cor(env, method="kendall")
env.o <- order.single(env.ken)
op <- par(mfrow=c(1,1), pty="s")
pairs(env[,env.o], lower.panel=panel.smooth, upper.panel=panel.cor,
    method="kendall", diag.panel=panel.hist, main="Kendall Correlation Matrix")
par(op)
#通过这些双变量关系图,你更倾向于用Kendall秩相关还是Pearson线性相关?



https://blog.sciencenet.cn/blog-1835014-1125740.html

上一篇:数量生态学笔记||Q模式
下一篇:数量生态学笔记||关于层次聚类
收藏 IP: 123.151.22.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的精选博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-24 04:40

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部