gpt4 book ai didi

r - Kolmogorov-Smirnov 测试 : exact p-values for a two-sample test applied to a discrete variable when ties exist

转载 作者:行者123 更新时间:2023-12-04 14:45:21 24 4
gpt4 key购买 nike

我从不同的网站得到了两个样本。我感兴趣的参数是离散的(频率)。我对两个站点进行了模拟,因此我知道每个站点的随机分布概率。由于我的模拟,我知道我的参数与其平均值的偏差不是正态分布的,所以我进行了参数测试。我检查了一个样本 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 测试(包 statsdgof )的两个实现都会发出警告,因为我的样本有联系:
stats::ks.test(sample1, sample2)
dgof::ks.test(sample1, sample2)

如果我明白 Dufour and Farhat (2001) 正确,有一种方法可以通过蒙特卡罗模拟打破平局来计算精确的 p 值。如果我正确理解了 dgof 包的包描述,它的 Monte Carlo 模拟实现仅适用于单样本测试。

所以我的问题是:有没有人知道如何计算 R 中的精确 p 值,用于在存在关系时应用于离散变量的两个样本 Kolmogorov-Smirnov 检验?

或者(虽然与 R 没有特别的关系):如果没有人知道如何以可容忍的工作量做到这一点,我会选择未校正的 p 值,因此会谨慎讨论结果。但是 p 值低于 0.0001。我其实并不过分担心它。但是我知道什么......你认为这是正确的还是我在这种情况下犯了一个严重的错误?

提前致谢,我已经很感激你读到这里。

最佳答案

正如评论中提到的,function ks.boot of package Matching实现 Bootstrap Kolmogorov-Smirnov,即使用 nboots 对任意数量的重采样进行蒙特卡罗模拟范围。我认为这会给你你所需要的。

关于r - Kolmogorov-Smirnov 测试 : exact p-values for a two-sample test applied to a discrete variable when ties exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21773893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com