热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用Python做非参数检验

显著性检验是用于检测科学实验中实验组与对照组之间是否有差异以及差异是否显著的办法。所谓统计假设检验就是事先对总体(随机变量)的参数或总体分布形式做出一个假设,然后利用样本信息来判断

显著性检验是用于检测科学实验中实验组与对照组之间是否有差异以及差异是否显著的办法。所谓统计假设检验就是事先对总体(随机变量)的参数或总体分布形式做出一个假设,然后利用样本信息来判断这个假设是否合理。而把只限定第一类错误概率的统计假设检验就称之为显著性检验。
显著性检验可以分为参数检验和非参数检验。参数检验要求样本来源于正态总体(服从正态分布),且这些正态总体拥有相同的方差,在这样的基本假定(正态性假定和方差齐性假定)下检验各总体均值是否相等,属于参数检验。
当数据不满足正态性和方差齐性假定时,参数检验可能会给出错误的答案,此时应采用基于秩的非参数检验。
参考:https://www.cnblogs.com/hdu-zsk/p/6293721.html
这里主要介绍非参数检验。
1,Mann-Whitney U检验
“Mann-Whitney U检验主要用于检验两组样本是否来自同一总体,也等价于判断两组样本是否存在差异(例如,均值显著不同则必然来自不同的总体)。Mann-Whitney U检验思想与Wilcoxon带符号的等级检验类似,不同之处在于,其利用数据的大小顺序而不是正负号来判断两组数据的差异。”
“曼-惠特尼U检验又称“曼-惠特尼秩和检验”,是由H.B.Mann和D.R.Whitney于1947年提出的。它假设两个样本分别来自除了总体均值以外完全相同的两个总体,目的是检验这两个总体的均值是否有显著的差别。
  曼-惠特尼U检验的步骤是:

1.从两个总体A和B中随机抽取容量为nA和nB的两个独立随机样本,将(nA + nB)个观察值按大小顺序排列,指定1为最小(或最大)观察值,指定2为第二个最小(或第二个最大)的观察值,依此类推。如果存在相同的观察值,则用它们位序的平均数。

2.计算两个样本的等级和TA和TB。

3.根据TA和TB即可给出曼-惠特尼U检验的公式。计算得到的两个U值不相等,但是它们的和总是等于nAnB,即有UA + UB = nAnB。若 n_A\le 20 、 n_B\le 20 时,则其检验统计量为:

UA = nAnB + nA(nA + 1) / 2 − TA

UB = nAnB + nB(nB + 1) / 2 − TB

在检验时,因为曼-惠特尼U检验的临界值表只给出了较小的临界值,所以用UA、UB中较小的U值作为检验统计量。

4.选择其中较小U值与U的临界值比较,若U大于Uα,接受原假设H0,若U小于Uα则拒绝H0,接受H1。接受域与威尔科克森检验相同。U检验也有小样本和大样本之分,在小样本时,U的临界值均已编制成表。在大样本时,U的分布趋近正态分布,因此可用正态逼近处理。
  
参考:https://wiki.mbalib.com/wiki/曼-惠特尼U检验
https://blog.csdn.net/hpdlzu80100/article/details/78768421
https://segmentfault.com/a/1190000007626742

Wilcoxon 符号秩检验
Wilcoxon 符号秩检验 Wilcoxon signed-rank test 用来比较两个相关的样本,配对样本,或一个样本的重复测量,检验是否它们的总体均值秩改变。
在Wilcoxon符号秩检验中,它把观测值和零假设的中心位置之差的绝对值的秩分别按照不同的符号相加作为其检验统计量。它适用于T检验中的成对比较,但并不要求成对数据之差di服从正态分布,只要求对称分布即可。检验成对观测数据之差是否来自均值为0的总体(产生数据的总体是否具有相同的均值)。

假定
(1). 数据成对,来自同一总体;
(2). 每一对数据随机选择且独立。
检验步骤:
《用Python做非参数检验》
参考:https://blog.csdn.net/wong2016/article/details/73888024

Python实现:

# wilcox秩序和检验,n <20时独立样本效果比较好
scipy.stats.ranksums(a, b)
# Mann-Whitney U检验, n > 20时独立样本,比wilcox秩序和检验更稳健
scipy.stats.mannwhitneyu(a, b)
# Wilcox检验,成对数据
scipy.stats.wilcoxn(a, b, zero_method='wilcox', correction=False)

参考:https://segmentfault.com/a/1190000007626742
https://www.jianshu.com/p/22132bdfe593


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  •   上一篇博客中我们说到线性回归和逻辑回归之间隐隐约约好像有什么关系,到底是什么关系呢?我们就来探讨一下吧。(这一篇数学推导占了大多数,可能看起来会略有枯燥,但这本身就是一个把之前算法 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
author-avatar
此人已死_0824
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有