5.22 R语言-正态性检验

news2024/9/23 5:23:21

正态性检验

正态性检验的目的是确定一组数据是否符合正态分布(也称高斯分布)。在统计分析和数据建模中,正态性假设是许多统计方法和模型的基础。了解数据是否符合正态分布有助于选择适当的统计方法和确保分析结果的有效性。

本文主要从概率统计方面来进行正态性检验。即假设检验的角度来说,数据是否服从正态分布可以通过与“数据服从正态分布”这样一个零假设进行假设检验计算,构建相关统计量来计算出检验结果。文中提及的Q-Q Plot是描述性统计方法。

先把这篇好文章放在开头!!!

正态检验 (Normality Test)——常见方法汇总与简述-CSDN博客文章浏览阅读5.5w次,点赞89次,收藏374次。前 言在科学研究中,往往需要对数据进行差异性检验,而常用的参数检验需要数据服从正态分布,因此在决定是否采用参数检验之前需要先对数据进行正态性检验。这一步在任何统计学软件中(如SPSS、SAS、Origion、GraghPad等)都能够轻易实现,但每个软件都会同时包括多种正态检验方法,此时该选哪个方法来对自己的数据进行正态性检验呢?这就是本文要解决的主要问题。在查阅相关资料后,本文将对多种常见的正态检验方法进行简单地归纳总结,尽可能写清楚每个检验方法的适用范围,但对于每个检验方法的数学统计学原理不作深入解_正态检验https://blog.csdn.net/qq_33924470/article/details/114668701

正态性检验的目的

  1. 验证正态性假设

    • 许多统计方法(如 t 检验、ANOVA、回归分析)假设数据来自正态分布。正态性检验可以帮助确认这些假设是否合理。
  2. 指导统计方法的选择

    • 如果数据符合正态分布,可以使用参数统计方法,这些方法在正态性假设下更有效。
    • 如果数据不符合正态分布,应该使用非参数统计方法,这些方法不依赖于正态性假设。
  3. 识别数据特征

    • 正态性检验可以揭示数据的分布特征,如偏态和峰态,这对于数据预处理和特征工程很重要。

正态性检验的意义

  1. 确保分析的准确性

    • 确保使用的统计方法适用于数据,避免因不合理的假设导致错误的结论。
  2. 提高模型性能

    • 符合正态分布的数据在许多机器学习和统计模型中表现更好,正态性检验帮助识别和处理偏离正态分布的数据。
  3. 数据预处理

    • 正态性检验结果可以指导数据变换(如对数变换、平方根变换),使数据更符合正态分布,优化模型性能。

上图中,shapiro.test 函数用于进行Shapiro-Wilk正态性检验,以确定数据是否来自正态分布。使用 shapiro.test 检验了 ide2 数据框中 IDE 为 "VStudio" 的 Time 列,。

示例

shapiro.test(ide2[ide2$IDE == "VStudio",]$Time)

    Shapiro-Wilk normality test

data:  ide2[ide2$IDE == "VStudio", ]$Time
W = 0.84372, p-value = 0.004191

结果解释

  • W 值: Shapiro-Wilk检验的统计量。值接近1表明数据接近正态分布,值较小则表明偏离正态分布。
  • p-value: 用于判断数据是否符合正态分布的显著性水平。
    • 如果 p-value > 0.05,表示无法拒绝原假设,即数据可能来自正态分布。
    • 如果 p-value ≤ 0.05,表示拒绝原假设,即数据显著偏离正态分布

本次的结果中:

  • W = 0.84372: W 值表明数据可能存在偏离正态分布的情况。
  • p-value = 0.004191: p-value 小于 0.05,表示数据显著偏离正态分布。

进一步步骤

  1. 非参数检验:由于数据不符合正态分布,可以考虑使用非参数检验方法,比如 Mann-Whitney U 检验(也称为 Wilcoxon 秩和检验)来比较不同组别的数据。

  2. 数据变换:尝试对数据进行变换(如对数变换或平方根变换)以使其更接近正态分布,然后重新进行正态性检验。

常用的正态性检验方法

  1. Shapiro-Wilk Test

    • 用于小样本数据(n < 50)。
    • 例子:shapiro.test(data)
  2. Kolmogorov-Smirnov Test

    • 用于大样本数据。
    • 例子:ks.test(data, "pnorm", mean=mean(data), sd=sd(data))
  3. Anderson-Darling Test

    • 对尾部更敏感。
    • 需要额外的包,例如 nortest
    • 例子:library(nortest); ad.test(data)
  4. Q-Q Plot (Quantile-Quantile Plot)

    • 通过图形方法直观检查数据是否符合正态分布。
    • 例子:qqnorm(data); qqline(data)

shapiro.test 函数会自动选择合适的方法进行正态性检验(这也太方便了吧)。通常情况下,它会根据数据样本的大小来选择适当的统计方法

