Scipy库提供了多种正态性检验和假设检验方法
Scipy库提供了多种正态性检验和假设检验方法。以下是一些常用的检验方法的列表:
正态性检验方法:
- Shapiro-Wilk检验:
scipy.stats.shapiro
- Anderson-Darling检验:
scipy.stats.anderson
- Kolmogorov-Smirnov检验:
scipy.stats.kstest
- D'Agostino-Pearson检验:
scipy.stats.normaltest
- Lilliefors检验:
scipy.stats.lilliefors
假设检验方法:
- 独立样本t检验:
scipy.stats.ttest_ind
- 配对样本t检验:
scipy.stats.ttest_rel
- 单样本t检验:
scipy.stats.ttest_1samp
- 方差分析 (ANOVA):
scipy.stats.f_oneway
- Kruskal-Wallis检验:
scipy.stats.kruskal
- Mann-Whitney U检验:
scipy.stats.mannwhitneyu
- Wilcoxon符号秩检验:
scipy.stats.wilcoxon
- 卡方检验:
scipy.stats.chisquare
- Fisher精确检验:
scipy.stats.fisher_exact
这些方法涵盖了在统计分析中经常用到的正态性检验和假设检验技术。你可以根据你的具体数据和研究问题选择适当的方法来进行分析。每个方法都有不同的假设和前提条件,所以在使用时需要谨慎考虑。
下面是关于这些不同正态性检验方法的简要说明:
-
Shapiro-Wilk检验(
scipy.stats.shapiro
):- Shapiro-Wilk检验是一种用于检验数据是否来自正态分布的统计检验方法。
- 零假设(H0):数据来自正态分布。
- 备择假设(H1):数据不来自正态分布。
- 结果解释:如果p-value小于选择的显著性水平(通常为0.05),则拒绝零假设,表示数据不服从正态分布。
from scipy import stats import numpy as np# 创建一个示例数据集 data = np.random.normal(0, 1, 100)# 执行Shapiro-Wilk正态性检验 stat, p = stats.shapiro(data)# 输出检验结果 if p < 0.05:print("数据不服从正态分布") else:print("数据可能服从正态分布")
-
Anderson-Darling检验(
scipy.stats.anderson
):- Anderson-Darling检验也用于检验数据是否来自正态分布。
- 检验的结果基于Anderson-Darling统计量和临界值。
- 结果解释:如果Anderson-Darling统计量大于临界值,则拒绝零假设,表示数据不服从正态分布。
from scipy import stats import numpy as np# 创建一个示例数据集 data = np.random.normal(0, 1, 100)# 执行Anderson-Darling正态性检验 result = stats.anderson(data)# 输出检验结果 print("Anderson-Darling统计量:", result.statistic) print("临界值:", result.critical_values) if result.statistic > result.critical_values[2]:print("数据不服从正态分布") else:print("数据可能服从正态分布")
-
Kolmogorov-Smirnov检验(
scipy.stats.kstest
):- Kolmogorov-Smirnov检验用于检验数据是否来自特定的概率分布,包括正态分布。
- 检验的结果基于累积分布函数的比较。
- 结果解释:如果p-value小于选择的显著性水平,则拒绝零假设,表示数据不来自指定的分布。
from scipy import stats import numpy as np# 创建一个示例数据集 data = np.random.normal(0, 1, 100)# 执行Kolmogorov-Smirnov正态性检验 stat, p = stats.kstest(data, 'norm')# 输出检验结果 if p < 0.05:print("数据不服从正态分布") else:print("数据可能服从正态分布")
-
D'Agostino-Pearson检验(
scipy.stats.normaltest
):- D'Agostino-Pearson检验也用于检验数据是否来自正态分布。
- 检验的结果基于偏度(skewness)和峰度(kurtosis)的值。
- 结果解释:如果p-value小于选择的显著性水平,则拒绝零假设,表示数据不服从正态分布。
from scipy import stats import numpy as np# 创建一个示例数据集 data = np.random.normal(0, 1, 100)# 执行D'Agostino-Pearson正态性检验 stat, p = stats.normaltest(data)# 输出检验结果 if p < 0.05:print("数据不服从正态分布") else:print("数据可能服从正态分布")
-
Lilliefors检验(
scipy.stats.lilliefors
):- Lilliefors检验是一种用于检验数据是否来自特定分布的检验方法,通常用于检验是否来自正态分布。
- 结果解释:如果p-value小于选择的显著性水平,则拒绝零假设,表示数据不来自指定的分布。
from scipy import stats import numpy as np# 创建一个示例数据集 data = np.random.normal(0, 1, 100)# 执行Lilliefors正态性检验 stat, p = stats.lilliefors(data)# 输出检验结果 if p < 0.05:print("数据不服从正态分布") else:print("数据可能服从正态分布")
这些检验方法可根据你的需求选择,但需要注意,结果的解释可能会受到样本大小、数据分布和显著性水平的影响。要正确使用这些方法,通常需要深入了解它们的原理和假设。
----------------------------
假设检验方法:
这里是对这些假设检验方法的简要介绍以及它们的具体使用场合:
-
配对样本t检验(
scipy.stats.ttest_rel
):- 使用场合:用于比较两组相关(配对)样本之间的均值差异,例如在同一组人群中的前后两次测量。
- 假设:检验两组相关样本的均值是否存在显著差异。
-
单样本t检验(
scipy.stats.ttest_1samp
):- 使用场合:用于检验一个样本的均值是否与一个已知的参考值(或理论均值)存在显著差异。
- 假设:检验单个样本的均值是否与给定的理论均值不同。
-
方差分析 (ANOVA)(
scipy.stats.f_oneway
):- 使用场合:用于比较三个或更多组样本之间的均值差异,通常用于分析不同组别之间的统计显著性。
- 假设:检验多组样本的均值是否存在显著差异。
-
Kruskal-Wallis检验(
scipy.stats.kruskal
):- 使用场合:用于比较三个或更多组独立样本之间的分布差异,通常用于非正态分布的数据。
- 假设:检验多组独立样本的分布是否存在显著差异。
-
Mann-Whitney U检验(
scipy.stats.mannwhitneyu
):- 使用场合:用于比较两组独立样本之间的中位数差异,通常用于非正态分布的数据。
- 假设:检验两组独立样本的中位数是否存在显著差异。
-
Wilcoxon符号秩检验(
scipy.stats.wilcoxon
):- 使用场合:用于比较两组配对样本之间的中位数差异,通常用于非正态分布的配对数据。
- 假设:检验两组配对样本的中位数是否存在显著差异。
-
卡方检验(
scipy.stats.chisquare
):- 使用场合:用于比较观察频数和期望频数之间的差异,通常用于分析分类数据的拟合度。
- 假设:检验观察频数与期望频数是否存在显著差异。
-
Fisher精确检验(
scipy.stats.fisher_exact
):- 使用场合:用于比较两个分类变量之间的关联性,通常用于小样本数据。
- 假设:检验两个分类变量是否存在关联性。
这些检验方法适用于不同类型的数据和研究问题,你可以根据数据性质和研究目的选择合适的方法来进行统计分析。
- 独立样本t检验:
scipy.stats.ttest_ind
from scipy import stats import numpy as np# 创建两组示例数据 group1 = np.array([25, 30, 35, 40, 45]) group2 = np.array([20, 28, 32, 38, 42])# 执行独立样本t检验 t_stat, p_value = stats.ttest_ind(group1, group2)# 输出检验结果 if p_value < 0.05:print("两组数据均值存在显著差异") else:print("两组数据均值无显著差异")
- 配对样本t检验:
scipy.stats.ttest_rel
from scipy import stats import numpy as np# 创建两组示例数据 before = np.array([30, 32, 34, 36, 38]) after = np.array([28, 31, 35, 37, 40])# 执行配对样本t检验 t_stat, p_value = stats.ttest_rel(before, after)# 输出检验结果 if p_value < 0.05:print("配对样本存在显著差异") else:print("配对样本无显著差异")
- 单样本t检验:
scipy.stats.ttest_1samp
from scipy import stats import numpy as np# 创建一个示例数据集 data = np.random.normal(0, 1, 100)# 执行单样本t检验 t_stat, p_value = stats.ttest_1samp(data, 0)# 输出检验结果 if p_value < 0.05:print("样本均值与零存在显著差异") else:print("样本均值与零无显著差异")
- 方差分析 (ANOVA):
scipy.stats.f_oneway
from scipy import stats import numpy as np# 创建多组示例数据 group1 = np.random.normal(0, 1, 100) group2 = np.random.normal(1, 1, 100) group3 = np.random.normal(2, 1, 100)# 执行方差分析 f_stat, p_value = stats.f_oneway(group1, group2, group3)# 输出检验结果 if p_value < 0.05:print("组之间存在显著差异") else:print("组之间无显著差异")
- Kruskal-Wallis检验:
scipy.stats.kruskal
from scipy import stats# 创建多组示例数据 group1 = [25, 30, 35, 40, 45] group2 = [20, 28, 32, 38, 42] group3 = [15, 18, 22, 28, 32]# 执行Kruskal-Wallis检验 h_stat, p_value = stats.kruskal(group1, group2, group3)# 输出检验结果 if p_value < 0.05:print("组之间存在显著差异") else:print("组之间无显著差异")
- Mann-Whitney U检验:
scipy.stats.mannwhitneyu
from scipy import stats# 创建两组示例数据 group1 = [25, 30, 35, 40, 45] group2 = [20, 28, 32, 38, 42]# 执行Mann-Whitney U检验 u_stat, p_value = stats.mannwhitneyu(group1, group2)# 输出检验结果 if p_value < 0.05:print("两组数据存在显著差异") else:print("两组数据无显著差异")
- Wilcoxon符号秩检验:
scipy.stats.wilcoxon
from scipy import stats# 创建两组配对数据 before = [25, 30, 35, 40, 45] after = [20, 28, 32, 38, 42]# 执行Wilcoxon符号秩检验 w_stat, p_value = stats.wilcoxon(before, after)# 输出检验结果 if p_value < 0.05:print("配对数据存在显著差异") else:print("配对数据无显著差异")
- 卡方检验:
scipy.stats.chisquare
from scipy import stats import numpy as np# 创建一个示例观察频数数组 observed = np.array([20, 25, 30]) expected = np.array([15, 30, 30])# 执行卡方检验 chi_stat, p_value = stats.chisquare(observed, f_exp=expected)# 输出检验结果 if p_value < 0.05:print("观察频数与期望频数存在显著差异") else:print("观察频数与期望频数无显著差异")
- Fisher精确检验:
scipy.stats.fisher_exact
from scipy import stats# 创建一个2x2的列联表 contingency_table = [[10, 5], [3, 15]]# 执行Fisher精确检验 odds_ratio, p_value = stats.fisher_exact(contingency_table)# 输出检验结果 if p_value < 0.05:print("两个分类变量存在关联") else:print("两个分类变量无关联")
相关文章:
Scipy库提供了多种正态性检验和假设检验方法
Scipy库提供了多种正态性检验和假设检验方法。以下是一些常用的检验方法的列表: 正态性检验方法: Shapiro-Wilk检验:scipy.stats.shapiroAnderson-Darling检验:scipy.stats.andersonKolmogorov-Smirnov检验:scipy.st…...

