python科研绘图:P-P图与Q-Q图
目录
什么是P-P图与Q-Q图
分位数
百分位数
Q-Q图步骤与原理
Shapiro-Wilk检验
绘制Q-Q图
绘制P-P图
什么是P-P图与Q-Q图
P-P图和Q-Q图都是用于检验样本的概率分布是否服从某种理论分布。
P-P图的原理是检验实际累积概率分布与理论累积概率分布是否吻合。若吻合,则散点应围绕在一条直线周围,或者实际累积概率与理论累积概率之差分布在对称于以0为水平轴的带内。
Q-Q图的原理是检验实际分位数与理论分位数是否吻合。若吻合,则散点应围绕在一条直线周围,或者实际分位数与理论分位数之差分布在对称于以0为水平轴的带内。
P-P图和Q-Q图都是用于检验样本的概率分布是否服从某种理论分布。当检验样本的分布为正态分布时,Q-Q图中直线斜率为待检测数据的标准差,截距为均值。
特点 | P-P图 | Q-Q图 |
---|---|---|
用途 | 评估累积概率分布函数(CDF)的拟合程度。 | 评估样本分布与理论分布的拟合程度。 |
横坐标 | 标准化的观测值(累积概率) | 理论分布的分位数 |
纵坐标 | 样本观测值的累积概率 | 理论分布的分位数 |
判定标准 | 直观看出CDF的拟合情况,直线越接近对角线越好。 | 点在45度对角线上越接近,拟合越好。 |
形状分析 | 对于偏斜、尖峰等分布形状的评估较为直观。 | 主要用于检验是否符合正态分布,对称性等。 |
数据量要求 | 对数据量要求不敏感,适用于各种分布的评估。 | 在小样本下效果较好,对数据量要求较高。 |
分位数
分位数, 指的就是连续分布函数中的一个点,这个点对应概率p。若概率0<p<1,随机变量X或它的概率分布的分位数Za,是指满足条件p(X≤Za)=α的实数。
百分位数
百分位数,统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数。
Q-Q图步骤与原理
1)将数据升序排列,根据各点在该组数据中的位置,算出累积概率,计算累积概率时(若共n个数),第i个数的累积概率不是i/n,而是用(i-0.5)/n。这可能是为了避免最后一个数的累积概率为1时,反算出的积分上限为正无穷。;
2)根据累积概率,反算出若为标准正态分布,高斯函数的积分上限;
3)积分上限为横坐标,数据点为纵坐标,画出数据分布的QQ图;
4)根据数据的均值与标准差,画出若该组数据为正态分布的QQ图。
P-P图与Q-Q图类似,把分位数换成累积概率。
Shapiro-Wilk检验
Shapiro-Wilk检验是一种用于检验样本数据是否来自正态分布的统计方法。该检验是由Samuel Shapiro和Martin Wilk于1965年提出的。它基于一个假设,即如果样本数据来自正态分布,那么样本数据的顺序统计量应该与对应的理论累积分布函数之间存在线性关系。
Shapiro-Wilk检验的零假设是数据来自正态分布。如果检验结果的p值小于所选定的alpha级别,那么否定假设被拒绝,意味着样本数据不是来自正态分布。反之,如果p值大于选定的alpha级别,则不能拒绝零假设,即数据可能来自正态分布。
绘制Q-Q图
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
plt.rcParams['font.sans-serif'] = ['SimHei'] # 防止中文标签乱码
plt.rcParams['axes.unicode_minus'] = False
# 生成一个示例数据集,这里使用随机数据
np.random.seed(0)
data = np.random.normal(loc=50, scale=5, size=40) # 均值=50,标准差=5
# 正态性检验 - Shapiro-Wilk检验,
# Shapiro-Wilk检验基于W统计量,对数据是否符合正态分布进行评估,适用于各种样本大小
stat, p = stats.shapiro(data)
print("Shapiro-Wilk正态性检验统计量:", stat)
print("Shapiro-Wilk正态性检验p值:", p)
plt.figure(figsize=(6, 6))
# 绘制概率图(probability plot)
# stats.probplot函数通过最小二乘法来估计一组数据的分位数对,并利用线性回归技术求出分位数图上的理论值与实际值的直线方程。
stats.probplot(data, plot=plt, dist='norm', fit=True, rvalue=True)
plt.title('Probability Plot (Q-Q Plot)')
plt.legend()
plt.grid(True)
plt.tight_layout()
# 显示图形
plt.show()
Shapiro-Wilk正态性检验统计量: 0.9782676696777344
Shapiro-Wilk正态性检验p值: 0.6254295110702515
绘制P-P图
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
plt.rcParams['font.sans-serif'] = ['SimHei'] # 防止中文标签乱码
plt.rcParams['axes.unicode_minus'] = False
# 生成一个示例数据集,这里使用随机数据
np.random.seed(0)
data = np.random.normal(loc=50, scale=5, size=40) # 均值=50,标准差=5
# 正态性检验 - Shapiro-Wilk检验,
# Shapiro-Wilk检验基于W统计量,对数据是否符合正态分布进行评估,适用于各种样本大小
stat, p = stats.shapiro(data)
print("Shapiro-Wilk正态性检验统计量:", stat)
print("Shapiro-Wilk正态性检验p值:", p)
plt.figure(figsize=(6, 6))
# Create a P-P plot
stats.probplot(data, plot=plt)
# Customize the plot if needed
plt.title('P-P Plot')
plt.xlabel('Theoretical Quantiles')
plt.ylabel('Sample Quantiles')
# Show the plot
plt.show()
相关文章:

