zoukankan      html  css  js  c++  java
  • python中正态分布检验的方法

    对数据进行建模处理时,常需要进行数据分布检验。

    import numpy as np
    from scipy import stats
    
    a = np.random.normal(0,1,50)
    '''输出结果中第一个为统计量,第二个为P值(统计量越接近1越表明数据和正态分布拟合的好,
    P值大于指定的显著性水平,接受原假设,认为样本来自服从正态分布的总体)'''
    print(stats.shapiro(a)) 
    
    
    '''输出结果中第一个为统计量,第二个为P值(注:统计量越接近0就越表明数据和标准正态分布拟合的越好,
    如果P值大于显著性水平,通常是0.05,接受原假设,则判断样本的总体服从正态分布)'''
    print(stats.kstest(a, 'norm')) 
    
    
    '''输出结果中第一个为统计量,第二个为P值(注:p值大于显著性水平0.05,认为样本数据符合正态分布)'''
    print(stats.normaltest(a)) 

    scipy.stats.kstest(K-S检验)

    kstest 是一个很强大的检验模块,除了正态性检验,还能检验 scipy.stats 中的其他数据分布类型,仅适用于连续分布的检验,

    原假设:数据符合正态分布

    kstest(rvs, cdf, args=(), N=20, alternative='two_sided', mode='approx', **kwds)

    对于正态性检验,我们只需要手动设置三个参数即可:

    rvs:待检验的一组一维数据

    cdf:检验方法,例如'norm','expon','rayleigh','gamma',这里我们设置为'norm',即正态性检验

    alternative:默认为双尾检验,可以设置为'less'或'greater'作单尾检验

    model:'approx'(默认),使用检验统计量的精确分布的近视值,

    'asymp':使用检验统计量的渐进分布

    scipy.stats.shapiro(W检验)

    与 kstest 不同,shapiro 是专门用来做正态性检验的模块

    原假设:样本数据符合正态分布

    注意:shapiro是用来检验小样本数据(数据量<>

    scipy.stats.shapiro(x, a=None, reta=False)

    一般我们只用 x 参数就行,x 即待检验的数据

    scipy.stats.normaltest

    normaltest 也是专门做正态性检验的模块,原理是基于数据的skewness和kurtosis

    scipy.stats.normaltest(a, axis=0, nan_policy='propagate')

    a:待检验的数据

    axis:默认为0,表示在0轴上检验,即对数据的每一行做正态性检验,我们可以设置为 axis=None 来对整个数据做检验

    nan_policy:当输入的数据中有空值时的处理办法。默认为 'propagate',返回空值;设置为 'raise' 时,抛出错误;设置为 'omit' 时,在计算中忽略空值。
     

  • 相关阅读:
    多线程博文地址 http://www.cnblogs.com/nokiaguy/archive/2008/07/13/1241817.html
    vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)
    Lambda语句中创建自定义类型时,也可指定某种特定类型,方法是在new与{}之间写上类型名称
    Win7开始菜单所在目录
    C#中Struct与Class的区别
    Linq语句:三表联查
    用exp、dmp导入导出用户到同一个实例下时,类型type会有问题
    列、约束重命名,原数据不丢失
    CDM中,创建一个或多个组合属性的唯一约束
    EF中新建表和关联表的方法
  • 原文地址:https://www.cnblogs.com/shona/p/12364216.html
Copyright © 2011-2022 走看看