通过R包zetadiv可以方便的计算zeta多样性,及其距离衰减规律。
代码语言:javascript复制#安装
install.packages("Zetadiv")
library(zetadiv)
?Zeta.decline.mc
#Zeta.decline.mc: 蒙特卡罗抽样方法计算zeta多样性随阶数的下降
Zeta.decline.mc(
data.spec, ##行为样本,列为物种。发生率数据
xy = NULL, ##样本坐标
orders = 1:10, ##zeta的阶数,即计算的样点量
sam = 1000, ##对于每个群落或样点计算的样本数
confint.level = 0.95, ##回归的置信区间
rescale = FALSE, ##是否除以z1进行标准化
normalize = FALSE, ##Sorensen或Jaccard标准化
empty.row = "empty", ##空值的处理
plot = TRUE ##是否画图
)
##例子
utils::data(bird.spec.coarse)
xy.bird <- bird.spec.coarse[,1:2]
data.spec.bird <- bird.spec.coarse[,3:193]
dev.new(width = 12, height = 4)
zeta.bird <- Zeta.decline.mc(data.spec.bird, xy.bird, orders = 1:5, sam = 100,
NON = TRUE)
zeta.bird
#结果
$zeta.order #阶数
[1] 1 2 3 4 5
$combinations ##样本各种可能的组合情况
[1] 123 7503 302621 9078630 216071394
$zeta.val ##不同阶数的zeta多样性
[1] 92.44715 85.67000 77.11000 73.61000 71.66000
$zeta.val.sd ####不同阶数的zeta多样性的标准偏差
[1] 19.69822 16.76218 15.59778 15.26857 14.43846
$ratio ##每一阶zata和前一阶的比率
[1] 0.9266916 0.9000817 0.9546103 0.9735090
$zeta.exp ##拟合指数分布
Call:
stats::lm(formula = zeta.val.log ~ c(orders), na.action = stats::na.omit)
Coefficients:
(Intercept) c(orders)
1.98775 -0.02871
$zeta.exp.confint
2.5 % 97.5 %
(Intercept) 1.94815483 2.02733909
c(orders) -0.04065002 -0.01677507
$zeta.pl ##拟合幂律分布
Call:
stats::lm(formula = zeta.val.log ~ log10(c(orders)), na.action = stats::na.omit)
Coefficients:
(Intercept) log10(c(orders))
1.9709 -0.1667
$zeta.pl.confint
2.5 % 97.5 %
(Intercept) 1.9479434 1.993877
log10(c(orders)) -0.2141466 -0.119162
$aic ##两种分布的AIC值。结果表明幂律分布拟合的更好一些。
df AIC
zeta$zeta.exp 3 -26.70904
zeta$zeta.pl 3 -30.35525
#zeta.ddecay,计算zeta的距离衰减
Zeta.ddecay(
xy, ##行为样本,列为坐标。
data.spec, ##行为样本,列为物种。
order = 2, ##阶数
sam = 1000, ##计算的样本数
distance.type = "Euclidean", ##距离计算方法
method = "mean", #3个地点以上时如何计算距离,可选mean或max
reg.type = "glm" #回归模型
)
#例子
utils::data(Marion.species)
xy.marion <- Marion.species[,1:2]
data.spec.marion <- Marion.species[,3:33]
dev.new()
zeta.ddecay.marion <- Zeta.ddecay(xy.marion, data.spec.marion, sam = 100, order = 3,
method.glm = "glm.fit2", confint.level = 0.95, trsf = "log", normalize = "Jaccard")
此外该包还有一下功能: zeta.varpart 通过距离和环境变量对zeta多样性进行分解。结果包含a(仅由距离来解释的变化),b(由距离或环境来解释的变化),c(仅由环境来解释的变化)和d(无法解释的变化)。
Predict.msgdm 对于新的环境和距离数据,预测其zeta值。