你如何重新调整变量并测量从 CCA 坐标到纯素质心的距离?

How do you rescale variables and measure distance from CCA coordinate to centroid in vegan?

我是生物信息学实验室的新生,有什么不对的地方欢迎指正。

我使用 R 中的素食包和以下脚本制作了一个 CCA:

cca.analysis <- cca(mod ~ genus1 + genus2 + genus3, data)

我目前正在尝试测量每个变量(属)的分数/贡献,以便我可以确定哪个对我的数据集中的社区变异影响最大。我有两个问题:

  1. 你如何重新调整每个属的贡献,而不考虑它与其他属的相对频率?例如,与属 3 相比,属 1 的丰度很高,这意味着它将为分析贡献更多的变异。
  2. 您会使用程序包中的什么脚本或函数来测量与质心的距离以找出属对变异的贡献?

编辑:我做了一个可重现的例子,以帮助提供一些关于这个问题的见解。这是属数据:

║ genus_1 ║ genus_2 ║ genus_3 ║ ║ 15.635 ║ 10.293 ║ 0 ║ ║ 9.7813 ║ 9.0061 ║ 5.4298 ║ ║ 15.896 ║ 2.5612 ║ 3.4335 ║ ║ 4.0054 ║ 0 ║ 2.0043 ║ ║ 15.929 ║ 16.213 ║ 0 ║ ║ 11.072 ║ 15.434 ║ 0 ║ ║ 12.539 ║ 7.2498 ║ 0 ║ ║ 9.1164 ║ 11.526 ║ 2.1649 ║ ║ 4.5011 ║ 0 ║ 0 ║ ║ 11.66 ║ 13.46 ║ 5.1416 ║

我提供的公式中的mod部分对应于我从PCoA分析中提取的以下数据:

║ Coord_1 ║ Coord_2 ║ Coord_3 ║ Coord_4 ║ Coord_5 ║ Coord_6 ║ Coord_7 ║ ║ 0.954 ║ 0.928 ║ 0.952 ║ 1.009 ║ 1.016 ║ 0.943 ║ 1.031 ║ ║ 0.942 ║ 1.088 ║ 1.100 ║ 1.015 ║ 1.080 ║ 1.140 ║ 1.002 ║ ║ 0.932 ║ 0.989 ║ 1.005 ║ 0.974 ║ 0.990 ║ 1.047 ║ 1.035 ║ ║ 0.929 ║ 1.111 ║ 1.094 ║ 0.847 ║ 0.932 ║ 0.940 ║ 1.016 ║ ║ 0.947 ║ 1.008 ║ 0.937 ║ 1.055 ║ 1.056 ║ 0.964 ║ 1.022 ║ ║ 0.948 ║ 1.054 ║ 0.987 ║ 1.018 ║ 1.017 ║ 0.965 ║ 0.994 ║ ║ 0.946 ║ 1.023 ║ 0.911 ║ 1.014 ║ 1.062 ║ 1.076 ║ 1.063 ║ ║ 1.041 ║ 1.000 ║ 0.945 ║ 0.872 ║ 1.036 ║ 0.907 ║ 1.029 ║ ║ 0.926 ║ 1.107 ║ 1.027 ║ 0.943 ║ 0.993 ║ 1.006 ║ 0.947 ║ ║ 1.038 ║ 1.016 ║ 1.008 ║ 1.013 ║ 0.997 ║ 0.891 ║ 0.988 ║

你可以在 R 中用函数 plot 绘制它,希望得到这样的结果: CCA plot

实际上,约束变量的缩放(genus1 等)不会影响它们对模型的贡献。您可以通过将您的约束之一乘以某个数字(比如 10)并比较生成的模型并查看它们没有改变来验证这一点。会改变的是约束的回归系数,但这里没有兴趣(回归系数会改变以抵消乘法的影响)。

重点是:"contribution"是什么意思?如果您指的是这些约束中的每一个 "explains" 占数据总变异的多少,您可以从 anova(cca.analysis, by = "terms")anova(cca.analysis, by = "margin") 中获取此信息。第一个分析将是已解释变异的顺序分解,其中分量加起来达到解释的 100%,而后一个分析将分解为唯一项,其中分量加起来不等于 100%。最多三个组件(属),您还可以使用 varpart 函数(对于带有参数 chisquare = TRUEcca:为此您需要最新的 vegan release) 将总的解释变异分解为独特的和联合的贡献。

如果 "contribution" 有其他含义,请解释。