正态性检验的P值非常小,尽管直方图呈现正态分布

3
我已经查看了Scipy Stats中scipy.stats.mstats.normaltestscipy.stats.shapiro的正态性检验,看起来它们都假定零假设是给定数据是正态分布的。
也就是说,小于0.05的p值表示它们不是正态分布。
我正在使用SKLearn中的LassoCV进行回归,为了得到更好的结果,我对答案进行了对数转换,这样得到的直方图如下:

Histogram of data

我觉得看起来很正常。然而,当我通过上述两个测试之一运行数据时,我得到非常小的p值,这表明数据不正常,而且程度很大。
当我使用scipy.stats.shapiro时,我得到了这个结果。
scipy.stats.shapiro(y)
Out[69]: (0.9919402003288269, 3.8889791653673456e-07)

当我运行scipy.stats.mstats.normaltest时,我得到了这个结果:
scipy.stats.mstats.normaltest(y)
NormaltestResult(statistic=25.755128535282189, pvalue=2.5547293546709236e-06)

我觉得很难以置信,我的数据在直方图上显示出如此远离正态分布。
这种差异是由于某些原因引起的吗,还是我没有正确解释结果?

4
你是否有大量的数据点?即使分布“看起来正常”,如果有许多观察结果,那么分布与正态分布之间的细微差别也会被发现。尝试对直方图的y轴进行对数缩放,可能该分布在峰值附近非常匹配正态分布,但在翼部不匹配。 - undefined
4
P-P图常用于可视化样本与某种理论分布的偏差程度。您可以使用scipy.stats.probplot函数来生成P-P图。 - undefined
3
对我来说看起来很正常。 :) 对我来说它看起来有正偏态。只凭肉眼观察分布的正态性可能不太可靠。@AngusWilliams的评论很重要:你有多少数据点? - undefined
在这种情况下,您可以使用偏度和峰度来代替正态性检验。例如,请参阅此处的“统计分析”部分:http://journal.frontiersin.org/article/10.3389/fpsyg.2015.00653/full - undefined
@AngusWilliams - 1460个数据点。我实际上对数据进行了对数转换,以使其更适合用于回归分析。 - undefined
显示剩余2条评论
2个回答

0
如果你运行这个n次并取p值的平均,你将得到你期望的结果。以蒙特卡洛方式在循环中运行它。

0

如果垂直轴上的数字是各类别的观察次数,那么样本大小约为1500。对于如此大的样本量,拟合优度检验很少有用。但是,你的数据是否真的需要完全服从正态分布呢?如果你想用统计方法分析数据,这种方法在正态分布假设的("小")偏差下可能是鲁棒的吗? 实际上,问题通常是"正态分布假设是否适用于我的统计分析"。完美的正态分布非常罕见。 关于直方图的额外评论:解释直方图数据时必须小心,因为数据是否"看起来正态"可能取决于直方图类别的宽度。直方图只是一些应该谨慎对待的提示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接