博客

教学 | 正态性检验之描述性分析法(内含大量R语言代码)

众所周知,正态分布是统计学中最重要的分布之一,是许多统计分析方法的理论基础。检验、方差分析、相关和回归分析等多种统计方法均要求分析的指标服从正态分布。

检验正态性的方法可分为图示法、偏度峰度法和非参数检验法,其中前两种为描述性分析法,即通过直观、简洁的方式展示数据分布的特征,从而大致上判断正态性。而非参数检验法是在总体方差未知或知道甚少的情况下,利用样本数据对总体分布形态等进行推断的方法,我们可研究样本数据的顺序和分布的性质来构成理论基础,来研究样本分布与正态分布的差异。

小蟹君今天首先要给大家介绍的是描述性方法,包括各种图示法及验证偏度系数和峰度系数。描述性方法简单、直观地呈现数据的分布特征,即使是统计初学者也能轻松理解哦!

下面让我们来一起来学习下这些方法,以及这些方法在SPSS、SAS和R语言中的实现过程吧!

一、正态性检验的图示方法

首先小蟹君给大家介绍图示方法。用图示方法进行正态性检验,不需要作复杂的运算,简单直观。常见的用于正态性检验的图表有:直方图、P-P图、Q-Q图等。

1、直方图

正态分布的特点是数据呈现对称的钟形分布。因此可直接从数据直方图上大致判断其正态性。也可以画出数据分布的直方图后,可以把它与正态分布密度函数作比较。

2、百分位数图(简称P-P图)

P-P概率图的原理是检验实际累积概率分布与理论累积概率分布是否吻合,若吻合,则散点应围绕在一条直线周围,或者实际概率与理论概率之差分布在对称于以0为水平轴的带内。P-P图已观测样本累积分布概率为横轴,以正态累积分布为纵轴绘制图形。

3、分位数图(简称Q-Q图)

Q-Q概率图的原理是检验实际分位数与理论分位数之差分布是否吻合,若吻合,则散点应围绕在一条直线周围,或者实际分位数与理论分位数之差分布在对称于以0为水平轴的带内。Q-Q概率图以样本的分位数为横轴,以指定理论分布的分位数为纵轴绘制散点图。用Q-Q图还可获得样本偏度和峰度的粗略信息。

4、图示法的适用范围及局限性

图示法相对于其他方法而言,比较直观,方法简单,从图中可以直接判断,无需计算,但这种方法效率不是很高,它所提供的信息只是正态性检验的重要补充。

5、图示法在R语言、SAS、SPSS中的操作

1) SPSS

①直方图的画法:用户需要通过单击按钮从左边原变量中选择一个变量作为分析变量进入"变量"(Variable)列表框中。SPSS自动将分析变量进行频数分析,并根据各个频数分布段绘制直方图。直方图的横轴代表分析变量数据的频数区间,纵轴代表每个区间的频数。

"显示正态曲线"(Display normal curve)复选框:选择该选项,SPSS将在频数分布图中绘制正态分布曲线,以方便用户将数据与正态分布进行比较,判断样本数据是否符合正态分布。

输出如下:

②P-P图画法:选择菜单中的分析-描述统计-P-P图,如下,

选择变量并点击确定后输出如下:

③Q-Q图画法:分析-描述统计-QQ图,如下,

选择变量并点击确定后输出如下:

2)SAS

相关的语句在univariate板块中。在proc univariate语句下加入histgram语句,可以生成直方图,加上normal选项可以在直方图上进一步生成一条正态曲线。在proc univariate语句下加入qqplot语句,可以生成QQ图。

示例如下:

proc univariate data = test normal plot;    

/*这里的normal表示我们的目的是做正态性检验*/

var Example;

histogram Example/ normal; 

 /*这里的normal表示我们在直方图上添加一条正态曲线*/

qqplot Example; 

 /*画Q-Q图*/

run;

运行结果如下,

①包含正态密度曲线的直方图:

Q-Q图:

3)  R语言

以使用rnorm()函数产生的100个来自标准正态分布的随机变量的图像为例,代码如下:

n<-100

a<-rnorm(n) #产生100个正态随机变量

p<-pnorm(a) #求正态分布函数值(正态累积概率)

