PP图,QQ 图,及 python 画图

article/2025/9/24 14:55:30

统计学中有时会用到 PP 图 或 QQ 图,用来看样本数据是否服从某一特定分布。

若 PP 或 QQ 图中的点基本落在一条 45度 的线上,则说明服从特定分布。

一般的步骤为:

  1. 将样本数据从小到大排序,假设排序后的样本数据为 x 1 x_1 x1 x 2 x_2 x2 … \dots x n x_n xn
  2. 对于 n n n 个样本数据,对应 n n n 个分位数。分位数的取值规则不一样,一个比较简答的规则是:第 k k k 个分位数的取值为 Q k = ( k − 0.5 ) / n Q_k=(k-0.5)/n Qk=(k0.5)/n
  3. 横坐标为: x 1 x_1 x1 x 2 x_2 x2 … \dots x n x_n xn,纵坐标为:所判断分布的累计分布函数在分位数的逆函数值 F − ( Q k ) F^-(Q_k) F(Qk),则为 QQ 图;若横坐标为: F ( x 1 ) F(x_1) F(x1) F ( x 2 ) F(x_2) F(x2) … \dots F ( x n ) F(x_n) F(xn),纵坐标为: Q k Q_k Qk,则为 PP 图。

PP 图与 QQ 图的功能基本一样,我见用 QQ 图的比较多。因为分位数的取值规则不一样,因此 QQ 图可能画的不太一样。

下面以正态分布的随机样本为例,用 python 画一下图形,专门的 QQ 图也可以调用 statsmodels 中的 ProbPlot 函数 (不是 scipy 中的 probplot,因为 scipy 中的 probplot 画的直线是拟合直线,并不是45度斜线)。

import scipy.stats as st
import matplotlib.pyplot as plt
import numpy as npimport statsmodels.api as sm
probplot = sm.ProbPlot(samples, dist = st.norm, loc = 5, scale = 2)
probplot.qqplot(line='45')n = 100
samples = st.norm.rvs(loc = 5, scale = 2, size = n)
samples_sort = sorted(samples)x_labels_q = samples_sort
y_labels_q = st.norm.ppf(x_labels_p, loc = 5, scale = 2)
plt.scatter(x_labels_q, y_labels_q)
plt.title('QQ plot for normal distribution samle')
plt.show()x_labels_p = np.arange(1/(2*n), 1, 1/n)
y_labels_p = st.norm.cdf(samples_sort, loc = 5, scale = 2)
plt.scatter(x_labels_p, y_labels_p)
plt.title('PP plot for normal distribution samle')
plt.show()

显示图形:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由于 ProbPlot 的分位数取值规则不同,从图形上看,ProbPlot 的 QQ 图与自己画的 QQ 图略微不一样。

转载于个人公众号:Python 统计分析与数据科学

在这里插入图片描述


http://chatgpt.dhexx.cn/article/ZRLjRgcD.shtml

相关文章

pptp服务搭建

1 检查系统是否支持pptp cat /dev/ppp 如果输出 cat: /dev/ppp: No such device or address 则说明可以正常架设pptp服务 2 设置内核转发,开启路由转发 vi /etc/sysctl.conf 添加 net.ipv4.ip_forward1 通过下面命令查看 sysctl -p 3更新yum相关源 wget http…

VPN服务搭建流程记录

之前,一直有想法搭建一套属于自己的VPN服务,但是,一直苦于"拖延症"的困扰,没有真正实际去实践。最近,终于打破了这个困扰,所以,也希望记录一下整体的搭建流程,操作系统Cen…

Guava常用方法

目录 简介 Maven依赖 字符串检查工具 NULL值检查 先决条件检查 判断对象是否为null 操作集合 简介 Guava,中文是石榴的意思,Guava项目,是基于java的Google的开源的工具类库,包含了许多被Google的java项目广泛依赖的核心库&…

【guava】基础用法

依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>29.0-jre</version></dependency> 不可变集合与对象 优点&#xff1a;1、线程安全 2、可用作常熟 ImmutableXXX 创建方式&…

guacamole 源码_Guacamole学习笔记

1: 介绍: Guacamole可以同HTML5来代理远程桌面协议(如: VNC, RDP, Telnet, SSH) 官网: http://guac-dev.org/ 2: 架构: 架构图: image.png 架构解释: 用户通过浏览器连接到Guacamole的服务端, Guacamole通过JS写的客户端是为用户提供服务, 服务端和客户端的通信是基于HTTP的私有…

Guacamole 介绍以及架构

目前在从事一些虚拟化解决方案方面的工作&#xff0c;最近项目有需求&#xff0c;希望能在浏览器上远程操作虚拟机。 此时发现了Guacamole&#xff0c;一个提供远程桌面的解决方案的开源项目&#xff0c;通过浏览器就能操作虚拟机&#xff0c;适用于Chrome&#xff0c;Firefox&…

使用Google Guava来编写优雅的代码一Guava简介

以往我们在使用工具包的时候首先想到是著名的Apache的Commons系列,今天我要介绍的是同样出色&#xff0c;并且目前发展比Apache Commons系列更为迅速的Google Guava库。 Google Guava库是一个非常优秀的包含很多Java工具类集的库&#xff0c;广泛使用在Google公司内部&#xf…

guacamole学习小结(一)

