|
基于R语言,计算加权距离矩阵笔记。
目的:由RDA分析提取的site constraints (linear combinations of constraining vari ables),即res$constraints代表多元多响应变量线性回归中解释变量(样地环境特征)的综合特征。其中,不同site坐标在RDA坐标系中的距离代表样地的环境差异。由于RDA分析中不同轴的解释率不同,因此希望对计算不同site点间的加权距离,希望将其权重定为RDA轴的解释率。目前尚未发现能直接计算加权距离矩阵的函数。因此,尝试编写代码求解样地环境差异加权距离矩阵。
第一步为对site的不同RDA轴进行加权化的标准化,其中均值为0,标准差为RDA轴的解释率。
对提取site数据标准化的代码如下:
SCALE=function(data,weighted)
{
mean=colMeans(data)
std=apply(data,2,sd)
std=std/weighted
data=sweep(data, 2, mean, "-")
data=sweep(data, 2, std, "/")
data
}
其中data为提取的RDA坐标,weighted为各轴的解释率。
> head(data)
RDA1 RDA2 RDA3
m_community 1 -0.02876383 -0.35888114 0.2252142
m_community 2 -0.02587618 -0.38090768 0.2768470
m_community 3 0.27743429 -0.09692506 -0.1683682
m_community 4 0.04411840 -0.20860643 0.4829977
m_community 5 0.19173017 -0.16320394 -0.1542278
m_community 6 0.02652928 -0.30372496 0.2929600
> weighted=c(0.8417,0.11086,0.030853)
> datanew=SCALE(data,weighted)
> head(datanew)
RDA1 RDA2 RDA3
m_community 1 -0.07507587 -0.12337348 0.02154713
m_community 2 -0.06753887 -0.13094560 0.02648705
m_community 3 0.72412538 -0.03332017 -0.01610845
m_community 4 0.11515250 -0.07171316 0.04621029
m_community 5 0.50043087 -0.05610503 -0.01475558
m_community 6 0.06924352 -0.10441230 0.02802864
> mean(datanew[,1]);mean(datanew[,2]);mean(datanew[,3])
[1] 1.009784e-17
[1] -1.117293e-18
[1] -3.236593e-19
> sd(datanew[,1]);sd(datanew[,2]);sd(datanew[,3])
[1] 0.8417
[1] 0.11086
[1] 0.030853
可见,datanew各列的均值均为0,标准差均为权重系数。
第二步,可以dist函数直接计算加权距离矩阵。
> weighted_dist=dist(datanew)
> as.numeric(weighted_dist)
[1] 0.01177057 0.80513985 0.19865522 0.58056089 0.14570389 0.81127876 0.08655048 0.27430481 0.66069172 0.42601553 0.99659995 [12] 1.94251984 0.64908233 0.33898332 1.11769714 2.50578502 1.89894871 0.03634072 1.65364803 1.56430952 1.01148975 0.12087631 [23] 0.72964903 1.04493566 0.20763081 0.51963713 0.90231344 0.59206740 0.39650815 0.37794869 1.52707871 0.54129878 1.96564471 [34] 0.80513985 0.58701764 1.75711204 1.68333798 2.32575574 0.80513985 0.45125615 0.08495093 1.10110254 1.58320440 1.17913552 [45] 1.34737264 0.85294519 0.43015168 1.23289166 1.24404027 0.61413586 0.93973940 0.23915652 0.94350732 1.53857429 0.45972804 [56] 0.01232671 0.62061086 0.41418791 1.66682782 0.37034385 1.07040799 1.28305113 2.02638081 1.48940438 0.55400311 0.88376186 [67] 1.80096292 0.91664061 1.17647072 0.32093938 0.83746039 0.52734790 0.51092094 0.14208277 0.31726692 0.12621993 0.80509052 [78] 0.51451400 0.65083680 1.79645599 1.04918946 0.63091898 0.84309214 0.91368741 0.54250771 1.25531650 0.45093511 0.39903206 [89] 0.09286885 0.85891043 0.23444885 0.59020233 0.30701671 0.54831470 0.67432991 0.48021998 0.95785953 0.27450006 1.70479621 [100] 0.86127558
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-20 03:04
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社