首页 > 代码库 > R语言之正态性检验

R语言之正态性检验

数据的正态性是很多统计方法的基础,因此正态性检验也是必不可少的,下面介绍使用R进行正态性检验的几种方法
1.Shaprio-Wilk检验
用于比较样本数据与正态分布是否存在显著不同,使用Shapiro.test()函数实现,格式为Shapiro.test(data),要求data为向量格式。

2.Kolmogorov-Smirnov检验
该检验用于比较两种分布是否相同,或者将样本与某已知分布进行比较,可以使用ks.test()函数实现,格式为ks.test(x,y...),其中x是想检验的向量,y是与x对比的向量或者为某分布感受,如qmorm(),格式也要求为向量格式。

3.QQ图
也称为分位数-分位数图,如果两个分布相同,则产生的数据点会落在一条直线上,可以使用qqplot()函数实现两个分布或向量的对比,如qqplot(rpois(50,5),rnorm(50,5,1)),qqplot(data2,data1)。
在此,我们需要添加一条直线方便我们判断,使用abline()函数可以完成,但是该函数需要指定直线的斜率和截距,因此我们需要进行一些计算,如:

> qqp<-qqplot(data2,rnorm(50,5,2))
> abline(lm(qqp$x~qqp$y))
首先在使用qqplot()的时候,返回的结果中包含了x和y值,我们将其命名为qqp,以便随后使用lm()函数提取这两个值拟合线性模型得到斜率和截距,以此作为abline的参数。

此外,还有一个qqnorm()函数专门用来和正态分布作对比,并且有专门的qqline()函数做对比直线。

R语言之正态性检验