如果两个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
由于
答案 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.