qq图有两个作用:1、检验一组数据是否服从某一分布。2、检验两个分布是否服从同一分布。qq图全称是quantile-quantile plot,从名称中可以了解到是和分位数相关的图。由于最近在做数据分析时用到了,然而看了一些博客,要么是qq图讲解的比较详尽但是没有使用Python;要么是使用Python语言但是没有讲清楚原理。基于此,想写一篇博客尽量讲清楚原理并且用Python实现出来。

qq图原理是比较两组数据的累计分布函数来判断两组数据是否是服从同一分布,所以第一步我们应该做两组数据的累计分布。首先,作为对比我们看一下标准正太分布的累计分布图。

from scipy import stats
import numpy as np
x = np.arange(-5, 5, 0.1)
y = stats.norm.cdf(x, 0, 1)
plt.plot(x, y)

然后,绘制目标数据(这里使用UCI机器学习数据库中的churn数据集)的累计分布函数图。

import pandas as pd
churn_raw_data = pd.read_csv('churn.txt')
day_minute = churn_raw_data['Day Mins']
sorted_ = np.sort(day_minute)
yvals = np.arange(len(sorted_))/float(len(sorted_))
plt.plot(sorted_, yvals)

直观上对比,目标累计分布函数图和标准正太累计分布函数图差异不大,事实是不是这样呢?最后我们就可以做qq图做对比。

x_label = stats.norm.ppf(yvals)  #对目标累计分布函数值求标准正太分布累计分布函数的逆
plt.scatter(x_label, sorted_)

既然做对比那么对比的标准是什么呢,我们说如果所有点基本上在一条直线上,我们可以说这两个分布是同一分布。所以根据qq图,我们得出结论目标数据组服从正太分布。

上面是为了说明qq图的原理以及怎么使用pyhton进行手动操作,作为数据分析领域里比较全能的Python,它当然也是有包可以直接绘制qq图。

stats.probplot(day_minute, dist="norm", plot=plt)
plt.show()

还是比较方便就可以绘制的,那么比较两幅 qq图发现我们的理解是没有问题的。 qq图可以比较直观的比较两个分布是否相同的,在数据分析时也是比较常用。

参考文献:

https://stackoverflow.com/questions/3209362/how-to-plot-empirical-cdf-in-matplotlib-in-python

https://stats.stackexchange.com/questions/139708/qq-plot-in-python

https://docs.scipy.org/doc/scipy-0.16.0/reference/generated/scipy.stats.probplot.html

python 绘制qq图相关推荐

  1. python 绘制q-q图代码

    python 绘制q-q图代码 今天,我们附上一份python绘制q-q图的代码 简单介绍一下思路 1.首先,我们需要对我们绘制的两份数据排序,然后,用散点图绘制在图例上 2.之后,绘制散点拟合曲线, ...

  2. python绘制qq图_Python中作QQ图(quantilequantile Plot)

    Q-Q图主要可以用来回答这些问题: 两组数据是否来自同一分布 PS:当然也可以用KS检验,利用python中scipy.stats.ks_2samp函数可以获得差值KS statistic和P值从而实 ...

  3. matlab 画qq图,科学网—[转载]R语言绘制QQ图 - 刘朋的博文

    R语言绘制QQ图 实例1: #############加载数据 data R R=apply(R,2,as.numeric) #R语言将字符串矩阵转化为数值型矩阵,apply()函数里面的第2个值,如 ...

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

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

  5. python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  6. python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  7. python话雷达图-PYTHON绘制雷达图代码实例

    这篇文章主要介绍了PYTHON绘制雷达图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.雷达图 import matplotlib.py ...

  8. python绘制雷达图代码实例-PYTHON绘制雷达图代码实例

    这篇文章主要介绍了PYTHON绘制雷达图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.雷达图 import matplotlib.py ...

  9. python画出的雷达图效果-PYTHON绘制雷达图代码实例

    这篇文章主要介绍了PYTHON绘制雷达图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.雷达图 import matplotlib.py ...

最新文章

  1. kafka 集群--3个broker 3个zookeeper创建实战
  2. zippo油和zorro油的区别_陶瓷轴承润滑油的性能质量最指标油的区别?_搜狐汽车...
  3. NFS网络文件系统服务
  4. python内置数据结构字符串
  5. SAP IBASE hierarchy remove - step2 handling
  6. 配置Server Side TAF
  7. 蓝桥杯第八届省赛JAVA真题----字母组串
  8. 分布式搜索elasticsearch
  9. [转载] ANTLR——嵌入文法的Actions
  10. Windows Phone Developer Registration 开发人员无法连接注册解决
  11. coturn 搭建 stun turn 服务器
  12. 计算机实验室安全员责任书,实验室安全目标责任书
  13. Linux静态库和动态库区别
  14. 三村合建水厂问题研究 (代码)
  15. *TEST 4 for NOIP 谨慎打表
  16. LEF和GDS匹配问题
  17. Python之数据加密与解密及相关操作(hashlib、hmac、random、base64、pycrypto)
  18. 数据结构——树和二叉树章节思维导图
  19. keep跑步数据修改器_卖轻食、造手环,Keep你变了
  20. 怎么修改视频文件的修改时间?

热门文章

  1. Verbatim字符串
  2. 一个屌丝程序猿的人生(十五)
  3. Blender软件介绍与使用心得
  4. ERP发货系统的修改(四十三)
  5. 手把手教你如何PCB板材选型(一)
  6. 【2017年总结】--吾生也有涯,而知也无涯
  7. monty python and the holy grail_monty python and the holy grail - 百度学术
  8. 坚果投影仪怎么才能访问电脑共享文件,详细的操作方法分享
  9. Android蓝牙音乐获取歌曲信息
  10. caffe学习之conver_imageset.bin的使用方法,caffe下图片转lmdb格式类型数据总结