去雨去雪去雾算法之本地与服务器的TensorBoard使用教程
在进行去雨去雾去雪算法实验时,需要注意几个参数设置,num_workers只能设置为0,否则会报各种稀奇古怪的错误。 本地使用TensorBoard 此外,发现生成的文件是events.out.tfevents格式的,查询了一番得知该文件是通过Tens…...

【小沐学前端】Node.js实现基于Protobuf协议的WebSocket通信
文章目录 1、简介1.1 Node1.2 WebSocket1.3 Protobuf 2、安装2.1 Node2.2 WebSocket2.2.1 nodejs-websocket2.2.2 ws 2.3 Protobuf 3、代码测试3.1 例子1:websocket(html)3.1.1 客户端:yxy_wsclient1.html3.1.2 客户端:…...

MySQL学习笔记24
MySQL的物理备份: xtrabackup备份介绍: xtrabackup优缺点: 优点: 1、备份过程快速、可靠(因为是物理备份);直接拷贝物理文件。 2、支持增量备份,更为灵活; 3、备份…...

objective-c 基础学习
目录 第一节:OC 介绍 第二节:Fundation 框架 第三节:NSLog 相对于print 的增强 第四节:NSString 第五节:oc新增数据类型 第六节: 类和对象 类的方法的声明与实现 第七节:类…...

