R vegan CCA,确定哪些约束被别名了?

R vegan CCA, determine which constraints were aliased?

我使用 vegan 执行了 CCA,并使用双标箭头绘制。 "ca" 输出告诉我我有 "Some constraints were aliased because they were collinear (redundant)"。我知道这意味着约束被删除了,因为它们是多余的。

ca<-cca(CCA_data[3:4567]~.,data=Meta_data_2)
ca

我也可以列出别名没问题:

alias(ca, names=TRUE,complete=TRUE)

但是,我如何确定哪些约束是别名的或与其他因素共线的。我需要知道哪些因素与哪些因素是多余的,以便我可以重新考虑我的方法。

这再次为我提供了列出的别名,但没有双标图值。虽然这里的第二行给出了双标图值,但是别名的值丢失了...

ca$CCA$alias
ca$CCA$biplot

有关如何从 "ca" 获取该信息的建议会有所帮助。

**更新:

Model :
CCA_data[3:4567] ~ `Assimilatory nitrate reduction, nitrate => ammonia` + 
    `beta-Oxidation` + `beta-Oxidation, acyl-CoA synthesis` + 
    `Citrate cycle (TCA cycle, Krebs cycle)` + `Dissimilatory nitrate reduction, nitrate => ammonia` + 
    `Fatty acid biosynthesis, elongation` + `Fatty acid biosynthesis, elongation, endoplasmic reticulum` + 
    `Fatty acid biosynthesis, elongation, mitochondria` + `Fatty acid biosynthesis, initiation` + 
    `Gluconeogenesis, oxaloacetate => fructose-6P` + `Glycolysis (Embden-Meyerhof pathway), glucose => pyruvate` + 
    `Glyoxylate cycle` + `Nitrate assimilation` + Photorespiration + 
    `Photosystem I` + `Photosystem II` + `Pyruvate oxidation, pyruvate => acetyl-CoA` + 
    `Reductive citrate cycle (Arnon-Buchanan cycle)` + `Reductive pentose phosphate cycle (Calvin cycle)` + 
    `Urea cycle`

Complete :
                                                   `Assimilatory nitrate reduction, nitrate => ammonia`
`Photosystem I`                                      1.23566                                           
`Photosystem II`                                    -0.64830                                           
`Pyruvate oxidation, pyruvate => acetyl-CoA`        -0.40986                                           
`Reductive citrate cycle (Arnon-Buchanan cycle)`    22.01804                                           
`Reductive pentose phosphate cycle (Calvin cycle)`  16.10217                                           
`Urea cycle`                                         1.55773                                           
                                                   `beta-Oxidation`
`Photosystem I`                                      0.24919       
`Photosystem II`                                     1.20864       
`Pyruvate oxidation, pyruvate => acetyl-CoA`        -0.24875       
`Reductive citrate cycle (Arnon-Buchanan cycle)`    -1.84576       
`Reductive pentose phosphate cycle (Calvin cycle)`  -0.74552       
`Urea cycle`                                         5.03302       
                                                   `beta-Oxidation, acyl-CoA synthesis`
`Photosystem I`                                      0.08856                           
`Photosystem II`                                     1.19711                           
`Pyruvate oxidation, pyruvate => acetyl-CoA`         0.39169                           
`Reductive citrate cycle (Arnon-Buchanan cycle)`     0.23713                           
`Reductive pentose phosphate cycle (Calvin cycle)`  -6.34640                           
`Urea cycle`                                        -1.88670                           

^以上已缩短

该信息由 alias 命令提供。这是一个可重现的例子:

library(vegan)
data(dune, dune.env)
m <- rda(dune ~ ., dune.env)
## the following gives the names of aliased variables
alias(m, names=TRUE)
# [1] "Manure^4"
## the following gives the aliasing equation
alias(m)
Complete :
     A1 Moisture.L Moisture.Q Moisture.C ManagementHF ManagementNM ManagementSF Use.L Use.Q Manure.L  Manure.Q  Manure.C 
Manure^4                                              8.366600                              5.291503 -4.472136  2.645751

输出很宽,但它表明当我们有 ManagementNM 时,Manure 的一级完全混叠。通过交叉制表可以很容易地看出更多细节:

with(dune.env, table(Management, Manure))
          Manure
Management 0 1 2 3 4
        BF 0 2 1 0 0
        HF 0 1 2 2 0
        NM 6 0 0 0 0
        SF 0 0 1 2 3

当我们有ManagementNM时,我们只有Manure0,而最后级`粪便会产生别名。