仅使用一个数据集在R中使用RDA

时间:2015-07-31 15:27:33

标签: r statistics rda

这可能是一个愚蠢的问题,但我被告知要在R中进行冗余分析(使用包素食)来测试我数据中不同组之间的差异。但是我只有一个数据集(大致与Iris数据集(https://en.wikipedia.org/wiki/Iris_flower_data_set)相当),我在RDA上找到的所有内容似乎都需要两个匹配集。我是否误解或误解了,还是有其他事情发生在这里?

1 个答案:

答案 0 :(得分:1)

就基础统计而言,您有两个数据矩阵;

  1. iris数据集中的四个形态变量
  2. 单个分类预测变量或约束
  3. 素食主义者中使用rda()iris示例数据:

    library("vegan")
    iris.d <- iris[, 1:4]
    ord <- rda(iris.d ~ Species, data = iris)
    ord
    
    set.seed(1)
    anova(ord)
    

    置换测试,测试物种之间的差异。

    > anova(ord)
    Permutation test for rda under reduced model
    Permutation: free
    Number of permutations: 999
    
    Model: rda(formula = iris.d ~ Species, data = iris)
              Df Variance      F Pr(>F)    
    Model      2   3.9736 487.33  0.001 ***
    Residual 147   0.5993                  
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    

    你也可以看一下adonis(),它应该和RDA做同样的事情,但是从不同的角度来看:

    > adonis(iris.d ~ Species, data = iris)
    
    Call:
    adonis(formula = iris.d ~ Species, data = iris) 
    
    Permutation: free
    Number of permutations: 999
    
    Terms added sequentially (first to last)
    
               Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
    Species     2   2.31730 1.15865  532.74 0.87876  0.001 ***
    Residuals 147   0.31971 0.00217         0.12124           
    Total     149   2.63701                 1.00000           
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    

    (出于某种原因,这种情况要慢得多......)

    另请参阅betadisper(),因为您可能会使用这些方法检测均值(质心)的差异,这可能至少部分是由于差异(离差)的差异。