【精彩回顾】 用sCrypt在Bitcoin上构建智能合约
2023年3月24日,sCrypt在英国Exeter大学举办了关于智能合约的大学讲学。sCrypt首席执行官刘晓晖做了题为“用sCrypt在Bitcoin上构建智能合约”的演讲,并与到场的老师、学生进行了深入交流、互动。这次课程着重讲解了 BSV 智能合约的基础概念,以…...
Kotlin 使用泛型
在 Kotlin 中,我们可以使用泛型(Generics)来编写具有通用性的代码,以增强代码的可重用性和类型安全性。通过使用泛型,我们可以在不指定具体类型的情况下编写适用于多种类型的函数和类。 以下是 Kotlin 中使用泛型的几…...

深度学习 二:COVID 19 Cases Prediction (Regression)
Deep Learning 1. 回归算法思路2. 代码2.1 基础操作2.2 定义相关函数2.3.1 定义图像绘制函数2.3.2 数据集加载及预处理2.3.3 构造数据加载器2.3.4 构建前馈神经网络(Feedforward Neural Network)模型2.3.5 神经网络的训练过程2.3.6 模型评估2.3.7 模型测…...
UG\NX二次开发 信息窗口的4种输出方式 NXOpen::ListingWindow::DeviceType
文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 简介 UG\NX二次开发 信息窗口的4种输出方式 NXOpen::ListingWindow::DeviceType 信息窗口的输出类型 enum NXOpen::ListingWindow::DeviceType 枚举值描述 DeviceTypeWindow0输出将写入“信息”窗口DeviceTypeFile1输出…...
mavn打包时如何把外部依赖加进去?
一、添加依赖: <dependency><groupId>com.dm</groupId><artifactId>DmJdbcDriver</artifactId><version>18</version><scope>system</scope><systemPath>${project.basedir}/lib/DmJdbcDriver18.jar</systemP…...

