样本中不同值之间的一致性

时间:2014-02-10 13:35:58

标签: r statistics

我想测试每个抽样网站中不同分数之间的一致性。这些分数用五种不同的方法计算,以测量物种多样性(http://en.wikipedia.org/wiki/Diversity_index)。例如,如果索引" a"的值如果指数b,c,d和e的值也高吗?通过这种方式,我想计算每个采样点内的一致性。

你们应该建议任何方法来测试这种一致性吗?我试图计算每个站点内的变异系数,但它对我没有意义,因为它们在不同的尺度上有所不同。我提供了下面数据集的示例。

提前谢谢。

样本数据

df <- data.frame(a=rnorm(11, 5, 2), 
                 b=rnorm(11, 1, 1), 
                 c=rnorm(11, 2, 1), 
                 d=rnorm(11, 0, 1), 
                 e=rnorm(11, 3, 2))
rownames(df) <- paste("site", 1:11, sep="")
df

1 个答案:

答案 0 :(得分:0)

分类树会自动优化您的同余索引。 R中的rpart包提供了Gini索引和信息索引(我认为它与熵索引相同)。您需要堆叠数据(在此处使用reshape2包)。在这个例子中,我假设您试图通过数字观察和站点位置对species进行分类。

此外,如果你有一点R的统计数据启发问题,你可以随意尝试https://stats.stackexchange.com/

require(rpart)
require(reshape2)
df$site = rownames(df)
stackDF = melt(df, variable.name="species", value.name="observation")
str(stackDF)
classTree <- rpart(species ~ observation + site,data=stackDF, parms=list(split="gini"))
# classTree <- rpart(species ~ site + observation,data=stackDF, parms=list(split="information"))
printcp(classTree)
table(actual=stackDF$species, predicted=predict(classTree,type="class"))
plot(classTree,compress=T,uniform=T,branch=0.4,margin=0.1)
text(classTree)

罗兰提出了使用主要成分的好建议。您可以使用pck = princomp(stackDF[,-which(colnames(stackDF)=="species"),drop=F]),然后将树中的公式更改为stackDF$species ~ pck +...。您可以使用printcp检查交叉验证,并使用prune修剪树。

> table(actual=stackDF$species, predicted=predict(classTree,type="class"))
      predicted
actual  a  b  c  d  e
     a 10  1  0  0  0
     b  0  6  3  2  0
     c  0  1  9  1  0
     d  0  3  0  8  0
     e  9  0  0  2  0

当然,示例中的所有分类都没有意义,因为它们是随机的。

enter image description here