python科研绘图:P-P图与Q-Q图
目录 什么是P-P图与Q-Q图 分位数 百分位数 Q-Q图步骤与原理 Shapiro-Wilk检验 绘制Q-Q图 绘制P-P图 什么是P-P图与Q-Q图 P-P图和Q-Q图都是用于检验样本的概率分布是否服从某种理论分布。 P-P图的原理是检验实际累积概率分布与理论累积概率分布是否吻合。若吻合…...

浅尝:iOS的CoreGraphics和Flutter的Canvas
iOS的CoreGraphic 基本就是创建一个自定义的UIView,然后重写drawRect方法,在此方法里使用UIGraphicsGetCurrentContext()来绘制目标图形和样式 #import <UIKit/UIKit.h>interface MyGraphicView : UIView endimplementation MyGraphicView// Onl…...

网络安全黑客技术自学
前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…...

【文件读取/包含】任意文件读取漏洞 afr_3
1.1漏洞描述 漏洞名称任意文件读取漏洞 afr_3漏洞类型文件读取/包含漏洞等级⭐⭐⭐⭐⭐漏洞环境docker攻击方式 1.2漏洞等级 高危 1.3影响版本 暂无 1.4漏洞复现 1.4.1.基础环境 靶场docker工具BurpSuite 1.4.2.环境搭建 1.创建docker-compose.yml文件 version: 3.2 servi…...
第四章:单例模式与final
系列文章目录 文章目录 系列文章目录前言一、单例模式二、final 关键字总结 前言 单例模式与final关键字。 一、单例模式 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。就像是经典的棋谱,不同的棋局,我…...

深入Android S(12.0) 探索 Android Framework 之 SystemServer 进程启动详解
深入学习 Android Framework 第三:深入Android S(12.0) 探索 Android Framework 之 SystemServer 进程启动详解 文章目录 深入学习 Android Framework前言一、Android 系统的启动流程1. 流程图2. 启动流程概述 二、源码详解1. 时序图2. 源代码1、ZygoteInit # main…...

搜维尔科技:【软件篇】TechViz是一款专为工程设计的专业级3D可视化软件
在沉浸式房间内深入研究您自己的 3D 数据 沉浸式房间是一个交互式虚拟现实空间,其中每个表面(墙壁、地板和天花板)都充当投影屏幕,创造高度沉浸式的体验。这就像您的 3D 模型有一个窗口,您可以在其中从不同角度走动、…...
android Handler
一、Handler的作用 1、Handler的作用是在andorid中实现线程间的通信。我们常说的说的,子线程处理逻辑,主线程更新UI是上述情况的一个子集。 二、源码分析 1、Handler源码 源码地址:http://androidxref.com/7.1.1_r6/xref/frameworks/base/co…...