t<-rank(a)/n #求观察累积概率

q<-qnorm(t) #求分位数值

hist(a,prob=T) #画直方图

curve(dnorm(x),col='red', lwd=3, lty=1, add=T) #在直方图上画正态密度曲线

plot(p,t) #画P-P图

plot(a,q) #画Q-Q图

运行程序,得到结果如下:

①添加了正态密度曲线的直方图:

②P-P图

③Q-Q图

二、正态分布的形态刻画—偏度与峰度

偏度与峰度是描述数据分布形态的统计量。

偏度描述分布的对称性和倾斜程度,峰度描述分布形态的陡缓程度。

正态分布是形态特征是显著的,呈现对称型分布,并且中部现尖峰,两端尾部较为平缓。

下面由小蟹君给大家具体讲解使用偏度与峰度验证正态性的思路与步骤。

1、偏度系数

 

 

2、峰度系数

 

 

3、偏度和峰度检验拟合优度检验的适用范围及局限性:

偏度和峰度检验是描述性统计方法,与前面列举的检验方法相比计算更为简便。

偏度和峰度检验易受异常值的影响,检验功效就会降低。

4、 偏度、峰度计算和检验在R语言、SAS、SPSS中的操作

SPSS和SAS可以输出变量数据的偏度系数和峰度系数,但不能进行假设检验;R语言可以有效实现系数值得计算与假设检验。具体讲解如下:

1)SPSS

SPSS可以输出偏度系数和峰度系数,操作示意图如下,

①菜单—选择频率对话框

②选择统计量,勾选右下方的偏度与峰度

③得到偏度系数与峰度系数的输出值

2)SAS

SAS中同样可计算偏度系数和峰度系数,通过调用means过程实现该功能。示例代码如下:

proc means data = test mean std Skewness Kurtosis Median;

var example;

run;

输出如下,

3)R语言

R语言不仅可以计算峰度系数和偏度系数,还可以基于这两种度量进行假设检验。假设检验利用了D’Agostino提出的正态性检验法计算检验统计量和p值。在R语言中通过加载moments包可以很方便地实现峰度和偏度的假设检验。

进行峰度和偏度检验的函数agostino.test()和anscombe.test()可通过设置“alternative”参数进行单边假设检验或双边假设检验。若不设置,则默认值为“two.sided”,将进行双边假设检验。

函数形式如下:

agostino.test(x, alternative = c("two.sided", "less", "greater"))

以使用rnorm()函数产生的1000个来自标准正态分布的随机变量为例进行偏度检验与峰度检验,代码如下:

library(moments) #加载moments包

set.seed(2014)

x=rnorm(1000)

skewness(x)  #计算偏度

agostino.test(x)  #偏度检验

         D'Agostino skewness test

data:  x

skew = -0.069385, z = -0.901300, p-value = 0.3674

alternative hypothesis: data have a skewness

kurtosis(x)  #计算峰度

anscombe.test(x)  #峰度检验

         Anscombe-Glynn kurtosis test

data:  x

kurt = 2.9351, z = -0.3233, p-value = 0.7465

alternative hypothesis: kurtosis is not equal to 3

由上述输出结果知,偏度检验的p值为0.367,峰度检验的p值为0.747,因此在通常显著性水平下拒绝原假设,认为样本数据不服从正态分布。

三、结语

看完了上述介绍,你是不是对于采用描述性方法检验正态性有了清楚直观地认识了呢?

其实这些方法只是从图像分布的特征出发来判断正态性,还不是最正式、最科学的检验方法哟。

小蟹君偷偷告诉你,统计学家进行正态性检验时可能更会倾向于用非参数检验法,比如W检验、K-S检验法等等。

咦,这些方法是什么意思?

别着急,在下一期推送里小蟹君会详细告诉你基于非参数法进行正态性检验的基本原理和操作方法,

敬请期待哦~~

看完代码还是写不来?

这个统计神奇不得不用,选择变量之后,直方图、Q-Q图直接生成了。

浏览器中输入:www.crabstat.com 即可直接使用的在线统计软件:CrabSTAT易统计。

热评文章

评论:

1 条评论,访客:1 条,博主:0 条
  1. peck82
    peck82发布于: 

    很难,但是很重要,继续学习

发表评论