问题标签 [kolmogorov-smirnov]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2006 浏览

python - 使用 scipy.stats.kstest 的两样本 Kolmogorov-Smirnov 检验

我想使用 scipy.stats.kstest 来测试执行一个两样本的 Kolmogorov-Smirnov,即测试是否有两列(样本)的数据来测试底层的人口分布函数是否不同。kstest 可以做到这一点吗?

我的问题是我只能在文档中找到如何使用 kstest 将给定样本与已知分布(如正态、t 等)进行比较。

0 投票
1 回答
642 浏览

python - 2 KS 测试样本 - 似乎有问题

我正在尝试使用 scipy 的 ks_2samp 函数运行 Kolmogorov-Smirnoff 测试,以确定数据的直方图是否来自同一分布。虽然有时返回的 p 值似乎不太正确......

例如这个直方图:

直方图.jpg

我得到一个大约 0.96 的 p 值返回,这看起来真的不对……我做错了什么吗?这些直方图不应该足够不同以至于 p 值会更低吗?

0 投票
1 回答
1551 浏览

r - 在 Matlab 中执行不善的两样本 Kolmogorov-Smirnov 测试(kstest2)?

我是否遗漏了一些明显的东西,或者 Matlab 给出的pkstest2值很差?在非常差的情况下,我的意思是我怀疑它甚至被错误地执行了。

kstest2说明该函数计算渐近p值的帮助页面,尽管我没有找到任何关于准确使用哪种方法的参考。无论如何,描述进一步指出:

渐近p值对于大样本量变得非常准确,并且被认为对于样本量 n1 和 n2 相当准确,例如 (n1*n2)/(n1 + n2) ≥ 4


示例 1

让我们以 Lehman and D'Abrera (1975) 的示例 6 为例:

(n1*n2)/(n1 + n2) = 4在这种情况下,p值应该是相当准确的。

Matlab 产生p = 0.0497,而书中给出的解决方案是0.0870. 为了验证解决方案,我使用了 R,我比 Matlab 更信任它,尤其是在统计方面。

使用ks.testfrom statspackage 和ks.bootfrom Matchingpackage:

两者都给p = 0.0870


示例 2

让我们使用kstest2自己的示例来比较更大样本量的 Matlab 和 R 结果:

这产生p = 0.0317. 现在,使用相同的x1x2向量 R 给出p = 0.03968。预计非常准确的结果时,大约有 20% 的差异(n1*n2)/(n1 + n2) = 25

我失踪了,搞砸了什么吗?Matlab 的性能是否可能kstest2如示例所示那样糟糕?算法使用的是什么近似值kstest2?(我可以看到 kstest2 的实现代码,但是参考书籍或论文会更好地理解发生了什么。)

我正在使用 Matlab 2016a。


雷曼和达布雷拉 (1975)。非参数:基于等级的统计方法。第 1 版。施普林格。

0 投票
1 回答
380 浏览

python - KS 测试的非标准分布变量?

您能否将 scipy.stats 中的 kstest 用于非标准分布函数(即改变学生 t 的 DOF,或改变 Cauchy 的 gamma)?我的最终目标是找到适合我的分布的最大 p 值和相应参数,但这不是问题。

编辑:

"

scipy.stat 的 cauchy pdf 是:

它意味着x_0 = 0位置参数和伽玛,Y = 1。我实际上需要它看起来像这样

"

Q1) 学生 t 至少可以以某种方式使用吗?

因为它似乎可以选择改变参数?

Q2)如果你需要完整的正态分布方程(需要改变 sigma)和上面写的 Cauchy(需要改变 gamma),你会怎么做?编辑:不是搜索scipy.stats非标准分布,实际上是否可以将我编写的函数输入到 kstest 中以找到 p 值?

谢谢

0 投票
1 回答
3804 浏览

r - R ggplot中的kolmogorov-smirnov图

我正在尝试在 r 中绘制 KS 图,一切似乎都进展顺利——除了我只能使用颜色来可视化两个不同的样本而不是线型。

我尝试了以下方法:

#尝试1

#尝试2

这就是我得到的:

在此处输入图像描述

0 投票
1 回答
206 浏览

r - Kolmogorov-Smirnov 检验,D^- = 1

我需要一些帮助来解释我的 ks.test 输出。我有 28 名参与者,每人掷三个骰子。Vektor g 显示了每人的滚动总数。

我想将 g 与实际分布函数进行比较。我使用以下代码生成“真实”分布函数:

以下 ks.test 产生的 D 为 1,这是不正确的。

你能告诉我我哪里做错了吗?非常感谢您的回答!

0 投票
1 回答
180 浏览

r - Kolmogorov-Smirnov 检验给出的结果不同于 max(abs(difference(x, y)))

ks.test在 r 中使用函数来执行 Kolmogorov-Smirnov 测试。我发现 Kolmogorov-Smirnov 测试给出的结果不同于

根据Wikipedia中 Kolmogorov-Smirnov Test 的定义,结果应该是等价的。

有谁知道为什么?

0 投票
1 回答
663 浏览

r - 拉普拉斯分布 R 的 Kolmogorov-Smirnov 检验

我对 R 中的 ks 函数有疑问。我有一个拉普拉斯分布:

所以,我需要做 ks 测试,但找不到任何关于第二个参数应该在那里的东西,比如:

对于对数正态分布或:

物流配送

谢谢。

0 投票
1 回答
264 浏览

statistics - SAS - Kolmogorov-Smirnov 双边临界值

我正在尝试计算两侧 Kolmogorov-Smirnov 测试的临界值(PROC NPAR1WAY不输出这些值!)。这计算为 c(a) * sqrt( (n+m)/(nm) ) 其中 n 和 m 是每个数据集中的观察数,对于置信度 a = 0.05,c(a) = 1.36。

任何一个,

A)SAS中有一个例程可以为我计算这些吗?(我已经搜索了一段时间)或者,

B)自己计算统计数据的最佳方法是什么?我最初的方法是从每个数据集中选择行数到宏变量中,然后计算统计量,但这感觉很难看。

提前致谢

0 投票
3 回答
4824 浏览

python - 如何计算两个加权样本之间的 Kolmogorov-Smirnov 统计量

假设我们有两个样本data1data2它们各自的权重weight1weight2并且我们想要计算两个加权样本之间的 Kolmogorov-Smirnov 统计量。

我们在 python 中这样做的方式如下:

我们只是根据我们的目的修改在Press, Flannery, Teukolsky, Vetterling - Numerical Recipes in C - Cambridge University Press - 1992 - pag.626中实施的经典双样本 KS 统计量。

我们的问题是:

  • 有人知道其他方法吗?
  • python/R/* 中是否有任何库可以执行它?
  • 测试呢?它是否存在或者我们应该使用重新洗牌程序来评估统计数据?