R|不同方法的正态性检验及R语言实现

统计学中的t检验法和F检验法的应用条件是样本都来自正态总体或近似正态总体,只有符合这个条件,才能用它们来检验各样本所属的总体参数的差异显著性。


一、非参数检验

1、Kolmogorov-Smirnov正态性检验(单样本)
检验单一样本是否来自某一特定分布。比如检验一组数据是否为正态分布。它的检验方法是以样本数据的累积频数分布与特定理论分布比较,若两者间的差距很小,则推论该样本取自某特定分布族。即对于假设检验问题:

H0:样本所来自的总体分布服从某特定分布

H1:样本所来自的总体分布不服从某特定分布
R|不同方法的正态性检验及R语言实现
文章图片


Fn(X)表示一组随机样本的累计概率函数,F0(X)表示分布的分布函数。

当原假设为真时,D的值应较小,若过大,则怀疑原假设,从而,拒绝域为
对于给定的R|不同方法的正态性检验及R语言实现
文章图片
又,R|不同方法的正态性检验及R语言实现
文章图片

R实现: 1.1 ks.test()

> x <- rnorm(3000) > ks.test(x,"pnorm") One-sample Kolmogorov-Smirnov testdata:x D = 0.0077, p-value = https://www.it610.com/article/0.9943 alternative hypothesis: two-sided


若不是正态分布函数的检验,只需要将"pnorm"改成相应地分布函数
当已知分布函数时,如:
> ks.test(x,"pnorm",mean(x),sd(x)) One-sample Kolmogorov-Smirnov testdata:x D = 0.0087, p-value = https://www.it610.com/article/0.9768 alternative hypothesis: two-sided


若出现错误或警报,可能是由于:

Warning message:
In ks.test(X, "pnorm", 2.488715,3.012176) :
ties should not be present for the Kolmogorov-Smirnov test
#若已知可能的分布函数
#样本数据中存在有相同的值,单样本K-S检验要求检验分布是连续的,而连续分布出现相同值的概率为0.如果是出现相同的,则连续分布的假设不成立,则该方法无法使用
1.2 nortest包里的lillie.test()可以实行更精确的Kolmogorov-Smirnov检验
> library(nortest) > lillie.test(x) Lilliefors (Kolmogorov-Smirnov) normality testdata:x D = 0.0087, p-value = https://www.it610.com/article/0.8408

可以发现此方法的结果和ks.test的第二种方法的结果是一样的
1.3 fBasics包里的normaltest()和ksnormtest()

> ksnormTest(x)Title: One-sample Kolmogorov-Smirnov testTest Results: STATISTIC: D: 0.0077 P VALUE: Alternative Two-Sided: 0.9943 AlternativeLess: 0.7946 AlternativeGreater: 0.7012 Description: Tue Jan 13 21:24:19 2015 by user:





#建议:大样本、已知总体均数和标准差,选择非参数检验-单样本KS检验号。。但对于样本大小,有说大于50、500、5000的,各有所不同的理解。

2、Shapiro-Wilk(W检验)
统计量为:
【R|不同方法的正态性检验及R语言实现】R|不同方法的正态性检验及R语言实现
文章图片



当原假设为真时,W的值应接近于1,若值过小,则怀疑原假设,从而拒绝域为R:W 在给定的水平下P{w R实现: 2.1 shapiro.test()实现

> shapiro.test(x) Shapiro-Wilk normality testdata:x W = 0.9997, p-value = https://www.it610.com/article/0.9494

在R中,shpiro.test()函数限制为3-5000个样本之间
2.2 fBasics包里的shapiroTest()

> shapiroTest(x)Title: Shapiro - Wilk Normality TestTest Results: STATISTIC: W: 0.9997 P VALUE: 0.9494



二、图示法
Q-Q图:以样本的分位数作为横坐标,以按照正态分布计算的相应分位点作为纵坐标,把样本表现为直角坐标系的散点。如果数据服从正态分布,则样本点应围绕第一象限的对角线分布。
w <- c(75.0, 64.0, 47.4, 66.9, 62.2, 62.2, 58.7, 63.5,
66.6, 64.0, 57.0, 69.0, 56.9, 50.0, 72.0)
qqnorm(w); qqline(w)

R|不同方法的正态性检验及R语言实现
文章图片


可以发现:基本上呈正态分布。




    推荐阅读