科尔莫哥洛夫分布

机器算法验证 r 分布 kolmogorov-smirnov 测试
2022-04-02 11:01:36

R 中是否有用于 Kolmogorov 分布的包,它允许我绘制密度、分布、计算分位数等?

Kolmogorov 分布来自K=sup|B|,其中B是布朗桥。它的值通常是表格的,所以我认为它在 R 中有自己的功能,就像正态分布一样。

似乎ks.test()将此用于cdf:

 pkolmogorov1x <- function(x, n) {
                  if (x <= 0) 
                    return(0)
                  if (x >= 1) 
                    return(1)
                  j <- seq.int(from = 0, to = floor(n * (1 - 
                    x)))
                  1 - x * sum(exp(lchoose(n, j) + (n - j) * log(1 - 
                    x - j/n) + (j - 1) * log(x + j/n)))
                }
2个回答

显示的函数实现了单侧 KS 统计量的 CDF

Dn+=supx{F^n(x)F(x)},

其中是理论(连续)CDF,是大小为的样本的经验 CDF 。因此,在问题中显示了一个 CDF:F(x)F^n(x)nDn+

FDn+(x)=1xj=0n(1x)(nj)(jn+x)j1(1xjn)nj

资料来源:Simard 和 L'Ecuyer (2011)

两侧 KS 统计量

Dn=supx|F^n(x)F(x)|

没有这么简单的表达。它可以使用 Durbin 矩阵精确计算——前面提到的 Marsaglia、Tsang 和 Wang 提供了这样的实现,但是对于大的 ,它的计算成本非常高,而且它还可能在某些输入上产生s (Simard 和 L'Ecuyer,2011)Simard 和 L'Ecuyer 给出了的组合选择不同的方法来提供精确和高效的实现。他们发布了 C 代码,但没有发布 R 包。我正在努力在 Fortran 中实现他们的方法并提高 Durbin 矩阵方法的效率(来自Carvalho,2015 年)。我将添加R接口。nNaNDnnx

如果您正在寻找作为的有限分布,您可以使用 Wikipedia 中的系列——它收敛得很快。此外,维基百科文章给出了 Vrbik 的更正,以使该系列适用于适中的值。nDnnn

维基百科链接中提供了 Kolmogorov-Smirnov CDF 的表达式:

http://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test#Kolmogorov_distribution

科尔莫哥洛夫分布

Kolmogorov 分布是随机变量 其中是布朗桥。的累积分布函数K=supt[0,1]|B(t)|B(t)KPr(Kx)=12k=1(1)k1e2k2x2=2πxk=1e(2k1)2π2/(8x2).

请注意,此分布作为渐近结果出现,在同一链接中进行了详细说明。