我已经查看了scipy.stats.mstats.normaltest以及scipy.stats.shapiro的scipy统计数据中的正态性测试,看起来他们都假设零假设是他们所依据的数据给定是正常的。
即,小于.05的p值表示它们不正常。
我在SKLearn中使用LassoCV进行回归,并且为了给自己更好的结果,我记录了对答案的转换,这给出了如下所示的直方图:
对我来说很正常。
但是,当我通过上面提到的两个测试中的任何一个运行数据时,我得到非常小的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)
对我而言,我的数据会因为它的直方图而远离常态,这似乎不可信。
是否有导致这种差异的事情,或者我没有正确解释结果?
答案 0 :(得分:0)
如果垂直轴上的数字是相应类别的观察数量,则样本大小约为1500.对于如此大的样本大小,拟合优度测试很少有用。但是,您的数据是否真的必须正常分布?如果您想用统计方法分析数据,这种方法在正常分布假设(“小”)偏差下是否可能是稳健的? 在实践中,我的统计分析通常是“正态分布假设是否可接受”。完美的正态分布非常简单。 关于直方图的附加注释:必须通过解释直方图中的数据来小心,因为如果数据“看起来正常”或不相关可能取决于直方图类的宽度。直方图只是应该谨慎对待的提示。
答案 1 :(得分:0)
如果运行n次并取p值的平均值,则将获得期望的结果。以Monte Carlo方式循环运行它。