【Ubuntu·系统·的Linux环境变量配置方法最全】
文章目录 概要读取环境变量的方法小技巧 概要 在Linux环境中,配置环境变量是一种常见的操作,用于指定系统或用户环境中可执行程序的搜索路径。 读取环境变量的方法 在Linux中,可以使用以下两个命令来读取环境变量: export 命令…...
Django之模板层
【1】模板之变量 在Django模板中要想使用变量关键是使用点语法。 获取值的语法是:{{ 变量名 }} Python中所有的数据类型包括函数,类等都可以调用 【2】模板之过滤器 过滤器语法 {{ obj | filter_name:param }} obj:变量名字&…...

社区论坛小程序系统源码+自定义设置+活动奖励 自带流量主 带完整的搭建教程
大家好啊,又到了罗峰来给大家分享好用的源码的时间了。今天罗峰要给大家分享的是一款社区论坛小程序系统。社区论坛已经成为人们交流、学习、分享的重要平台。然而,传统的社区论坛往往功能单一、缺乏个性化设置,无法满足用户多样化的需求。而…...

2023亚太杯数学建模C题思路解析
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…...
acme在同一台服务器上设置多个Ali_key实现自动ssl申请和续期
在同一台服务器上设置多个Ali_key,您可以按照以下步骤进行操作: 首先,确保您已经安装了acme.sh工具。如果没有安装,请先安装acme.sh,您可以使用以下命令安装acme.sh: curl https://get.acme.sh | sh安装完…...
乐观锁与悲观锁
乐观锁 乐观锁是一种并发控制的机制,其核心思想是假设多个事务之间的冲突是不太可能发生的,因此在事务处理之前不会加锁,而是在事务提交的时候再检查是否有冲突。如果发现冲突,就会回滚事务,重新尝试。 实现乐观锁的方…...

【算法】堆排序
算法-堆排序 前置知识 堆(即将更新) 思路 我们现在有一个序列,怎么对它排序? 这是一个非常经典的问题,这里我们使用一个借助数据结构的算法——堆排序解决。 这里有一个序列,要对它升序排序 4 7 3 6 5 …...

51单片机应用从零开始(三)
51单片机应用从零开始(一)-CSDN博客 51单片机应用从零开始(二)-CSDN博客 详解 KEIL C51 软件的使用建立工程-CSDN博客 详解 KEIL C51 软件的使用设置工程编绎与连接程序-CSDN博客 目录 1. 用单片机控制第一个灯亮 2. 认识单片…...

如何在 Nginx Proxy Manager(NPM)上部署静态网站
前言 众所周知,我们在之前介绍过 Nginx Proxy Manager(以下简称 NPM) 这个反向代理的神器,对于一些 Docker 搭建的 Web 项目,NPM 能够很轻松地给他们做反向代理。 然而对于一些静态网站,小伙伴们可能不知道怎么用 NP…...
http的几种方法
http的几种方法在 rfc2616 中进行了定义: https://www.rfc-editor.org/rfc/rfc2616.html#page-51 HEAD方法:HEAD方法和GET方法相同,只不过服务端只返回头,不返回消息体。GET方法:用于获取资源POST方法:用于…...
var、let、const关键字的特性,以及let、const暂时性死区的作用
var、let和const都是JavaScript中的关键字,用于声明变量。 var关键字声明的变量是函数作用域或全局作用域的,它在整个函数或全局范围内都是可用的。var没有块级作用域。 let关键字声明的变量是块级作用域的,它只在包含它的代码块中可用。le…...

IDEA 高分辨率卡顿优化
VM设置优化 -Dsun.java2d.uiScale.enabledfalse 增加该条设置,关闭高分切换 https://intellij-support.jetbrains.com/hc/en-us/articles/115001260010-Troubleshooting-IDE-scaling-DPI-issues-on-Windowsintellij-support.jetbrains.com/hc/en-us/articles/1…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...