Kolmogorov-Smirnov 检验:当存在关系时,应用于离散变量的两样本检验的精确 p 值
Posted
技术标签:
【中文标题】Kolmogorov-Smirnov 检验:当存在关系时,应用于离散变量的两样本检验的精确 p 值【英文标题】:Kolmogorov-Smirnov test: exact p-values for a two-sample test applied to a discrete variable when ties exist 【发布时间】:2014-03-13 11:47:42 【问题描述】:我从不同的站点获得了两个样本。我感兴趣的参数是离散的(频率)。我对两个站点都进行了模拟,所以我知道每个站点随机分布的概率。由于我的模拟,我知道我的参数与其平均值的偏差不是正态分布的,所以我进行了参数测试。我检查了单样本 Kolmogorov-Smirnov 样本是否可能来自这些随机分布(示例数据,不是真实的):
sample1 <- rep(1:5, c(25, 12, 12, 0, 1))
rand.prob1 <- c(.51, .28, .111, .08, 0.019)
StepProb1 <- stepfun(0:4, c(0, cumsum(rand.prob1)), right = T)
dgof::ks.test(sample1, StepProb1)
sample2 <- rep(1:5, c(19, 13, 10, 5, 3))
rand.prob2 <- c(.61, .18, .14, .05, 0.02)
StepProb2 <- stepfun(0:4, c(0, cumsum(rand.prob2)), right = T)
dgof::ks.test(sample2, StepProb2)
在下一步中,我想检查两个站点的样本是否可能来自相同的分布。 KS 测试的两个实现(包stats
和dgof
)都会发出警告,因为我的样本有联系:
stats::ks.test(sample1, sample2)
dgof::ks.test(sample1, sample2)
如果我对Dufour and Farhat (2001) 的理解正确,则有一种方法可以通过蒙特卡洛模拟通过平局计算精确的 p 值。如果我正确理解 dgof 包的包描述,它的蒙特卡罗模拟实现仅适用于单样本测试。
所以我的问题是:有没有人知道如何计算 R 中的精确 p 值,以便在存在关联时应用于离散变量的两样本 Kolmogorov-Smirnov 检验?
或者(尽管与 R 没有特别相关):如果没有人知道如何在可容忍的工作量下做到这一点,我会选择未校正的 p 值,因此会谨慎讨论结果。但是 p 值低于 0.0001。我其实并没有过分担心它。但是我知道什么……你认为这是对的还是我在这种情况下犯了一个严重的错误?
提前致谢,感谢您阅读到这里。
【问题讨论】:
看看bootstraped KS Test。 【参考方案1】:如评论中所述,function ks.boot
of package Matching 实现了 Bootstrap Kolmogorov-Smirnov,即使用nboots
参数对任意数量的重新采样进行蒙特卡罗模拟。我认为这会给你你所需要的。
【讨论】:
引导程序将我带入了正确的方向,并且该软件包似乎在社区中得到了很好的接受,因此我将奖励这个答案。 感谢您的赏金。 Bootstrapping 是工具箱中最强大的统计技术之一。我会鼓励大家研究一下。 感谢您的建议。提到的包裹看起来正是我想要的。我肯定也会仔细研究引导程序。【参考方案2】:根本不知道你是否可以在这里申请KS。
Kolmogorov-Smirnov 是 NON 参数检验,仅适用于连续 x 和 y 数据。我猜你的 sample1 和 sample2 不是连续的“足够”。引用?stats::ks.test
如果 y 是数字,则对 x 和 y 的原假设进行两样本检验 从相同的连续分布中提取。
另见:
https://stats.stackexchange.com/questions/1047/is-kolmogorov-smirnov-test-valid-with-discrete-distributions http://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test解决方案:尝试执行卡方拟合优度检验
在R
中,您使用?chisq.test
执行此操作。
例如,理论可以在这里找到:
【讨论】:
Chisq.test 可能不适用,具体取决于数据,如果两个数据集中的离散观测值不相同,因为您需要先构建列联表? @iraserd:不幸的是,这是真的 有点相关,On the statistical treatment of football numbers。以上是关于Kolmogorov-Smirnov 检验:当存在关系时,应用于离散变量的两样本检验的精确 p 值的主要内容,如果未能解决你的问题,请参考以下文章