Python 中正态性检验中 p 值的解释

Interpretation of p-value in normality tests in Python

我正在对我的数据进行正态性检验。总的来说,我希望数据大致正常(足够正常),由原始值的直方图和 QQplot 支持。 我已经执行了 Kolmogorov-Smirnov 和 Shapiro-Wilk 测试,这就是我感到困惑的地方。我的 p 值几乎为 0。 Kolmogorov-Smirnov 统计量=0.78,p 值=0.0 Shapiro-Wilk 统计量 = 0.99,p 值 = 1.2e-05 这会让我相信我应该拒绝原假设。 我本来打算假设这是因为我的均值和标准差分别不同于 KS 测试假设的 0 和 1,正如 here 所解释的,但后来偶然发现了 plotly 中关于正态性测试的教程,对于这两个测试,低 p 值显然支持零假设! plotly tutorial on normality tests 执行测试的方式是否有任何改变?还是教程页面上的错误?

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

因此我认为这是一个错误。在这两个例子中,没有差异的原假设应该被拒绝,因为 p-values 似乎小于 0.05 并且检验统计量大于它们各自的临界值。

我刚刚从 Tutorial 下载了数据集并用 R 玩了一下。我同意你们两个的观点,他们的结论在 Shapiro 和 KS 测试中都是错误的。

另外,做KS测试,不能只用"norm"来建议分布,还需要参数值。实际上,ks.test(x,"pnorm", mean(x),sd(x)) 会给您 p-value 0.0475。这比他们声称的“0.0”p-value 更有意义,因为 non-parametric 测试比 p-value.

上的参数测试更不严格

同时为数据集添加直方图和 qqplot。