爬虫代理请求转换selenium添加带有账密的socks5代理
爬虫代理请求转换selenium添加带有账密的socks5代理。 一、安装三方库 二、使用方法 1、在cmd命令行输入: 2、给selenium添加代理 最近因为工作需要,需要selenium添加带有账密的socks5代理,贴出一个可用的方法。 把带有账密的socks5代理&am…...
Redis 如何实现数据不丢失的?
Redis 实现数据不丢失的关键在于使用了多种持久化机制,以确保数据在内存和磁盘之间的持久性。以下是 Redis 实现数据不丢失的主要方法: 快照(Snapshot)持久化: Redis 使用快照持久化来定期将内存中的数据写入磁盘。快照是一个数据库状态的副本,包含了所有键和与其相关联的…...
[高等数学]同济版高等数学【第七版】上下册教材+习题全解PDF
laiyuan 「高等数学 第7版 同济大学」 https://www.aliyundrive.com/s/5fpFJb3asYk 提取码: 61ao 通过百度网盘分享的文件:同济版高数教材及… 链接:https://pan.baidu.com/s/1gyy-GMGjwguAjYijrpC8RA?pwdyhnr 提取码:yhnr 高等数学相关: The Ca…...
【面试题精讲】Java超过long类型的数据如何表示
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 面试题手册[2] 系列文章地址[3] 在 Java 中,如果需要表示超过 long 类型范围的数据,可以使用 BigInteger 类…...
Shapiro-Wilk正态性检验(Shapiro和Wilk于1965年提出)
Shapiro-Wilk正态性检验是一种用于确定数据集是否服从正态分布的统计方法。它基于Shapiro和Wilk于1965年提出的检验统计量。以下是其基本原理和用途: 基本原理: 零假设(Null Hypothesis):Shapiro-Wilk检验的零假设是数…...

