在上節(jié)課數(shù)量生態(tài)學(xué)筆記||Q模式中我們了解了比較對象對的Q模式,換句話說我們用了各式各樣的距離。請大家結(jié)合自己的學(xué)習(xí)學(xué)習(xí)為什么對象對之間要用距離而不是相關(guān)呢?
今天我們來學(xué)習(xí)一下生態(tài)學(xué)中比較多變量對的關(guān)聯(lián)測度,也就是相關(guān)類型的系數(shù)障本。
R模式:物種多度數(shù)據(jù)
- 相關(guān)系數(shù)
- 卡方距離
# 加載所需程序包
library(ade4)
library(vegan) # 應(yīng)該先加載ade4再加載vegan,以避免一些沖突
library(gclus)
library(cluster)
library(FD)
library(gclus)
source("coldiss.R") #如果函數(shù)文件沒有在當(dāng)前工作目錄下响鹃,需要指定文件路徑
# 使用coldiss()函數(shù)產(chǎn)生的彩圖(在一些數(shù)據(jù)分析文獻(xiàn)中也稱作熱圖或格狀圖)
# 導(dǎo)入CSV格式的數(shù)據(jù)
rm(list = ls())
setwd("D:\\Users\\Administrator\\Desktop\\RStudio\\數(shù)量生態(tài)學(xué)\\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)
# 剔除無物種數(shù)據(jù)的樣方8
spe <- spe[-8,]
env <- env[-8,]
spa <- spa[-8,]
# 物種多度矩陣的轉(zhuǎn)置矩陣
spe.t <- t(spe)
# 先卡方轉(zhuǎn)化后計算歐氏距離
spe.t.chi <- decostand(spe.t, "chi.square")
spe.t.D16 <- dist(spe.t.chi)
coldiss(spe.t.D16, diag=TRUE)
#在右邊的圖中驾霜,你能否分辨出物種組?
# 魚類有-無數(shù)據(jù)的Jaccard指數(shù)
spe.t.S7 <- vegdist(spe.t, "jaccard", binary=TRUE)
coldiss(spe.t.S7, diag=TRUE)
#將右邊的圖與之前獲得的卡方距離圖進(jìn)行比較买置,物種組是否一致粪糙?
R 模式: 物種有無數(shù)據(jù)
- Jaccard
- Sorensen
- Ochiai
# 魚類有-無數(shù)據(jù)的Jaccard指數(shù)
spe.t.S7 <- vegdist(spe.t, "jaccard", binary=TRUE)
coldiss(spe.t.S7, diag=TRUE)
#將右邊的圖與之前獲得的卡方距離圖進(jìn)行比較,物種組是否一致蓉冈?
R 模式: 定量和序數(shù)數(shù)據(jù)(除物種多度之外的數(shù)據(jù))
- 線性綱量相同:協(xié)方差轩触、Person
- 線性綱量不同:Person
- 序數(shù)變量或單調(diào)非線性:Spearman、Kendall相關(guān)
# 環(huán)境變量之間的Pearson線性相關(guān)系數(shù)r
env.pearson <- cor(env) # 默認(rèn) 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:一個同時生成雙變量之間散點(diǎn)圖和相關(guān)系數(shù)圖的函數(shù)
# 圖中上半部分顯示兩個變量之間相關(guān)系數(shù)(帶顯著水平)
source("panelutils.R") # 如果腳本不在當(dāng)前工作目錄下伐弹,需要給出訪問路徑
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 相關(guān)矩陣")
par(op)
#請辨認(rèn)與變量"das"相關(guān)的環(huán)境變量。這些圖能夠告訴你什么信息呢榨为?
# 環(huán)境變量之間的Kendall秩相關(guān)
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)
#通過這些雙變量關(guān)系圖,你更傾向于用Kendall秩相關(guān)還是Pearson線性相關(guān)昧狮?