Spark(Python)中的Kolmogorov-Smirnov测试不起作用?

2024-09-19 23:44:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pythonsparkml中做了一个正态性测试,发现了一个bug。在

这是设置,我有一个标准化的数据集(范围-1到1)。在

当我做直方图时,我可以清楚地看到数据不正常:

>>> prices_norm.histogram(10)

([-1.0, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0],
 [226, 269, 119, 95, 52, 26, 8, 2, 2, 5])

当我运行Kolmgorov-Smirnov测试时,我得到以下结果:

^{pr2}$

Kolmgorov-Smirnov检验将零假设(H0)定义为:数据遵循一个指定的分布http://www.itl.nist.gov/div898/handbook/eda/section3/eda35g.htm)。在

在这种情况下,p值非常低,所以我们应该拒绝零假设。这是有道理的,因为这显然是不正常的。在

那么,为什么它会说:

Sample follows theoretical distribution

这不是不对吗?它不应该说样本不遵循理论分布吗?我错过什么了吗?在


Tags: 数据httpnorm定义www直方图bughistogram
1条回答
网友
1楼 · 发布于 2024-09-19 23:44:04

这让我抓狂,所以我直接去看源代码:

git://git.apache.org/spark.git
spark/mllib/src/main/scala/org/apache/spark/mllib/stat/test/KolmogorovSmirnovTest.scala

代码正确,空假设设为:

^{pr2}$

字符串消息的措辞只是重申了空假设

Very strong presumption against null hypothesis: Sample follows theoretical distribution.
                                                 ________________________________________
                                                                    H0

可以说,这句话令人费解,因为它可能是两种解释。但这确实是正确的。在

相关问题 更多 >