You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vegan包绘制RDA排序图时scaling参数的工作原理是什么

问题核心原因

你没有观察到描述符向量夹角差异,本质是两个认知和操作疏漏,和scaling参数本身的逻辑无关:

  • 你提前调用envfit()拟合环境向量时没有指定scaling参数,默认采用scaling=2计算向量坐标,后续在scaling=1的排序图上直接叠加这个预先生成的fit对象,相当于把缩放规则不匹配的向量硬贴到坐标系上,两次绘图实际用的环境向量得分都是scaling=2的版本,自然看不出夹角差异。
  • 你绘图时没有强制横纵轴等比例,vegan默认绘图会根据窗口尺寸拉伸坐标轴,哪怕向量坐标有差异,视觉上的夹角也会被拉伸变形,无法准确反映真实角度关系。
  • 你对夹角规则的记忆漏了前提:向量夹角反映变量相关性的结论,仅在scaling=2、且坐标轴等比例展示的前提下成立,不存在跨scaling通用的角度解读规则。另外你代码中rda(varespec)没有传入约束矩阵,本质是对群落数据做PCA,scaling规则和普通PCA完全一致。

vegan中scaling参数的运行逻辑

vegan内所有排序方法(rda/cca/pca等)的scaling,本质是对样方得分、物种/变量得分分配不同权重的特征值缩放,两种常用scaling的核心差异是优化的解读目标不同:

  • scaling = 1(距离双标图/样方缩放):特征值权重全部分配给样方得分,样方点之间的欧氏距离近似对应样方间的实际群落差异。这时候物种/环境向量没有做单位长度规范化,向量长度反映变量对排序结果的解释量,向量之间的夹角不具备相关性解读意义,不能靠夹角近就判定两个变量正相关。
  • scaling = 2(相关双标图/物种缩放):特征值权重全部分配给物种/变量得分,所有物种/环境向量被缩放到近似单位长度,两个向量夹角的余弦值近似等于变量间的线性相关系数——夹角越小正相关越强,90度代表不相关,180度代表负相关。这时候样方点之间的距离不能直接解读为群落差异。

补充:vegan还提供scaling=3的对称缩放模式,特征值权重平均分配给样方和物种得分,仅适合做整体展示,不适合精细解读样方距离或变量相关性。

代码修正方案

修正两个疏漏即可观察到明确的scaling差异:一是每次绘图前用对应scaling参数重新拟合envfit结果,二是绘图时加asp=1强制横纵轴等比例,避免视觉变形。修正后的代码如下:

library("vegan")
data(varespec)
data(varechem)

ord <- rda(varespec)
set.seed(1)
status <- factor(rep(c("Class1","Class2"), times = nrow(varespec) / 2))
colvec <-  c("red","green")

# 绘制scaling=1排序图
scl <- 1
plot(ord, type = "n", scaling = scl, main="Scaling 1", asp=1)
points(ord, display = "sites", col = colvec[status], pch = (1:2)[status], scaling = scl)
points(ord, display = "species", pch = "+", scaling = scl)
fit1 <- envfit(ord, varechem, perm = 999, scaling = scl)
plot(fit1, add = TRUE, col = "black")

# 绘制scaling=2排序图
dev.new()
scl <- 2
plot(ord, type = "n", scaling = scl, main="Scaling 2", asp=1)
points(ord, display = "sites", col = colvec[status], pch = (1:2)[status], scaling = scl)
points(ord, display = "species", pch = "+", scaling = scl)
fit2 <- envfit(ord, varechem, perm = 999, scaling = scl)
plot(fit2, add = TRUE, col = "black")

修正后的可观测差异

  • 向量长度差异:scaling=1的图中,解释方差越高的环境变量向量越长,不同变量的长度差异非常明显;scaling=2的图中所有环境向量被统一缩放,长度差异极小。
  • 向量夹角差异:scaling=2的图中可以直接通过夹角判断相关性,比如Ca和Mg的夹角很小,对应原始数据中两者的高正相关性;scaling=1的图中这两个变量的夹角会明显变大,无法直接对应相关系数。

内容的提问来源于stack exchange,提问作者another_rando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 20:39:18