统计推断与作图|第2期. 统计分析前必不可少的正态性检验

文摘   教育   2024-11-15 19:58   北京  
BE声明学写文章②



往期回顾

  REVIEWS  


1)统计推断与作图|第1期. 还在为统计学苦恼人儿看过来!


在统计分析中,许多统计推断方法都假设数据符合正态分布(如t检验,方差分析),那么应如何判断数据是否为正态分布呢?这就需要用到正态性检验,本期我们将并附上代码进行讲解,话不多说,我们一起来看看吧!


MASCU

统计推断与作图




01

常用方法简介


正态性检验的方法主要包括显著性检验和图示法。

常见显著性检验法有Shapiro-Wilk检验Kolmogorov-Smirnov检验Anderson-Darling检验偏度-峰度检验(D'Agostino's K-squared 检验),这些检验可给出相应P值,据此判断数据偏离正态分布的程度。

常用图示法包括QQ图,直方图,箱型图等,顾名思义,图示法的优点是直观,但由于需对图形进行主观判断,可能存在误判情况。因此,将两种方法结合使用可以更加准确地判断数据是否符合正态分布,接下来我们将结合常见的显著性检验方法及相应的图示法进行说明。






02

Shapiro-Wilk检验及QQ图


Shapiro-Wilk检验适用范围:小样本数据(一般少于2000个样本)。


R代码:

# 生成样本数据set.seed(100)data <- rnorm(1000)  # 正态分布的数据
# Shapiro-Wilk 检验shapiro_test <- shapiro.test(data)shapiro_test
# 绘制QQ图qqnorm(data)qqline(data, col = "red") # 添加辅助线


结果:



结果解读:可看到本例中Shapiro-Wilk检验P=0.9765,小于0.05,故不能拒绝原假设,认为数据符合正态分布QQ图(Quantile-Quantile Plot)将数据的分位数与理论正态分布的分位数对比。本例中数据点接近一条对角直线,则表明数据可能符合正态分布。





03

Kolmogorov-Smirnov检验及直方图


Kolmogorov-Smirnov(K-S)检验是一种非参数检验,由于其敏感性较低,在小样本下效果不佳,因此适用于较大样本

R代码:

# 生成样本数据set.seed(100)data <- rnorm(20000)  # 正态分布的数据
# Kolmogorov-Smirnov 检验ks_test <- ks.test(data, "pnorm", mean(data), sd(data))ks_test
# 绘制直方图hist(data, probability = TRUE, main = "Histogram with Normal Curve")curve(dnorm(x, mean = mean(data), sd = sd(data)), add = TRUE, col = "red")


结果:



结果解读
:可看到本例中Kolmogorov-Smirnov检验P=0.8863,小于0.05,故不能拒绝原假设,认为数据符合正态分布。直方图可以显示数据的频率分布形状,本例直方图呈对称的钟形,则表明数据可能符合正态分布。





04

Anderson-Darling检验+密度曲线图


Anderson-Darling 检验对数据的尾部更敏感,适合检测非对称分布或长尾分布的数据。


R代码:

# 安装并加载必要的包install.packages("nortest")library(nortest)
# 生成样本数据data <- rnorm(1000) # 正态分布的数据
# Anderson-Darling 检验ad_test <- ad.test(data)ad_test
# 绘制密度曲线图plot(density(data), main = "Density Plot with Normal Curve")curve(dnorm(x, mean = mean(data), sd = sd(data)), add = TRUE, col = "red")


结果:



结果解读:
可看到本例中P=0.5684,小于0.05,故不能拒绝原假设,认为数据符合正态分布。密度曲线图可以显示数据的分布密度,通过将样本密度曲线(黑色)与正态分布密度曲线叠加对比,观察两者是否相似来判断数据的正态性。





05

偏度-峰度检验


偏度-峰度检验检验(D’Agostino’s K-squared检验)通过计算偏度和峰度来判断数据的正态性,适合大样本


R代码:

# 安装并加载必要的包install.packages("moments")library(moments)
# 生成样本数据data <- rnorm(10000) # 正态分布的数据
# D'Agostino's K-squared 检验k2_test <- agostino.test(data)k2_test
# 绘制箱线图boxplot(data, main = "Boxplot of Data")


结果:



结果解读:可看到本例中P=0.9487,小于0.05,故不能拒绝原假设,认为数据符合正态分布。skew反映数据分布的对称性:若 skew 值接近 0,表示分布接近对称;若 skew 为正,说明分布右偏(长尾在右侧);若 skew 为负,说明分布左偏(长尾在左侧)。箱线图主要用于观察数据的对称性和异常值,本例箱线图对称,且没有明显的异常值,则表明数据可能符合正态分布。



今天的分享到这里就结束啦,你学会了吗?大家对于推送内容有任何问题或建议可以在公众号菜单栏“更多--读者的话” 栏目中提出,我们会尽快回复!


期待已久~临床科研交流群来啦!


(欢迎大家入群交流~若群满,请添加下方微信,备注:“进临床科研与统计_互助交流群” )







写在最后


“观科研”(点击进一步了解我们吧)是由一群北京协和医学院(清华大学医学部)的博士开创的公众号,初心是让医学科研有迹可循,帮助一线的医学科研人员更快地成长,希望大家支持与关注!

如果大家对分享医学科研知识感兴趣,特别欢迎加入我们,期待与您的相遇相识相知,也非常欢迎大家自主投稿,如果您有需要分享的内容或对我们有任何建议,可通过后台留言、
公众号菜单栏
“更多—读者的话”栏目进一步了解)或发送邮件至mascu_forever@163.com与我们交流并留下个人联系方式,我们会及时与您联系。

如果您觉得我们长期的干货推送对您的科研工作有所帮助,可以在合适的机会致谢(包括但不限于SCI论文、毕业论文等),格式如下:
 The authors thank the support of Skill Learning from Kaixin Doctor and MASCU (Medical Association with Science, Creativity, and Unity), Inc, Shenzhen, China (mascu_forever@163.com).


【大家的支持,是我们持续更新的动力!】


Pay attention!
微信公众号的推送规则发生改变(不再按照时间顺序来显示),如果没有将“观科研”设置为星标,你就可能错失里面的精彩推送。


点击“在看”,可参与讨论哦!

图文:奇观

审核:美观

编辑:云观

编审:静观


观科研
让医学科研有迹可循
 最新文章