gpt4 book ai didi

r - 从 KS 检验中找到最大 D 统计量的位置

转载 作者:行者123 更新时间:2023-12-02 08:30:34 25 4
gpt4 key购买 nike

我正在使用 KS 检验比较两个不同的经验累积分布函数,我想提取检验统计量最大值所在的位置(在 ECDF 中)。

问题:使用 R,是否有一种方便的方法来提取它,也许是从 ks.test 函数或其他地方?

感谢所有评论。

最佳答案

您似乎无法从 ks.test 的输出中提取这样的位置(顺便说一句,这可能不是唯一的) , 但通过模拟那里的关键计算,您可以获得答案:

compare <- function(x, y) {
n <- length(x); m <- length(y)
w <- c(x, y)
o <- order(w)
z <- cumsum(ifelse(o <= n, m, -n))
i <- which.max(abs(z))
w[o[i]]
}

通过z <- ...计算来自ks.test源,而最后两行(相当清楚)找到了达到最大偏差的位置。

例如,让我们生成两个数据集并比较它们:

set.seed(17)
x <- rnorm(30)
y <- rnorm(20, sd=2/3)
u <- compare(x,y)

u 的报告值是0.04946235 .要查看这是否正确,请对照 ECDF 和 ks.test 的输出进行检查:

e.x <- ecdf(x)
e.y <- ecdf(y)
abs(e.x(u) - e.y(u))
ks.test(x,y)$statistic

两种情况下的输出都是0.4166667 , 表示完全一致。情况图将阐明正在发生的事情:

plot(e.x, col="Blue", main="ECDF", xlab="Value", ylab="Probability")
plot(e.y, add=TRUE, col="Red")
lines(c(u,u), c(0,1), col="Gray")
lines(c(u,u), c(e.x(u), e.y(u)), lwd=2)

它显示了两个 ECDF 并标记了 compare 找到的位置(即 u )带有一条垂直线:它应该表示两个图达到最大垂直分离的位置。

Figure

关于r - 从 KS 检验中找到最大 D 统计量的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233738/

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