R语言数据统计1——正态性检验

引用

正态性检验之qqplot和ppplot原理及R语言实现
QQ图
KS检验和SW检验的区别
t检验算法及其在R语言中的实现
R语言做正态分布检验
R语言与统计分析

数据统计中的方差分析第一步应该是检查数据,其次做正态性检验。

而正态性检验

  • KS检验(样本量>5000)
  • SW检验(样本量<5000)
  • QQ图

1.QQ图

  • Q-Q图是一种散点图,对应于正态分布的Q-Q图,就是由标准正态分布的分位数为横坐标,样本值为纵 坐标的散点图.
  • 要利用QQ图鉴别样本数据是否近似于正态分布,只需看QQ图上的点是否近似地在一条直线附近,而且该直线的斜率为标准差,截距为均值.
d <- rnorm(1000,mean = 76,sd=7);d
   [1] 63.63068 81.41180 62.65524 58.53152 82.86776 71.45430 83.80898 71.65438 61.58349 78.42920 71.28601 73.50931
  [13] 93.39517 65.07725 70.14370 72.21523 76.18374 80.55893 69.23166 88.16256 67.21181 84.96855 83.66621 62.01507
  //省略
> qqnorm(d)
> qqline(d)

在这里插入图片描述

2.K-S检验

  • 柯尔莫戈洛夫-斯米诺夫检验(Kolmogorov-Smirnov test),简称K-S检验;
  • nortest
    • ad.test是Anderson-Darling正态性检验,;

      cvm.test是Cramer-von Mises正态性检验;

      lillie.test是Lilliefors (Kolmogorov-Smirnov)正态性检验;

      pearson.test是pearson卡方正态性检验;

      sf.test是Shapiro-Francia正态性检验, 用这些检验验证a,b的正态性

  • fBasics
#1
> library(nortest)
> lillie.test(d)

	Lilliefors (Kolmogorov-Smirnov) normality test

data:  d
D = 0.033671, p-value = 0.009551

  • Lilliefor test是K-S检验的修正。在R中使用Lillefor检验,就相当于在SPSS中正态性检验的Kolmogorov-Smirnov的lilliefors的修正值,二者结果是相同的。

  • 需要注意的是,K-S检验只需要K-S检验默认是检验是否符合标准正态分布,所以我们需要先用scale函数对需要检测的数据标准化。

#2
> ks.test(d,"pnorm")

	One-sample Kolmogorov-Smirnov test

data:  d
D = 1, p-value < 2.2e-16
alternative hypothesis: two-sided
> ks.test(scale(d),"pnorm")

	One-sample Kolmogorov-Smirnov test

data:  scale(d)
D = 0.033671, p-value = 0.2069
alternative hypothesis: two-sided
  • D值越小,越接近0,表示样本数据越接近正态分布(D越小越好);P小于显著性水平α(0.05),则拒绝H0(p越大越好

3.S-W检验

  • 夏皮洛-威尔克检验(Shapiro—Wilk test),简称S-W检验。
> shapiro.test(d)

	Shapiro-Wilk normality test

data:  d
W = 0.99736, p-value = 0.1031
  • W接近1,p值大于0.05,所以数据为正态分布

  • 两种正态性检验方法,包括S-W检验和K-S检验。小样本(小于50)时建议使用S-W检验,大样本(大于50)时建议使用K-S检验;此两个检验的原假设为数据正态分布,因而P值>0.05,说明该项具有正态分布特质。 KS检验和SW检验的区别

  • 这里很有误导性,到底样本啥样呢,我1000的样本,用Lilliefor test检验,P<0.05,并没有证明正态,而用S-W,就可以。

R语言做正态分布检验

  • SPSS 规定: 当样本含量3 ≤ n ≤ 5000时, 结果以Shapiro-Wilk为准, 当样本含量n > 5000结果以Kolmogorov-Smirnov为准.

  • 而SAS 规定: 当样本含量n ≤ 2000时, 结果以Shapiro-Wilk为准, 当样本含量n >2000时, 结果以Kolmogorov-Smirnov为准.

  • 写到最后,到底一组数据如何去判断呢?个人倾向于SPSS规定,说句不严谨的话,数据没有异常值,都是好数据,你说呢。

#当我把d取到10000时报错
 > shapiro.test(d)
Error in shapiro.test(d) : 样本大小必需在35000之间`

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

请添加图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值