用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). 每一对数据随机选择且独立。
检验步骤:
在这里插入图片描述
参考: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

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
参数检验是一种统计学方法,用于对数据进行推断,而不依赖于数据的分布假设。在Python中,有多种参数检验的方法可以使用。 一种常用的参数检验方法是Wilcoxon秩和检验,也称为Mann-Whitney U检验。它用于比较两个独立样本的中位数是否存在差异。在Python中,可以使用scipy库的wilcoxon函数进行计算。 另一种常用的参数检验方法是Kruskal-Wallis检验,用于比较多个独立样本的中位数是否存在差异。在Python中,可以使用scipy库的kruskal函数进行计算。 除了这些方法外,还有其他一些参数检验方法可以在Python中使用,例如Friedman检验、Runstest等。这些方法可以用于比较两个或多个样本的分布是否存在差异。 综上所述,Python提供了丰富的参数检验方法,可以根据具体情况选择适合的方法进行数据分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [十、参数检验:使用python进行卡方拟合优度检验](https://blog.csdn.net/qq_35125180/article/details/107370486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [python参数检验](https://blog.csdn.net/kylin_learn/article/details/103236611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值