一、快速安装 https://blog.csdn.net/qq_38781075/article/details/106459458 二、整体理解 先放一张经典的图。 guacamole最重要的作用还是连接远程服务器的&#xff0c;可以连接多台服务器&#xff0c;连接不同的远程协议的服务器。使得用户能远程快捷的访问远程桌面。它跨…

guacamole 认识

简介&#xff1a;guacamole是apache开源的一款连接远程机器(类似window机器的mstsc工具以及linux的 xfreerdp远程工具)的web应用。 官网&#xff1a;http://guacamole.apache.org/ 一、介绍 1、先看看官网提供的架构图 其中guacamole将架构图中 HTML5(JavaScript编写)以及g…

Guacamole搭建教程

目录 安装系统环境安装依赖环境安装依赖包 下载安装包服务端安装解压并安装&#xff1a;在当前目录下继续执行&#xff1a;安装完成之后&#xff0c;可以使用以下来看guacd是否安装成功&#xff1a; 客户端安装安装安装git安装maven 下载客户端并解压创建/etc/guacamole/文件目…

使用EasyDarwin+FFmpeg实现rtsp推流

一、背景 ​ 最近在学习ffmpeg的基本操作,ffmpeg功能非常强大&#xff0c;可以运行音频和视频多种格式的录影、转换、流功能&#xff0c;包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库&#xff0c;以及libavformat——一个音频与视频格式转换库 可以利用ff…

windows 10 安装EasyDarwin流服务器推流、本地存储

1、EasyDarwin介绍 EasyDarwin 是一款开源的、高性能的rstp流媒体服务器&#xff0c;基于go语言开发。主要功能有&#xff1a;支持rtsp推流分发、支持rtsp拉流分发、录像、检索、回访、关键帧缓存、秒开画面、Restful接口、web后台管理、分布式负载均衡等特点。 2、安装部署&a…

从零开始搭建EasyDarwin环境——Windows系统开发环境Golang的搭建

EasyDarwin在语言上服务端使用的是Golang&#xff0c;前端网页是Vue&#xff0c;因此我们需要有Golang和node的开发环境。上一篇我们介绍了Linux环境下的搭建&#xff0c;本章我们将说明一下如何在Windows下搭建起Golang环境。 一、下载 Go包 Go的官方网站&#xff1a;http://…

EasyDarwin源码分析(三)——rtsp-client

rtsp-client.go 这个模块主要实现了客户端的拉流功能。也就是在网页上点击“拉流分发”按钮后&#xff0c;easydarwin会向用户填写的源地址拉流&#xff0c;然后再转发出去&#xff0c;在向源地址拉流的时候&#xff0c;easydarwin相当于是一个rtsp客户端。所以这里使用rtsp-c…

EasyDarwin源码分析(一)——main.go

main.go ​ easydarwin源码的代码量不是很多&#xff0c;主要的代码也就集中在下面的几个文件夹中&#xff0c;核心业务的代码也就主要集中在rtsp包中。 ​ 而且用Go语言写的代码&#xff0c;不像springboot那样&#xff0c;你在读源码前至少要对Springboot框架有一定的学习&a…

关于EasyDarwin二次开发编译后无法以服务启动的问题

问题描述&#xff1a; 在win7上二次开发EasyDarwin后&#xff0c;编译出的EasyDarwin.exe运行正常&#xff0c;或是使用ServiceInstall-EasyDarwin.exe在系统中注册服务&#xff0c;启动服务也正常。 于是打包将其部署在win server 2008上&#xff0c;发现如果直接运行EasyDar…

EasyDarwin接口的使用——使用C++编写客户端实现与EasyDarwin服务器的交互

EasyDarwin提供了接口供客户端使用&#xff0c;以实现客户端与其的交互。比如&#xff0c;根据EasyDarwin的8.1.0版本的接口文档&#xff0c;有获取推流列表的接口如下所示&#xff1a; 我们可以测试一下上述接口。首先启动EasyDarwin服务器&#xff0c;启动后在浏览器&#xf…

EasyDarwin的交叉编译

easyDarwin的交叉编译 前言一、EasyDarwin简介二、配置环境介绍三、交叉编译过程1.go环境的搭建2.编译 后记 前言 最近项目有个需求是在嵌入式设备中运行一个RTSP服务器&#xff0c;满足推流到该服务器后&#xff0c;其他终端设备能够从这个RTSP服务器中拉RTSP流出来。找来找去…

EasyDarwin 流服务器搭建及相关软件教程

一、产品 运行 exe 文件 启动 服务器 双击 运行 EasyDarwin.exe 会出现如下界面&#xff1a; 在 浏览器打开 http://192.168.10.80:10008 2.解压ffmpeg 添加环境变量&#xff1a;复制C:\SoftWare\ffmpeg-6.0-essentials_build\bin路径&#xff0c;添加环境变量中 的用户变…

EasyDarwin —— ubuntu搭建rtsp服务,使用FFmpeg进行rtsp推拉流

开源流媒体服务器 EasyDarwin是由国内开源流媒体团队开发和维护的一款开源流媒体平台框架&#xff0c;从2012年12月创建并发展至今&#xff0c;从原有的单服务的流媒体服务器形式&#xff0c;扩展成现在的云平台架构的开源项目&#xff0c;更好地帮助广大流媒体开发者和创业型企…