Spearman 的相关系数是否可用于比较分布?

机器算法验证 分布 斯皮尔曼罗 配对数据
2022-03-31 18:21:21

我有来自两个不同数据集的分布,我想测量它们的分布(就它们的 bin 频率而言)有多相似。换句话说,我对数据点序列的相关性不感兴趣,而是对它们相对于相似性的分布特性感兴趣。目前我只能观察到眼球的相似性,这还不够。我不想假设因果关系,也不想在这一点上进行预测。所以,我认为相关性是要走的路。

斯皮尔曼的相关系数用于比较非正态数据,由于我对数据中的真实基础分布一无所知,我认为这将是一个节省的赌注。我想知道这个度量是否也可以用来比较分布数据而不是分布中汇总的数据点。这里是 R 中的示例代码,它举例说明了我想要检查的内容:

aNorm <- rnorm(1000000)
bNorm <- rnorm(1000000)
cUni <- runif(1000000)
ha <- hist(aNorm)
hb <- hist(bNorm)
hc <- hist(cUni)
print(ha$counts)
print(hb$counts)
print(hc$counts)
# relatively similar
n <- min(c(NROW(ha$counts),NROW(hb$counts)))
cor.test(ha$counts[1:n], hb$counts[1:n], method="spearman")
# quite different
n <- min(c(NROW(ha$counts),NROW(hc$counts)))
cor.test(ha$counts[1:n], hc$counts[1:n], method="spearman")

这有意义还是我违反了系数的一些假设?

谢谢,R。

3个回答

而是使用Kolmogorov–Smirnov test,这正是您所需要的。R函数ks.test实现了它。

还要检查这个问题

为了测量两个分布的 bin 频率,一个很好的测试是卡方检验。这正是它的设计目的。而且,它甚至是非参数的。分布甚至不必是正态或对称的。它比 Kolmogorov-Smirnov 检验要好得多,后者已知在拟合分布的尾部方面很弱,其中拟合或诊断通常是最重要的。

就捕获实际 bin 频率的相似性而言,Spearman 的相关性不会那么精确。它只会告诉您,您对两个分布的总体观察排名是相似的。相反,在计算卡方检验(可以说是长手)时,您将能够很容易地观察到哪些箱频差最能降低卡方检验的整体 p 值。

另一个很好的测试是 Anderson-Darling 测试。这是诊断两个分布之间的拟合的最佳测试之一。但是,在提供有关特定 bin 频率的信息方面,我怀疑卡方检验可以为您提供更多信息。

Baumgartner-Weiss-Schindler 统计量是 KS 检验的现代替代方案,在某些情况下似乎更强大。几个链接:

  • 一般两样本问题的非参数检验(原始 BWS 论文)
  • M. Neuhauser,“基于 Baumgartner-Weiss-Schindler 统计的精确检验——调查”,统计论文,第 46 卷(2005 年),第 1-30 页。(也许与您的大型样本案例无关......)
  • H. Murakami,“基于修正的 Baumgartner 统计的 K 样本秩检验及其功效比较”,J. Jpn。比较。统计学家。第 19 卷(2006 年),第 1-13 页。
  • M. Neuhauser,“基于改进的 Baumgartner-Weiss-Schindler 统计的单面两样本和趋势检验”,J. 非参数统计,第 13 卷(2001 年)第 729-739 页。

编辑:自从我发布这个答案以来的几年里,我已经在BWStest 包的 R 中实现了 BWS 测试。使用很简单:

require(BWStest)
set.seed(12345)
# under the null:
x <- rnorm(200)
y <- rnorm(200)
hval <- bws_test(x, y)