孔雀测试实施

时间:2017-10-30 12:10:07

标签: r hypothesis-test

如果两个2D分布相同,我想统计比较。因此,我想使用孔雀测试(2D Kolomogorov-Smirnov测试)。从一年开始,有一个名为 Peacock.test 的R套件声称可以做到这一点。

但是这个包的文档很少,即:

“这个包中提供的两个函数:peacock2和peacock3是不言自明的,它们的用法很简单。”

特别是我找不到代表孔雀函数输出的东西(虽然我猜这有点像p值)? 有没有人测试过这个功能,可以告诉我它是什么(以及这个功能是否可靠?)?

用法示例:

x <- matrix(rnorm(12, 0, 1), ncol=2)
y <-  matrix(rnorm(16, 0, 1), ncol=2)
ks <- peacock2(x, y)
ks

由于

2 个答案:

答案 0 :(得分:1)

我不知道它是否可靠,但代码看起来相当简单。

现在坏消息:基于?peacock2,函数给你的是

  

值:

     

测试统计的值

这意味着为您提供p值。 original paper(“天文学中的二维拟合优度检验”, JA Peacock,皇家天文学会月刊通知,1983),给出了蒙特卡罗模拟得出的临界值表和分析近似值。要从测试统计中获取p值,您必须(1)将测试统计D转换为Z统计量(对于双样本测试,第3.5节说Z=sqrt(n1*n2/(n1+n2))*D,前提是n值均为&gt; ; 10),然后建议你可以通过P(>Z)=2*exp(-2*(Z-0.5)^2)来估算它。

如果您打算使用它,我会绝对建议阅读原始论文并仔细检查/推导出来。

答案 1 :(得分:1)

使用 Peacock 检验的另一种解决方案可能是查看 Fasano-Franceschini 检验(1987 年)——一个二维 Kolmogorov-Smirnov (KS) 两样本检验被证明是计算成本较低的版本孔雀测试(1983)。

Fasano-Franceschini 测试最近已作为 R 代码实现。

fasano.franceschini.test 包可以直接从 CRAN 下载。

R 代码实现

https://nesscoder.github.io/fasano.franceschini.test/

R 代码实现手稿/文档

https://arxiv.org/abs/2106.10539

原论文

Fasano, G. and Franceschini, A. 1987, A Multidimensional Version of the Kolmogorov-Smirnov Test.