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之间`

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

请添加图片描述

### 多元正态分布检验概述 在统计学中,多元正态分布是一种重要的概率分布模型。为了验证一组多维数据是否服从多元正态分布,可以使用多种方法和技术来完成此任务。以下是几种常见的多元正态性检验方法及其具体实现方式。 #### 基于Shapiro-Wilk扩展的Mardia检验 一种常用的方法是基于Shapiro-Wilk检验的扩展版本——Mardia检验。该方法通过计算偏度和峰度来进行多元正态性的评估[^1]。其核心思想在于检测样本是否存在显著偏离理论上的零均值和单位协方差矩阵的情况。 ```R library(mvnormtest) # 构造一个随机生成的数据集作为例子 set.seed(123) data <- matrix(rnorm(50 * 3), ncol = 3) # 执行Mardia's Shapiro-Wilk多元正态性检验 result <- mshapiro.test(data) print(result$p.value) # 输出p-value用于判断是否拒绝原假设 ``` 如果得到的结果显示`p-value`大于设定的显著水平(通常是0.05),则无法拒绝数据来自多元正态分布的假设;反之,则认为数据不满足多元正态条件。 #### 使用MVN包中的综合测试工具 另一个强大的解决方案来自于专门设计用来处理此类问题的软件库—即R语言环境下的`MVN`包。它提供了更为全面的功能集合,不仅限于单一指标测量,还包括图形化展示手段以便更直观理解结果。 ```R install.packages("MVN") # 如果尚未安装的话先运行这一步骤 library(MVN) # 对之前创建好的"data"对象再次调用新的函数进行分析 mvn_result <- mvn(data, multivariateOutlierMethod = "none") summary(mvn_result) # 查看详细的统计摘要信息 plot(mvn_result) # 可视化辅助决策过程 ``` 上述代码片段展示了如何利用`MVN`包快速简便地实施一系列复杂的运算操作,并最终得出结论关于输入数据集是否呈现典型的多元高斯特性。 #### SPSS平台下的一般流程说明 对于那些偏好图形界面而非编程脚本的研究人员来说,在SPSS这样的专用统计应用程序里也可以轻松达成同样的目标[^2]。虽然SPSS本身并不直接支持完整的多元正态性检查功能,但是可以通过一些间接途径近似达到目的: - 首先分别针对每一个单独维度做单变量层面的标准Kolmogorov-Smirnov或者Anderson-Darling等类型的拟合优度测验; - 接着考察两两之间可能存在的线性关系强度以及残差结构特征; - 最后再结合专业知识背景综合评判整体情况。 尽管这种方法相对耗时费力些,但对于初学者而言不失为一条可行之路。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值