R语言检验数据正态分布


提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能正态图、正态性检验、P-P图/Q-Q图


一、正态分布

正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),这里不赘述了。
在这里插入图片描述
在这里插入图片描述

二、正态分布检验

1.概率密度曲线比较法

很直观,如果一种生物它看起来像鸭子,走起来像鸭子,叫起来像鸭子,那它就是鸭子。如果一套数据看着像正态分布,那它就是呈正态分布。

# iris 数据集
data(iris)
# hist/lines画概率密度曲线
hist(iris$Sepal.Length,prob=T, ylim=c(0,0.5), 
     main = "Density plot of sepal length")
xfit<-seq(min(iris$Sepal.Length),max(iris$Sepal.Length),length=20)
yfit<-dnorm(xfit,mean(iris$Sepal.Length),sd(iris$Sepal.Length))
lines(xfit,yfit,col="red",lwd=2)
#密度估计曲线
lines(density(iris$Sepal.Length),col="blue",lwd=2) 

在这里插入图片描述

library("ggpubr")
ggdensity(iris$Sepal.Length,
          main = "Density plot of sepal length",
          xlab = "sepal length",,col="blue",lwd=2)

在这里插入图片描述

2.Q-Q 图

Quantile-Quantile Plot,(Q-Q图/分位数图)绘制给定样本与正态分布之间的相关性, 并以y=x作为参考线。若数据集中的点大致落在该参考线时,我们可以假定数据呈正态分布。

#Q-Q图画法
qqnorm(iris$Sepal.Length,main="Normal Q-Q Plot",col = "blue")
qqline(iris$Sepal.Length, col = "red")

在这里插入图片描述

# ggpubr 画得漂亮一些
library(ggpubr)
ggqqplot(iris$Sepal.Length,color = "blue",main="Normal Q-Q Plot")

在这里插入图片描述

3.夏皮罗-威尔克(Shapiro-Wilk)检验法

R函数shapiro.test()可用于对一个变量(单变量)执行Shapiro-Wilk正态性检验。注意:Shapiro-Wilk test 一般适用于小样本量(50 < n < 100) 的正态性检验。

> shapiro.test(iris$Sepal.Length)

	Shapiro-Wilk normality test

data:  iris$Sepal.Length
W = 0.97609, p-value = 0.01018
主要关注输出结果中的p-value,p值<0.05, 意味着数据不太符合正态分布。但是这个样本集有150个样本,且从前视觉判断,数据不存在明显的分布不均匀。即便P值小于0.05,我们选择网开一面,认为数据不存在严重的非正态偏差,认为其符合正太分布。
  • 25
    点赞
  • 183
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是R语言中进行小数据正态分布检验的方法: 1. Shapiro-Wilk检验 Shapiro-Wilk检验是一种常用的小样本正态性检验方法,它的原假设是数据符合正态分布。在R语言中,可以使用shapiro.test()函数进行Shapiro-Wilk检验。例如: ```R # 创建一个小样本数据集 x <- c(1.2, 2.3, 3.4, 4.5, 5.6) # 进行Shapiro-Wilk检验 shapiro.test(x) ``` 输出结果为: ``` Shapiro-Wilk normality test data: x W = 0.94591, p-value = 0.6619 ``` 其中,W为Shapiro-Wilk统计量,p-value为检验的p值。如果p-value小于显著性水平(通常为0.05),则拒绝原假设,即数据不符合正态分布。 2. Anderson-Darling检验 Anderson-Darling检验也是一种小样本正态性检验方法,它的原假设是数据符合某个指定的分布(例如正态分布)。在R语言中,可以使用ad.test()函数进行Anderson-Darling检验。例如: ```R # 创建一个小样本数据集 x <- c(1.2, 2.3, 3.4, 4.5, 5.6) # 进行Anderson-Darling检验 library(nortest) ad.test(x) ``` 输出结果为: ``` Anderson-Darling normality test data: x A = 0.424, p-value = 0.7875 ``` 其中,A为Anderson-Darling统计量,p-value为检验的p值。如果p-value小于显著性水平(通常为0.05),则拒绝原假设,即数据不符合正态分布。 3. Kolmogorov-Smirnov检验 Kolmogorov-Smirnov检验也是一种小样本正态性检验方法,它的原假设是数据符合某个指定的分布(例如正态分布)。在R语言中,可以使用ks.test()函数进行Kolmogorov-Smirnov检验。例如: ```R # 创建一个小样本数据集 x <- c(1.2, 2.3, 3.4, 4.5, 5.6) # 进行Kolmogorov-Smirnov检验 ks.test(x, "pnorm", mean(x), sd(x)) ``` 输出结果为: ``` One-sample Kolmogorov-Smirnov test data: x D = 0.29289, p-value = 0.4642 alternative hypothesis: two-sided ``` 其中,D为Kolmogorov-Smirnov统计量,p-value为检验的p值。如果p-value小于显著性水平(通常为0.05),则拒绝原假设,即数据不符合正态分布

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值