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

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

一般的步骤为:

  1. 将样本数据从小到大排序,假设排序后的样本数据为 x1x_1x1​,x2x_2x2​,…\dots…,xnx_nxn​。
  2. 对于 nnn 个样本数据,对应 nnn 个分位数。分位数的取值规则不一样,一个比较简答的规则是:第 kkk 个分位数的取值为 Qk=(k−0.5)/nQ_k=(k-0.5)/nQk​=(k−0.5)/n
  3. 横坐标为:x1x_1x1​,x2x_2x2​,…\dots…,xnx_nxn​,纵坐标为:所判断分布的累计分布函数在分位数的逆函数值 F−(Qk)F^-(Q_k)F−(Qk​),则为 QQ 图;若横坐标为:F(x1)F(x_1)F(x1​),F(x2)F(x_2)F(x2​),…\dots…,F(xn)F(x_n)F(xn​),纵坐标为:QkQ_kQk​,则为 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 统计分析与数据科学

PP图,QQ 图,及 python 画图相关推荐

  1. python绘制基因结构图_使用Python绘制GWAS分析中的曼哈顿图和QQ图

    [前言]其实这篇文章是为了简单介绍一下geneview的用法,它是一个Python高级库,建立在matplotlib的基础之上,专门用于基因组数据的可视化,目的是为了使创建高大上(精致)的基因组数据图 ...

  2. qq图的理解以及python的实现

    qq图的全称和概念 (quantile-quantile plot),这是一个和分位数(quantile)相关的图 qq图的原理是比较两组数据的累计分布函数图从而判断两组数据是否服从同一个分布. 作用 ...

  3. 正态性检验之QQ图与PP图

    正态性检验方法有很多种,主要可以分为以下几类: 图示法 统计方法 正态概率图.频率直方图.PP图.QQ图 偏度峰度检验.皮尔逊卡方检验.K-S检验.W检验.EP检验.秩和检验.游程检验等非参检验 按理 ...

  4. R绘制QQ图并解读QQ图

    R绘制QQ图并解读QQ图 目录 R绘制QQ图并解读QQ图 Q-Q图 R绘制QQ图 美化Q-Q图

  5. 机器学习实战2--蒙特卡洛方法与Q-Q图(2022/10/12)

    蒙特卡洛方法与Q-Q图 文章目录 蒙特卡洛方法与Q-Q图 蒙特卡洛方法 蒙特卡洛的定义和基本步骤 一些常用的概率论相关函数 使用蒙特卡洛验证大数定理 Q-Q图 Q-Q图的定义及用途 import nu ...

  6. python q-q图 和PP图

     转载于https://www.cnblogs.com/king-lps/p/7840268.html以供学习,侵权即删 一. QQ图 分位数图示法(Quantile Quantile Plot,简称 ...

  7. Q-Q图原理详解及Python实现

    [导读]在之前的<数据挖掘概念与技术 第2章>的文章中我们介绍了Q-Q图的概念,并且通过调用现成的python函数, 画出了Q-Q图, 验证了Q-Q图的两个主要作用,1. 检验一列数据是否 ...

  8. python画图程序有图-python画图程序

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天做的是用python实现画图,画出你想要的图案,只要你的想象力足够丰富,以及 ...

  9. python画折线图代码-Python折线图的分析过程和画图的方法

    说起折线图,很多人都觉得非常简单,不就是一些点连成的线吗?用 Excel 几秒钟就能画出一张折线图. 真的就这么简单吗? 想一想:在普通的折线图中,如何自动地添加一条代表平均值的横线?如何添加一条带箭 ...

最新文章

  1. Java项目:CRM客户关系管理系统(java+Springboot+maven+mysql)
  2. 线性代数与矩阵论 定理 1.5.6 拉格朗日插值公式
  3. NAS存储对称和非对称结构之前的区别概述
  4. 关于ASP无组件上传在2003下出错
  5. 将webstorm设置为eclipse风格
  6. 页面左边导航固定,右边自适应宽度
  7. golang go mod包管理自定义包及init初始化函数介绍
  8. python梯度下降法实现线性回归_梯度下降法的python代码实现(多元线性回归)
  9. javascript获取时间差
  10. python命令解析_python学习(命令行的解析)
  11. 自动化测试学习之路--json、dom编程
  12. HackerOne 平台诞生首个收入超200万美元的赏金猎人
  13. 计算机用户程序举例,劳顿管理信息系统习题集-第8章信息系统安全
  14. [原创]C#之探索发现:在WinForm上写的一个模拟分页小程序
  15. matlab安装软件 Matlab视频教程李大勇 MATLAB程序开发入门课程 MATLAB神经网络30个案例分析及源程序
  16. 【Android学习】图片
  17. php mysql 柱状图,使用EChat通过php连接mysql数据库从而实现将数据转换为柱状图
  18. Android中两个textview重叠,android – ViewFlipper中的Textview重叠问题..
  19. SP申请业务方案编写模板
  20. 使用nfs为k8s提供pv动态供给存储

热门文章

  1. 激光SLAM生成并保存pcd点云地图
  2. linux清除time_wait状态,linux – 超时期限到期后未清除TIME_WAIT连接
  3. csv格式用什么打开可以编辑_mov格式的视频如何转换mp9?可以用什么转换器?
  4. 蓝鲸智云体系介绍2(20210805)
  5. 连接数据库,OleDbDataReader读取mdb的数据
  6. php编程输出心形图案_趣味编程-php输出笛卡尔心形图案
  7. 元胞自动机:game of life
  8. Unity 引导动画的制作
  9. scala中val与def定义的区别
  10. 各种浏览器开启JavaScript的方法