在对数据建模前,很多时候我们需要对数据做正态性检验,进而通过检验结果确定下一步的分析方案。下面介绍 Python 中常用的几种正态性检验方法:

scipy.stats.kstest

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

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

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

  • rvs:待检验的数据
  • cdf:检验方法,这里我们设置为‘norm’,即正态性检验
  • alternative:默认为双尾检验,可以设置为‘less’‘greater’作单尾检验
>>> import numpy as np
>>> from scipy.stats import kstest
>>> x = np.linspace(-15, 15, 9)
>>> kstest(x, 'norm')
(0.44435602715924361, 0.038850142705171065)

输出结果中第一个为统计数,第二个为P值

具体见官方文档 scipy.stats.kstest

scipy.stats.shapiro

与 kstest 不同,shapiro 是专门用来做正态性检验的模块
注意:shapiro 不适合做样本数>5000的正态性检验,检验结果的P值可能不准确

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

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

>>> from scipy import stats
>>> np.random.seed(12345678)
>>> x = stats.norm.rvs(loc=5, scale=3, size=100)
>>> stats.shapiro(x)
(0.9772805571556091, 0.08144091814756393)

输出结果中第一个为统计数,第二个为P值

具体见官方文档 scipy.stats.shapiro

scipy.stats.normaltest

normaltest 也是专门做正态性检验的模块

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

这里的三个参数都有必要看一下:

  • a:待检验的数据
  • axis:默认为0,表示在0轴上检验,即对数据的每一行做正态性检验,我们可以设置为 axis=None 来对整个数据做检验
  • nan_policy:当输入的数据中有空值时的处理办法。默认为 ‘propagate’,返回空值;设置为 ‘raise’ 时,抛出错误;设置为 ‘omit’ 时,在计算中忽略空值。
>>> import numpy as np
>>> from scipy.stats import normaltest
>>> x = np.random.randn(10, 20)
>>> normaltest(x, axis=None)
>>> NormaltestResult(statistic=0.3582062593239369, pvalue=0.83601967652440512)

输出结果中第一个为统计数,第二个为P值

具体见官方文档 scipy.stats.normaltest

scipy.stats.anderson

anderson 是修改版的 kstest,说是增强版也不为过。也可以做多种分布的检验,默认的检验时正态性检验。

scipy.stats.anderson(x, dist=’norm’)

参数这里就不多说了,但对输出结果说明一下:
anderson 有三个输出值,第一个为统计数,第二个为评判值,第三个为显著性水平, 评判值与显著性水平对应
对于正态性检验,显著性水平为:15%, 10%, 5%, 2.5%, 1%

>>> import numpy as np
>>> from scipy.stats import anderson
>>> x = np.linspace(-15, 15, 9)
>>> anderson(x)
>>> AndersonResult(statistic=0.13676646631470213, critical_values=array([ 0.507,  0.578,  0.693,  0.808,  0.961]), significance_level=array([ 15. ,  10. ,   5. ,   2.5,   1. ]))

具体见官方文档 scipy.stats.anderson