在 R 中,shapiro.test 函数主要使用 Shapiro-Wilk 检验来进行正态性检验。Shapiro-Wilk 检验对于样本量较小(一般小于 50)的情况较为适用。对于较大的样本量,该函数可能会使用其他方法,但是这些细节通常是隐藏的,不需要用户来指定。

当调用 shapiro.test 函数时,你只需要提供要进行正态性检验的数据,函数会自动选择适当的方法并返回检验结果,包括统计量和 p 值。

能否指定检验方法呢?

要指定使用特定的检验方法,需要使用其他的正态性检验函数,例如 ad.testlillie.testcvm.test 等。以下是一些常见的正态性检验方法及其相应的函数:

概率统计(假设检验角度):

  1. Shapiro-Wilk Testshapiro.test
  2. Anderson-Darling Testad.test(需要加载额外的包,如 nortest
  3. Lilliefors Testlillie.test(需要加载额外的包,如 nortest
  4. Cramér-von Mises Testcvm.test(需要加载额外的包,如 goftest) 
# 加载 nortest 包
library(nortest)

# 使用 Anderson-Darling 正态性检验
ad.test(data)


# 使用 lillie.test 函数进行 Lilliefors 正态性检验
lillie.test(data)



# 加载 goftest 包
library(goftest)

# 使用 cvm.test 函数进行 Cramér-von Mises 正态性检验
cvm.test(data)

 描述性统计:

m = aov(Time ~ IDE, data=ide2) # fit model
shapiro.test(residuals(m)) # test residuals
qqnorm(residuals(m)); qqline(residuals(m)) # plot residuals

其中aov用于拟合方差分析模型。为了评估方差分析模型(ANOVA)假设的正态性,使用qqnorm和qqline绘制 Q-Q 图。

Q-Q 图(Quantile-Quantile Plot)是一种图形方法,用于比较数据的分布与正态分布。如果数据点大致沿着一条直线分布,则数据可以被认为是正态分布的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1701925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神秘山洞惊现AI绘画至宝Stable Diffusion残卷

最近听到不少大宗门纷纷发声&#xff1a;随着AI神器的现世“程序员职业将不复存在”&#xff0c;“设计师将要失业”。 至此&#xff0c;不少修士开始担忧起来&#xff0c;现出世的AI神器会不会取代掉我辈修士。 其实&#xff0c;至女娲天神创造人类以来&#xff0c;在这漫漫…

RabbitMQ 交换机类型

常用交换机 发布订阅&#xff08;Publish/Subscribe&#xff09;交换机 一个生产者给多个队列发送消息&#xff0c;X 代表交换机。 交换机的作用&#xff1a;类似网络路由器&#xff0c;主要提供转发功能&#xff0c;解决怎么把消息转发到不同的队列中&#xff0c;让消费者从不…

基于Java+MySQL+Swing的学生管理系统

1.系统简介和开发背景 该同学工作积极主动、高效&#xff0c;学习认真&#xff0c;待人诚恳&#xff0c;能够做到服从指挥、认真听取老同志的指导&#xff0c;不怕苦、不怕累&#xff0c;表现有较强的求知欲&#xff0c;积极观察、体验、思考&#xff0c;并能够灵活运用自己的知…

Web安全技术期末考查-vulhub靶场搭建及漏洞复现

一、实验目的与要求 能根据报告找到难度适中的漏洞&#xff0c;搭建弱点环境&#xff0c;并验证该漏洞&#xff1b; 2.能给出该漏洞的修复建议。 二、实验原理与内容 漏洞原理 漏洞原理通常指的是计算机系统、软件、网络或其他技术系统中存在的安全缺陷&#xff0c;这些缺陷…

rapidssl泛域名https600元一年

泛域名https证书也可以称之为通配符https证书&#xff0c;指的是可以用一张https证书为多个网站(主域名以及主域名下的所有子域名网站)传输数据加密&#xff0c;并且提供身份认证服务的数字证书产品。RapidSSL旗下的泛域名https证书性价比高&#xff0c;申请速度快&#xff0c;…

浅谈JMeter体系结构

JMeter体系结构详解 JMeter是一款功能强大的开源性能测试工具&#xff0c;广泛应用于Web应用、数据库、FTP服务器等多种场景下的负载和压力测试。其灵活的体系结构设计使得测试计划的创建、执行与结果分析变得高效而直观。本文将深入解析JMeter的三维空间体系结构&#xff0c;…

SSE(Server Sent Event) 踩坑留念

整条链路是 客户端A --> 服务端 A —> 服务端 B 我负责服务端 A 此时要注意 Client 中的 processes 的写法 Post(value “/v2/xx”, processes MediaType.TEXT_EVENT_STREAM) 这样写是一直报错的 改成下面的写法才可以 Post(value “/v2/xx”, processes MediaT…

HTTP 协议的基本格式和Fidder的简单使用

HTTP协议诞生于1996&#xff08;开玩笑哈&#xff0c;诞生于1991年&#xff09;&#xff0c;http协议用于网页和手机app和服务器交互的场景。通过HTTP协议&#xff0c;客户端&#xff08;例如网页浏览器或手机应用&#xff09;可以向服务器发送请求&#xff0c;服务器则会响应这…

10个最佳人物素材网站推荐,免费获取第一个PNG文件!

人物素材是设计中应用最广泛的元素之一。无论是网页设计还是移动终端设计&#xff0c;人物素材的插画设计都比文字信息更容易吸引用户的注意力。作为内容呈现&#xff0c;还可以增加设计的艺术属性。为了节省大家寻找人物素材的时间成本&#xff0c;本文立即为大家整理了10个宝…

数据结构的直接插入排序(C语言版)

一.直接插入排序的基本概念 1.直接插入排序的基本思想 将数组分为已排序和未排序两部分。 每次从未排序部分取出一个元素,将其插入到已排序部分的合适位置,使得已排序部分保持有序。 重复步骤2,直到整个数组有序。 2.排序的工作原理 假设前 i-1 个元素已经有序,现在要将第…

【Django】开发个人博客系统【1】

使用Django开发个人博客系统&#xff0c;博客系统包括用户&#xff08;博主&#xff09;注册和登录、博主资料信息、图片墙功能、留言板功能、文章列表、文章正文内容和Admin后台系统。 1. 项目架构设计 下一步将上述设置写入Django的配置文件settings.py&#xff0c;当Django…

利用C#中WinForm设计一个小游戏:DoYouLoveMe???

目录 一、WinForm 二、功能实现 三、代码部分 一、WinForm Windows 窗体是用于生成 Windows 桌面应用的 UI 框架。 它提供了一种基于 Visual Studio 中提供的可视化设计器创建桌面应用的高效方法。 利用视觉对象控件的拖放放置等功能&#xff0c;可以轻松生成桌面应用。 使…

适合大学生低成本创业的又一个项目推荐(宿舍小卖部)

​ 大学生的时间是非常充裕的&#xff0c;这也导致了大学生非常的懒惰&#xff0c;每天除了娱乐&#xff08;打游戏&#xff0c;针对大部分人&#xff09;&#xff0c;也没有其它爱好了&#xff0c;就连吃饭都要抽时间来吃&#xff0c;所以这就给同学在宿舍做点小生意带来了机会…

如何在忘记密码的情况下解锁 iPhone? 6 种方法分享

您是否因为没有密码而无法解锁您的 iPhone&#xff1f; 别担心&#xff0c;这种情况比你想象的更常见&#xff01;忘记密码是 iPhone 用户面临的最常见问题之一&#xff0c;而且可能非常令人沮丧 - 但不要绝望。 在这篇文章中&#xff0c;我们将与您分享绕过 iPhone 屏幕密码…

保时捷经销商造反,都怪小米SU7们?

文 | Auto芯球 作者 | 雷慢 造反啦&#xff0c;保时捷的经销售造反啦&#xff0c; 现在时候买合资进口豪车&#xff0c;估计亏得爹妈都不认得了&#xff0c; 放在三年前&#xff0c;打死我也不敢相信豪华车会有今天这样的闹剧&#xff0c; 这两天&#xff0c;保时捷中国的…

Moto和Inter字节序

inter: 低地址按照start_bit位放低字节依次往高字节填充 MotoLsb: 低地址按照start_bit位放高字节&#xff0c;依次往低字节填充MotoMsb&#xff1a;高字节按照start_bit位放低地址&#xff0c;依次往高字节填充

【机器学习】Python中的决策树算法探索

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Python中的决策树算法探索引言1. 决策树基础理论1.1 算法概述1.2 构建过程 2. P…

软件3班20240527

JDK 版本与 Tomcat 的 兼容性

谷歌忙于手动删除自己搜索引擎中奇怪的人工智能答案

该公司确认正在“迅速采取行动”消除人工智能工具的一些奇怪反应。 社交媒体上充斥着谷歌新的人工智能概述产品的例子&#xff0c;这些产品说了一些奇怪的话&#xff0c;从告诉用户在披萨上涂胶水到建议他们吃石头。混乱的推出意味着&#xff0c;随着各种表情包的发布&#xf…

bootstrap实现天平效果

之前提到了&#xff0c;最近&#xff0c;孩子的幼儿园让家长体验“半日助教活动”&#xff0c;每个家长需要讲授15-20分钟的课程。作为一名程序员&#xff0c;实在没有能教的课程&#xff0c;只能做了一个小游戏&#xff0c;带着小朋友们熟悉数字。 在上一章博客中&#xff0c…