debian设置允许ssh连接
解决新debian系统安装后不能通过ssh连接的问题。 默认情况下,Debian系统不开启SSH远程登录,需要手动安装SSH软件包并设置开机启动。 > 设置允许root登录传送门:debian设置允许root登录 首先检查/etc/ssh/sshd_config文件是否存在。 注意…...

【C语言经典100例题-66】(用指针解决)输入3个数a,b,c,按大小顺序输出。
代码: #include<stdio.h> #define _CRT_SECURE_NO_WARNINGS 1//VS编译器使用scanf函数时会报错,所以添加宏定义 swap(p1, p2) int* p1, * p2; {int p;p *p1;*p1 *p2;*p2 p; } int main() {int n1, n2, n3;int* pointer1, * pointer2, * point…...

【STM32 CubeMX】移植u8g2(一次成功)
文章目录 前言一、下载u8g2源文件二、复制和更改文件2.1 复制文件2.2 修改文件u8g2_d_setup文件u8g2_d_memory 三、编写oled.c和oled.h文件3.1 CubeMX配置I2C3.2 编写文件oled.holed.c 四、测试代码main函数测试代码 总结 前言 在本文中,我们将介绍如何在STM32上成…...

华为云智能化组装式交付方案 ——金融级PaaS业务洞察及Web3实践的卓越贡献
伴随信息技术与金融业务加速的融合,企业应用服务平台(PaaS)已从幕后走向台前,成为推动行业数字化转型的关键力量。此背景下,华为云PaaS智能化组装式交付方案闪耀全场,在近日结束的华为全联接大会 2023上倍受…...
Halcon Image相关算子(二)
(1) dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 功能:从输入图像中选择像素满足阈值条件的那些区域。 图形输入参数:OrigImage:原始图像; 图形输入参数:ThresholdImage&a…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

Linux-进程间的通信
1、IPC: Inter Process Communication(进程间通信): 由于每个进程在操作系统中有独立的地址空间,它们不能像线程那样直接访问彼此的内存,所以必须通过某种方式进行通信。 常见的 IPC 方式包括&#…...

SQL注入篇-sqlmap的配置和使用
在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是纯手动获取数据库信息的 接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习,链接:https://wwhc.lanzoue.com/ifJY32ybh6vc…...
【Java基础】向上转型(Upcasting)和向下转型(Downcasting)
在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系 和 多态。 向上转型(Upcasting) ⬆️ 定义 将 子类对象 赋值给 父类引用(自动完成,无需强制转换&…...

分布式光纤声振传感技术原理与瑞利散射机制解析
分布式光纤传感技术(Distributed Fiber Optic Sensing,简称DFOS)作为近年来迅速发展的新型感知手段,已广泛应用于边界安防、油气管道监测、结构健康诊断、地震探测等领域。其子类技术——分布式光纤声振传感(Distribut…...