5.22 R语言-正态性检验

正态性检验

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

本文主要从概率统计方面来进行正态性检验。即假设检验的角度来说,数据是否服从正态分布可以通过与“数据服从正态分布”这样一个零假设进行假设检验计算,构建相关统计量来计算出检验结果。文中提及的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 testdata:  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.mzph.cn/pingmian/16645.shtml

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

相关文章

执法行动高压下,勒索软件攻击仍持续增加

执法行动 最近几年&#xff0c;随着网络犯罪特别是勒索软件犯罪的日益猖獗&#xff0c;勒索软件攻击已经对网络空间安全构成重大威胁。互联网不是法外之地&#xff0c;执法机构也对应加强了执法力度&#xff0c;对全球威胁重大的网络犯罪团伙进行重点打击。对勒索软件团伙所控…

golang、laravel对接stripe海外支付接口的总结和流程(通俗易懂)

目录 stripe是什么&#xff1f; 环境 配置后台 首先让管理员把你设置成为开发者 然后进入后台 然后你要创建产品&#xff0c;开单周期要写每天&#xff0c;我这里理解成每天都会有人买的 获取产品id 获取密钥&#xff0c;后续代码需要用到 支付代码 唤起支付页面 测…

甘肃省大学生志愿服务西部计划报名流程及免冠证件照处理

在甘肃省&#xff0c;大学生志愿服务西部计划是一项旨在鼓励和引导大学生参与西部地区社会服务与发展的重要项目。随着2024年报名季的到来&#xff0c;许多有志青年正准备投身这一有意义的事业。本文将详细介绍报名流程&#xff0c;并提供免冠证件照的处理技巧&#xff0c;帮助…

设计模式11——代理模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 代理模式&#xff08;Proxy&am…

每日AIGC最新进展(12):在舞蹈视频生成中将节拍与视觉相融合、Text-to-3D综述、通过内容感知形状调整进行 3D 形状增强

Diffusion Models专栏文章汇总&#xff1a;入门与实战 Dance Any Beat: Blending Beats with Visuals in Dance Video Generation https://DabFusion.github.io 本文提出了一种名为DabFusion的新型舞蹈视频生成模型&#xff0c;该模型能够根据给定的静态图像和音乐直接生成舞蹈…

免费 OSS 资源 Backblaze B2 使用最新指南

免费的对象存储资源日渐枯竭&#xff0c;Backblaze 是为数不多仍提供免费 OSS 的良心厂商。另外一个则是大名鼎鼎的 Cloudflare R2。虽然免费&#xff0c;但 Backblaze 也修改了政策&#xff1a;如果不验证信用卡的话是不能打开 Public 选项的&#xff0c;或者支付一美金。估计…

24.5.26(树链剖分板子,二分+线段树)

星期一&#xff1a; 补重庆科技 C 二分 牛客传送门 思路&#xff1a;二维前缀和表示到第 i个人第 j个弹巢开了多少发&#xff0c;和st【i】表示第 i个人开的是第几个弹巢 对于 l和r的查询&#xff0c;使用前缀和二分找出第一个…

【UE5.1 角色练习】06-角色发射火球-part1

前言 在上一篇&#xff08;【UE5.1 角色练习】05-火球发射物-CSDN博客&#xff09;基础上实现角色可以发射火球的技能 效果 步骤 一、准备 1. 打开角色蓝图&#xff0c;添加两个浮点型变量&#xff0c;分别表示当前的MP值和满状态的MP值 添加一个函数&#xff0c;这里命名…

解密 Alpha 勒索软件

Alpha 勒索软件很容易与 ALPHV 勒索软件混淆&#xff0c;但其实这是两个不同的勒索软件团伙。近期&#xff0c;Alpha 勒索软件团伙在暗网上建立了数据披露网站&#xff0c;并且对外公开了6个受害者。 通常来说&#xff0c;勒索软件运营者在启动数据披露网站前会保持攻击态势。一…

c++ 实现 梯度下降线性回归模型

理论与python实现部分 3.1. 线性回归 — 动手学深度学习 2.0.0 documentation c代码 没能力实现反向传播求梯度&#xff0c;只能自己手动算导数了 #include <bits/stdc.h> #include <time.h> using namespace std;//y_hat X * W b // linreg 函数&#xff1a…

无经验求职者的福音:AI生成简历的便捷之道

第一步你需要先给自己写个简历&#xff0c;简历就是你求职时的一张脸&#xff0c;“漂亮”程度与否那可大了去了。一份漂亮的简历不仅内容满满当当突出重点&#xff0c;而且排版清晰亮眼&#xff0c;能让hr一下子捕捉到重点。 来看看一份漂亮的简历长啥样↓ 工作经历、个人能力…

Go语言

Go语言 Go语言全称Golanguage&#xff0c;Go&#xff08;又称 Golang&#xff09;是 Google 的 Robert Griesemer&#xff0c;Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译并发型语言。于2009年首次发布 官网 特点 简单易学&#xff1a;Go语言语法简洁明了&#x…

【C++】Vector的简易模拟与探索

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

04Django项目基本运行逻辑及模板资源套用

对应视频链接点击直达 Django项目用户管理及模板资源 对应视频链接点击直达1.基本运行逻辑Django的基本运行路线&#xff1a;视图views.py中的 纯操作、数据返回、页面渲染 2.模版套用1.寻找一个好的模版2.模板部署--修改适配联动 OVER&#xff0c;不会有人不会吧不会的加Q1394…

Java 类加载过程和双亲委派模型

Java 类加载过程概述 在 Java 中&#xff0c;类装载器把一个类装入 Java 虚拟机中&#xff0c;要经过三个步骤来完成&#xff1a;装载、链接和初始化&#xff0c;其中链接又可以分成校验、准备、解析 Java类加载过程分为如下步骤&#xff1a; 1.装载&#xff08; 加载&#xf…

Python编程-后端开发之Django5应用请求处理与模板基础

Python编程-后端开发之Django5应用请求处理与模板基础 最近写项目&#xff0c;刚好用到了Django&#xff0c;现在差不多闲下来&#xff0c;个人觉得单体项目来讲django确实舒服&#xff0c;故写此总结 模板语法了解即可&#xff0c;用到了再看&#xff0c;毕竟分离已经是主流操…

LeetCode300:最长递增子序列

题目描述 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的 子序列 代码…

react 函数组件 开发模式默认被渲染两次

这是 React 刻意为之&#xff0c;函数式组件应当遵从函数式编程风格&#xff0c;每次执行应该是无副作用的(no sideEffect)&#xff0c;在 dev 下多次渲染组件&#xff0c;是为了防止开发者写出有问题的代码。 用 React 写函数组件&#xff0c;如何避免重复渲染&#xff1f; -…

Java学习【面向对象综合练习——实现图书管理系统】

Java学习【面向对象综合练习——实现图书管理系统】 前期效果图书的创建用户的创建操作的实现完善操作显示图书查找图书新增图书借阅图书归还图书删除图书 前期效果 用户分为普通用户和管理员&#xff0c;登录进系统之后可以对图书进行一系列操作&#xff0c;此时我们要明白&am…

斐讯N1刷OpenWRT并安装内网穿透服务实现远程管理旁路由

文章目录 前言1. 制作刷机固件U盘1.1 制作刷机U盘需要准备以下软件&#xff1a;1.2 制作步骤 2. N1盒子降级与U盘启动2.1 N1盒子降级2.2 N1盒子U盘启动设置2.3 使用U盘刷入OpenWRT2.4 OpenWRT后台IP地址修改2.5 设置旁路由&无线上网 3. 安装cpolar内网穿透3.1 下载公钥3.2 …