zoukankan      html  css  js  c++  java
  • 曼-惠特尼U检验以及Python实现

    一、曼-惠特尼U检验的含义

    曼-惠特尼U检验又称“曼-惠特尼秩和检验”,英文(Mann-Whitney U test),是由H.B.Mann和D.R.Whitney于1947年提出的。它假设两个样本分别来自除了总体均值以外完全相同的两个总体,目的是检验这两个总体的均值是否有显著的差别,简单来说就是AB小样本(样本数不一定相等)分别来自于不同的总体,且AB二者的均值不相等,我们目的是要通过AB去检验一下两个总体的均值是否有显著的差异

    二、曼-惠特尼U检验和T检验差别

    简单来说,t检验和Mann-Whitney U检验的区别:

    • t检验是参数检验,需要满足正态性和方差齐性
    • Mann-Whitney U检验是非参数检验,没有上面的要求

    三、Python实现

    1.我们知道这两组的值

    #知道这两组的值
    import scipy.stats as stats
    weight_high=[134,146,104,119,124,161,107,83,113,129,97,123]
    weight_low=[70,118,101,85,112,132,94]
    stats.mannwhitneyu(weight_high,weight_low,alternative='two-sided')
    
    #MannwhitneyuResult(statistic=62.0,pvalue=0.0993422478534652) 
    #大于0.05,也就是接受原假设

    2.我们只知道均值,比如说我们分箱时,得到两个不同的badrate,这样我们首先按照badrate生成不同

    import pycard as pc
    help(pc.generate_samples)
    '''
    generate_samples(good=None, bad=None, total=None)
        生成仅由 0,1 值组成的样本,以便于进行各种统计检验
        参数:
        -----------
        good: int, 好样本的个数,即 0 的个数
        bad: int, 坏样本的个数, 即 1 的个数
        total: int, 总样本的个数。 good, bad, total 三个参数只能 3选 2个传进来
        返回:
        -----------
        sample: 1darray, 生成的样本
    '''
    #然后下面的步骤基本一样

    下面介绍参数

    scipy.stats.mannwhitneyu( x, y, use_continuity = True, alternative = None )
    • x, y:array_like,样本数据数组
    • use_continuity:bool, optional,是否需要0.5的连续性校正,建议小样本需要。默认值为 True 。
    • alternative:{None, ‘less’, ‘two-sided’, ‘greater’}, optional,‘two-sided’ 表示双侧检验,‘greater’ 为备择假设是大于的单边检验,‘less’ 为备择假设是小于的单边检验,None 表示双侧检验 p 值的一半。默认值为 None 。
  • 相关阅读:
    jmeter如何操作数据库
    jmeter压力测试
    cmd中用ping命令时,提示ping命令不是外部或内部命令问题
    scrapy post Request payload类型值
    scrapy-deltafetch实现增量爬取
    django虚拟环境搭建笔记
    python Image模块基本语法
    登录北京住房公积金,使用已注册过账号
    登录北京社保网站
    python通过pop3方式登录邮箱(qq,新浪,网易)
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/14009378.html
Copyright © 2011-2022 走看看