当前位置: 首页 > news >正文

Scipy库提供了多种正态性检验和假设检验方法

Scipy库提供了多种正态性检验和假设检验方法。以下是一些常用的检验方法的列表:

正态性检验方法:

  1. Shapiro-Wilk检验:scipy.stats.shapiro
  2. Anderson-Darling检验:scipy.stats.anderson
  3. Kolmogorov-Smirnov检验:scipy.stats.kstest
  4. D'Agostino-Pearson检验:scipy.stats.normaltest
  5. Lilliefors检验:scipy.stats.lilliefors

假设检验方法:

  1. 独立样本t检验:scipy.stats.ttest_ind
  2. 配对样本t检验:scipy.stats.ttest_rel
  3. 单样本t检验:scipy.stats.ttest_1samp
  4. 方差分析 (ANOVA):scipy.stats.f_oneway
  5. Kruskal-Wallis检验:scipy.stats.kruskal
  6. Mann-Whitney U检验:scipy.stats.mannwhitneyu
  7. Wilcoxon符号秩检验:scipy.stats.wilcoxon
  8. 卡方检验:scipy.stats.chisquare
  9. Fisher精确检验:scipy.stats.fisher_exact

这些方法涵盖了在统计分析中经常用到的正态性检验和假设检验技术。你可以根据你的具体数据和研究问题选择适当的方法来进行分析。每个方法都有不同的假设和前提条件,所以在使用时需要谨慎考虑。

下面是关于这些不同正态性检验方法的简要说明:

  1. 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("数据可能服从正态分布")
      
  2. 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("数据可能服从正态分布")
      
  3. 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("数据可能服从正态分布")
      
  4. 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("数据可能服从正态分布")
      
  5. 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("数据可能服从正态分布")
      

这些检验方法可根据你的需求选择,但需要注意,结果的解释可能会受到样本大小、数据分布和显著性水平的影响。要正确使用这些方法,通常需要深入了解它们的原理和假设。

----------------------------

假设检验方法:

这里是对这些假设检验方法的简要介绍以及它们的具体使用场合:

  1. 配对样本t检验scipy.stats.ttest_rel):

    • 使用场合:用于比较两组相关(配对)样本之间的均值差异,例如在同一组人群中的前后两次测量。
    • 假设:检验两组相关样本的均值是否存在显著差异。
  2. 单样本t检验scipy.stats.ttest_1samp):

    • 使用场合:用于检验一个样本的均值是否与一个已知的参考值(或理论均值)存在显著差异。
    • 假设:检验单个样本的均值是否与给定的理论均值不同。
  3. 方差分析 (ANOVA)scipy.stats.f_oneway):

    • 使用场合:用于比较三个或更多组样本之间的均值差异,通常用于分析不同组别之间的统计显著性。
    • 假设:检验多组样本的均值是否存在显著差异。
  4. Kruskal-Wallis检验scipy.stats.kruskal):

    • 使用场合:用于比较三个或更多组独立样本之间的分布差异,通常用于非正态分布的数据。
    • 假设:检验多组独立样本的分布是否存在显著差异。
  5. Mann-Whitney U检验scipy.stats.mannwhitneyu):

    • 使用场合:用于比较两组独立样本之间的中位数差异,通常用于非正态分布的数据。
    • 假设:检验两组独立样本的中位数是否存在显著差异。
  6. Wilcoxon符号秩检验scipy.stats.wilcoxon):

    • 使用场合:用于比较两组配对样本之间的中位数差异,通常用于非正态分布的配对数据。
    • 假设:检验两组配对样本的中位数是否存在显著差异。
  7. 卡方检验scipy.stats.chisquare):

    • 使用场合:用于比较观察频数和期望频数之间的差异,通常用于分析分类数据的拟合度。
    • 假设:检验观察频数与期望频数是否存在显著差异。
  8. Fisher精确检验scipy.stats.fisher_exact):

    • 使用场合:用于比较两个分类变量之间的关联性,通常用于小样本数据。
    • 假设:检验两个分类变量是否存在关联性。