Python正态性检验相关推荐

  1. python正态性检验:检验数据是否服从正态分布

    文章目录 夏皮罗一威尔克检验法(Shapiro-Wilk test) kstest see also 推荐两种检验方法:1.夏皮罗一威尔克检验法(Shapiro-Wilk test):2.kstest ...

  2. python 检验数据正态分布程度_Python DataFrame 检验数据正态分布及平均值差异检验...

    检验是否为正态分布 使用 # Scipy Normaltest how is it used? image.png 平均值差异检验 代码示例如下 from scipy.stats import kst ...

  3. Python科研数据分析专题之正态性检验

    数据的正态性检验 Sim_Jackson | 2023 在时间序列预测类的论文中应用较多 # 导入需要的第三方库 import pandas as pd import os import warnin ...

  4. python进行JB正态性检验

    Jarque-Bera检验:检验序列是否符合正态分布 背景 Jarque-Bera检验是一种总体分布的正态性检验. 当序列服从正态分布时,JB统计量: JB=n(S26+(K−3)224)JB=n(S ...

  5. python怎么实现检验_Python数据正态性检验实现过程

    在做数据分析或者统计的时候,经常需要进行数据正态性的检验,因为很多假设都是基于正态分布的基础之上的,例如:T检验. 在Python中,主要有以下检验正态性的方法: 1.scipy.stats.shap ...

  6. Python探索性数据分析——异常数据的检测与处理、数据的描述(集中、分散、分布、相关关系、波动)、数据的推断(正态性检验、卡方检验、t检验)

    目录 一.异常数据的检测与处理 1.异常数据检测与处理-基于箱线图 2.异常数据检测与处理-基于正态分布特征 二.数据的描述 1.数据的集中趋势 1.1.数据的集中趋势-平均值 1.1.1.算数平均值 ...

  7. Python金融大数据分析——第11章 统计学(1)正态性检验 笔记

    第11章 统计学 11.1 正态性检验 11.1.1 基准案例 11.1.2 现实世界的数据 第11章 统计学 11.1 正态性检验 可以说 , 正态分布是金融学中最重要的分布 , 也是金融理论的主要 ...

  8. 【python数据分析】正态分布、正态性检验与相关性分析

    正态分布.正态性检验与相关性分析 1 正态分布 2 正态性检验 2.1 直方图初判 2.2 QQ图 2.3 K-S检验 2.3.1 计算推导 2.3.2 代码一步到位 3 相关性分析 3.1 图示初判 ...

  9. 正态性检验(偏度和峰度)python

    # -*- coding: utf-8 -*- """ Created on Mon Nov 1 20:20:05 2021@author: 86158 "&q ...

  10. python实现Anderson-Darling正态分布检验

    python实现Anderson-Darling正态分布检验 正态性检验 确定您绘制样本所基于的总体是否呈非正态分布的单样本假设检验.许多统计过程均依赖于总体正态性,且使用正态性检验确定否定此假设是不 ...

最新文章

  1. c语言将程序写为动态库,VS下生成C程序静态库(LIB)及动态库(DLL)的方法
  2. vue transition
  3. java数据结构 -链表 -获取有效节点个数,单链表中倒数k个节点
  4. linux查看磁盘占用
  5. AR让明信片重获新生,旅游党的新姿势
  6. Windows 底层驱动级 Anti-Rootkit 工具 ScDetective 源代码
  7. 求最短路的多种方法比较及应用
  8. 【Scratch画图100例】图40-scratch实心五角星 少儿编程 scratch编程画图案例教程 考级比赛画图集训案例
  9. TextCNN文本分类实践
  10. Servlet九大内置对象
  11. UVALive 7269 Snake Carpet
  12. 设计模式之多用组合,少用继承
  13. 右击文件夹转圈圈,有时卡死
  14. Aspose.Cells 单元格格式设置 如设置为数字
  15. idea断点里没有对号问题解决(断点是红色的里面没有对号)
  16. Uni-App从入门到实战
  17. alsa与PulseAudio
  18. TrajGRU降雨量预测: 一个基准和一个新的模型
  19. MT6735 android6.0奇葩按键问题
  20. On the Uncertain Single-View Depths in Endoscopies

热门文章

  1. HTML 语法练习---常见标签
  2. 云计算到底有哪些魅力 云计算就业前景好不好
  3. Radis还年轻,代替MySQL还言之过早
  4. 加减乘除求余 利用 位运算实现(详细)
  5. mysql 两阶段加锁_MySql-两阶段加锁协议
  6. 穷举法 解决用3个水桶等分8升水 python实现
  7. 主机与虚拟机ping通
  8. 使用java 实现 word 转换成图片
  9. 拼多多电商玩家如何利用软件机器人快速采集平台数据
  10. MongoDB_基本操作