Python快速检验数据分布
假设检验的前提是确定数据的分布,本文介绍Python检验数据样本是否服从一定分布。使用方法是柯尔莫可洛夫-斯米洛夫检验(Kolmogorov–Smirnov test,K-S test),K-S检验方法适用于探索连续型随机变量的分布,对于离散分布(二项分布和泊松分布)需要使用其他方法进行检验。
KS检验语法
K-S检验方法能够利用样本数据推断样本来自的总体是否服从某一理论分布,是一种拟合优度的检验方法,这里使用scipy.stats.kstest() 实现单样本检测, scipy.stats.ks_2samp() 实现双样本检测。下面通过两个示例进行说明。
单样本检测
首先生成测试样本数据:
from numpy.random import seed
from numpy.random import poisson#set seed (e.g. make this example reproducible)
seed(0)# generate dataset of 100 values that follow a Poisson distribution with mean=5
data = poisson(5, 100)
下面代码显示如何执行KS检验,检验data数据集是否符合正太分布。
from scipy.stats import kstest# perform Kolmogorov-Smirnov test
kstest(data, 'norm')# 输出结果
# KstestResult(statistic=0.9072498680518208, pvalue=1.0908062873170218e-103)
从输出可以看到,检验统计量为0.9072,对应的p值为1.0908e-103,既然P值小于0.05,我们拒绝原假设,有足够证据说明样本不服从正太分布。因为我们使用poisson() 函数生成数据,样本数据应该服从泊松分布。
除了正太分布,还可以检测分布,如指数分布、伽马分布、韦伯分布、T分布、F分布等。
双样本KS检验
首先我们生成两个不同分布的样本数据:
from numpy.random import seed
from numpy.random import randn
from numpy.random import lognormal#set seed (e.g. make this example reproducible)
seed(0)#generate two datasets
data1 = randn(100)
data2 = lognormal(3, 1, 100)
下面代码执行KS检验,判断两个样本是否来自同一分布:
from scipy.stats import ks_2samp#perform Kolmogorov-Smirnov test
ks_2samp(data1, data2)# 输出结果
# KstestResult(statistic=0.99, pvalue=4.417521386399011e-57)
由输出可知,检验统计量为0.99,对应的p值为4.4175e-57。由于p值小于0.05,我们拒绝原假设。我们有足够的证据表明,这两个样本数据集不是来自同一个分布。
这个结果也不应该令人惊讶,因为我们使用标准正态分布为第一个样本生成值,使用对数正态分布为第二个样本生成值。
总结
本文介绍了如何利用python进行数据分布检验。参考内容:How to Perform a Kolmogorov-Smirnov Test in Python - Statology,官网文档:scipy.stats.kstest — SciPy v1.11.2 Manual,通过官方文档可以进一步学习其他参数的,实现更多数据检验能力。
相关文章:
Python快速检验数据分布
假设检验的前提是确定数据的分布,本文介绍Python检验数据样本是否服从一定分布。使用方法是柯尔莫可洛夫-斯米洛夫检验(Kolmogorov–Smirnov test,K-S test),K-S检验方法适用于探索连续型随机变量的分布,对…...
uniapp微信小程序点击右上角菜单分享功能权限配置
个人项目地址: SubTopH前端开发个人站 (自己开发的前端功能和UI组件,一些有趣的小功能,感兴趣的伙伴可以访问,欢迎提出更好的想法,私信沟通,网站属于静态页面) SubTopH前端开发个人站…...
【OpenVINOSharp】在英特尔® 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型
在英特尔 开发者套件爱克斯开发板使用OpenVinoSharp部署Yolov8模型 一、英特尔开发套件 AIxBoard 介绍1. 产品定位2. 产品参数3. AI推理单元 二、配置 .NET 环境1. 添加 Microsoft 包存储库2. 安装 SDK3. 测试安装4. 测试控制台项目 三、安装 OpenVINO Runtime1. 下载 OpenVINO…...
Django的模型层
Django的模型层1.Model的开发流程2.定义Model模型3.Model模型的实例4.Model模型的实战操作笔记开发流程1.在models.py中定义模型类,要求继承自models.Model2.生成迁移文件3.执行迁移5.定义属性1.字段类型2.字段选项3.关系模型实例1.类的属性2.创建对象3.实例的属性模…...
idea 新建servlet 访问提示404 WebServlet注解找不到包 报错
检查访问路径是否设置正确 如果设置为name “/testServlet”,则会404 WebServlet注解报错找不到包 检查是否引入了tomcat依赖包...
【EA-ISET协会】Elsevier|2区智慧农业类SCIEI, 进展顺,3个月左右录用~
一、期刊简介 2区智慧农业类SCI&EI 【期刊简介】IF: 3.0-4.0, JCR2区, 中科院4区; 【检索情况】SCI&EI双检,正刊; 【终审周期】走期刊部系统,3个月左右录用; 二、征稿范围 大数据和遥感技术在智慧农业中…...
Class类getName获取类名方法详细说明
1.说明 在java.lang.Class类中有一个获取类名的方法: public String getName() 其返回的是该对象表示的类或接口的名称。 返回由这个Class对象表示的实体的字符串名称, 这个实体可以是: class, interface, array class, primitive type, vo…...
凉而不冷 柔而不弱 三菱重工海尔舒适风科技助您整夜安眠
古人云:安寝乃人生乐事。可随着夏天的到来,昼长夜短,家里的老人、儿童、父母都存在不同的入睡苦恼。对于儿童来说,空调温度调的太低容易踢被子着凉,温度调的高又怕孩子满头大汗;父母自身也会因为半夜帮孩子…...
YOLOv5基础知识入门(7)— NMS(非极大值抑制)原理解析
前言:Hello大家好,我是小哥谈。NMS是指非极大值抑制(non maximum suppression),它是一种常用于物体检测任务的算法。在物体检测中,通常会有多个预测框(bounding box)被提议出来&…...
Gpt微信小程序搭建的前后端流程 - 后端基础框架的搭建(三)
Gpt微信小程序搭建的前后端流程 - 后端基础框架的搭建(三) Gpt微信小程序 只需要几个API,API上一小节也有讲到。直接用 gin 或者 beego 简单搭web服务器就够了。我们这里还用 go-micro微服务 去搭建,主要也是为了学以致用,把之前go-micro系列…...
jstat(JVM Statistics Monitoring Tool):虚拟机统计信息监视工具
jstat(JVM Statistics Monitoring Tool):虚拟机统计信息监视工具 用于监视虚拟机各种运行状态信息的命令行工具。 它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、即时编译等运行时数据,在没有GUI图形界面、只提…...
【ARM】Day6 cotex-A7核UART总线实验
cotex-A7核UART总线实验 1. 键盘输入一个字符‘a’,串口工具显示‘b’ 2. 键盘输入一个字符串"nihao",串口工具显示“nihao” uart.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_rcc.h" #include "stm3…...
HTTPS代理搭建技巧分享
今天我们来分享一下如何搭建一个能够实现中间人 检测和防护的HTTPS代理。保护我们的网络通信安全是至关重要的,让我们一起学习如何构建一个安全可靠的HTTPS代理吧! 什么是中间人 ? 首先,让我们来了解一下什么是中间人 。中间人 是…...
第四章:树形结构的关联式容器(map+set)
系列文章目录 文章目录 系列文章目录前言1、关联式容器与序列式容器1.1 键值对 2、set的介绍3、multiset的介绍3.1 接口count与容器multiset 4、map的介绍4.1 接口insert4.2 operator[]和at 5、multimap的介绍 前言 根据应用场景的不桶,STL总共实现了两种不同结构的…...
SpringBoot +Vue3 简单的前后端交互
前端:Vue3 创建项目: npm create vuelatest > cd <your-project-name> > npm install > npm run dev 项目结构图如下: 1、查看入口文件内容:main.js 代码如下: import ./assets/main.css impor…...
【Android】Mobile-Security-Framework-MobSF Manifest 静态扫描规则
前言 移动安全框架(MobSF)是一个自动化的一体化移动应用程序(Android/iOS/Windows)测试、恶意软件分析和安全评估框架,能够执行静态和动态分析。MobSF支持移动应用程序二进制文件(APK、XAPK、IPA和APPX&am…...
【C++】初谈迭代器
文章目录 前言一、什么是迭代器二、迭代器的分类三、迭代器的用法总结 前言 迭代器是一种可以访问和遍历容器中元素的对象,它类似于指针,但是具有更多的功能和灵活性。本文将介绍C迭代器的基本概念、分类、用法和注意事项。 一、什么是迭代器 迭代器&a…...
PL端案例开发手册
目 录 前 言 1 工程编译、程序加载方法 1.1 工程编译 1.2 程序加载 2 led-flash 2.1 案例说明 2.2 操作说明 2.3 关键代码 更多帮助 前 言 本文主要介绍PL端案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Unified 20…...
华为OD-整数对最小和
题目描述 给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值 代码实现 # coding:utf-8 class Solution:…...
Ubuntu 22LTS 配置静态IP
可行方法,需界面配置 转载自:哔哩哔哩链接地址 命令行配置:待补充...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