这些检验方法适用于不同类型的数据和研究问题,你可以根据数据性质和研究目的选择合适的方法来进行统计分析。

  1. 独立样本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("两组数据均值无显著差异")
    
  2. 配对样本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("配对样本无显著差异")
    
  3. 单样本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("样本均值与零无显著差异")
    
  4. 方差分析 (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("组之间无显著差异")
    
  5. 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("组之间无显著差异")
    
  6. 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("两组数据无显著差异")
    
  7. 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("配对数据无显著差异")
    
  8. 卡方检验: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("观察频数与期望频数无显著差异")
    
  9. 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库提供了多种正态性检验和假设检验方法。以下是一些常用的检验方法的列表&#xff1a; 正态性检验方法&#xff1a; Shapiro-Wilk检验&#xff1a;scipy.stats.shapiroAnderson-Darling检验&#xff1a;scipy.stats.andersonKolmogorov-Smirnov检验&#xff1a;scipy.st…...

去雨去雪去雾算法之本地与服务器的TensorBoard使用教程

在进行去雨去雾去雪算法实验时&#xff0c;需要注意几个参数设置&#xff0c;num_workers只能设置为0&#xff0c;否则会报各种稀奇古怪的错误。 本地使用TensorBoard 此外&#xff0c;发现生成的文件是events.out.tfevents格式的&#xff0c;查询了一番得知该文件是通过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&#xff1a;websocket&#xff08;html&#xff09;3.1.1 客户端&#xff1a;yxy_wsclient1.html3.1.2 客户端&#xff1a…...

MySQL学习笔记24

MySQL的物理备份&#xff1a; xtrabackup备份介绍&#xff1a; xtrabackup优缺点&#xff1a; 优点&#xff1a; 1、备份过程快速、可靠&#xff08;因为是物理备份&#xff09;&#xff1b;直接拷贝物理文件。 2、支持增量备份&#xff0c;更为灵活&#xff1b; 3、备份…...

objective-c 基础学习

目录 第一节&#xff1a;OC 介绍 ​​第二节&#xff1a;Fundation 框架 ​第三节&#xff1a;NSLog 相对于print 的增强 ​第四节&#xff1a;NSString ​第五节&#xff1a;oc新增数据类型 第六节&#xff1a; 类和对象 ​类的方法的声明与实现 ​第七节&#xff1a;类…...

【精彩回顾】 用sCrypt在Bitcoin上构建智能合约

2023年3月24日&#xff0c;sCrypt在英国Exeter大学举办了关于智能合约的大学讲学。sCrypt首席执行官刘晓晖做了题为“用sCrypt在Bitcoin上构建智能合约”的演讲&#xff0c;并与到场的老师、学生进行了深入交流、互动。这次课程着重讲解了 BSV 智能合约的基础概念&#xff0c;以…...

Kotlin 使用泛型

在 Kotlin 中&#xff0c;我们可以使用泛型&#xff08;Generics&#xff09;来编写具有通用性的代码&#xff0c;以增强代码的可重用性和类型安全性。通过使用泛型&#xff0c;我们可以在不指定具体类型的情况下编写适用于多种类型的函数和类。 以下是 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 构建前馈神经网络&#xff08;Feedforward Neural Network&#xff09;模型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命令行输入&#xff1a; 2、给selenium添加代理 最近因为工作需要&#xff0c;需要selenium添加带有账密的socks5代理&#xff0c;贴出一个可用的方法。 把带有账密的socks5代理&am…...

Redis 如何实现数据不丢失的?

Redis 实现数据不丢失的关键在于使用了多种持久化机制,以确保数据在内存和磁盘之间的持久性。以下是 Redis 实现数据不丢失的主要方法: 快照(Snapshot)持久化: Redis 使用快照持久化来定期将内存中的数据写入磁盘。快照是一个数据库状态的副本,包含了所有键和与其相关联的…...

[高等数学]同济版高等数学【第七版】上下册教材+习题全解PDF

laiyuan 「高等数学 第7版 同济大学」 https://www.aliyundrive.com/s/5fpFJb3asYk 提取码: 61ao 通过百度网盘分享的文件&#xff1a;同济版高数教材及… 链接:https://pan.baidu.com/s/1gyy-GMGjwguAjYijrpC8RA?pwdyhnr 提取码:yhnr 高等数学相关&#xff1a; The Ca…...

【面试题精讲】Java超过long类型的数据如何表示

有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 面试题手册[2] 系列文章地址[3] 在 Java 中&#xff0c;如果需要表示超过 long 类型范围的数据&#xff0c;可以使用 BigInteger 类…...

Shapiro-Wilk正态性检验(Shapiro和Wilk于1965年提出)

Shapiro-Wilk正态性检验是一种用于确定数据集是否服从正态分布的统计方法。它基于Shapiro和Wilk于1965年提出的检验统计量。以下是其基本原理和用途&#xff1a; 基本原理&#xff1a; 零假设&#xff08;Null Hypothesis&#xff09;&#xff1a;Shapiro-Wilk检验的零假设是数…...

debian设置允许ssh连接

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

【C语言经典100例题-66】(用指针解决)输入3个数a,b,c,按大小顺序输出。

代码&#xff1a; #include<stdio.h> #define _CRT_SECURE_NO_WARNINGS 1//VS编译器使用scanf函数时会报错&#xff0c;所以添加宏定义 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函数测试代码 总结 前言 在本文中&#xff0c;我们将介绍如何在STM32上成…...

华为云智能化组装式交付方案 ——金融级PaaS业务洞察及Web3实践的卓越贡献

伴随信息技术与金融业务加速的融合&#xff0c;企业应用服务平台&#xff08;PaaS&#xff09;已从幕后走向台前&#xff0c;成为推动行业数字化转型的关键力量。此背景下&#xff0c;华为云PaaS智能化组装式交付方案闪耀全场&#xff0c;在近日结束的华为全联接大会 2023上倍受…...

Halcon Image相关算子(二)

(1) dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 功能&#xff1a;从输入图像中选择像素满足阈值条件的那些区域。 图形输入参数&#xff1a;OrigImage&#xff1a;原始图像&#xff1b; 图形输入参数&#xff1a;ThresholdImage&a…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...