解释Python中正态性测试中的p值

时间:2017-02-02 16:24:42

标签: python plotly p-value kolmogorov-smirnov

我正在对我的数据进行常态测试。一般来说,我希望数据大致正常(足够正常),由原始值和QQ图的直方图支持。 histogram of data enter image description here我已经完成了Kolmogorov-Smirnov和Shapiro-Wilk测试,这里是我感到困惑的地方。我的p值接近0。 Kolmogorov-Smirnov统计量= 0.78,p值= 0.0 Shapiro-Wilk统计值= 0.99,p值= 1.2e-05 哪会让我相信我应该拒绝零假设。 我将假设这是因为我的平均值和标准偏差不同于0和1分别假设为KS测试,正如here解释的那样,但后来偶然发现了关于正常性测试的教程,对于两个测试,低p值显然支持零假设! plotly tutorial on normality tests 测试的执行方式有什么变化吗?或者是教程页面上的错误?

2 个答案:

答案 0 :(得分:2)

教程中似乎是一个错误。正如他们所说(经典定义),零假设是参考分布和测试分布之间没有显着差异。当p值小于阈值时(当检验统计量大于临界值时),应该拒绝该假设。这也在链接中的相同教程中说明,其中它们提供了有关如何接受或拒绝原假设的更多信息。

因此我认为这是一个错误。在两个例子中,应该拒绝无差异的零假设,因为p值似乎小于0.05并且测试统计大于它们各自的临界值。

答案 1 :(得分:2)

我刚刚下载了Tutorial中的数据集并用R进行了播放。我同意你们两位,他们的结论在Shapiro和KS测试中都是错误的。

此外,通过进行KS测试,您不仅应该使用“规范”来建议分布,还需要参数值。实际上,ks.test(x,"pnorm", mean(x),sd(x))会给你一个0.0475的p值。这比他们声称的“0.0”p值更有意义,因为非参数测试对p值的参数测试不会那么严格。

也为数据集添加直方图和qqplot。 enter image description here

enter image description here