正文开始
稍微熟悉统计学的人都知道,许多统计方法只有在变量服从正态分布时才能表现最佳。比如我们经常使用的参数检验,方差分析,线性回归分析等。所以在做统计分析时检验变量的正态性是很多建模和统计分析过程的必备步骤。
那么通常有哪些方法可以用来检测数据的正态性呢?检测出数据不符合正态分布,又该如何对数据进行变换以使其满足正态分布的要求呢?
我们带着这两个问题,且看我通过案例的形式让你掌握数据的正态性检验和非正态数据变换的魔幻技能~
首先,下图直观展示了以上两个问题的解决方案。
接着我们以案例的形式来说明这两个问题。
首先我们载入数据集,并对这个数据集中的数值型变量elcap绘制茎叶图,直方图和Q-Q图,完成这些任务的代码如下:
这是得到的茎叶图,发现数据呈现出一种偏态分布,并且有一个极大异常值。
得到的直方图也似乎显示出数据的非正态性。
分位-正态Q-Q显示出,数据中存在一个明显异常值,且数据呈现出一定的偏态分布。
以上是图形检验的结果,图形的好处是直观,坏处就是,看完三个图,我们还是没有绝对的把握说这个数据不是正态分布。那接着我们来做统计显著性检验。
看一下结果,统计检验结果为:p
那么数据不满足正态分布,我们就需要对数据进行转换,希望变换后的数据符合正态分布。
惊喜的发现,转换后的两个变量都是符合正态分布的,如果最终要建模,我们可以选择p值更大,转换效果更好的对数转换后的变量进行建模。
只能进行这两种转换吗?显然不是,这里只是列出了两种常见的转换方式。我们可以使用很多函数进行转换。stata非常友好的提供了三个非常好用的集成命令,可以一次自动输出多种转换后的变量的正态分布检验结果。
第一个命令输出多种转换后的统计检验结果,只要是P(chi2) 大于0.05,其对应的转换后的变量都是正态分布的变量。这里有平方根(square root) ,对数(log), 平方根倒数(1/(square root)),选择其中P值最大的对数转换,参与下一步建模。
第二个命令输出转换后的直方图,通过直方图,我们也可以观察到,对数转换和平方根转换效果较好。但是图形还是没有上面直接看P值来的直接。还有一种Q-Q图,我这里就不展示了。
对任何数据,你都可以尝试使用Box-Cox转换,使用如下命令进行这种转换:
对转换后的变量进行检验,这里只输出统计检验结果,Box-Cox转换不出所料,其转换效果是最好的(P值最大)。
OK,本文系统向大家介绍了如何检查数据的正态性,以及如何将非正态数据转换为正态数据。如果本文内容对您有帮助,请帮我分享,转发,点赞或赞赏。
领取专属 10元无门槛券
私享最新 技术干货