python画qq图_python绘制散点图

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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)

python画qq图_python绘制散点图

然后,绘制目标数据(这里使用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)

python画qq图_python绘制散点图

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

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

python画qq图_python绘制散点图

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

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

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

python画qq图_python绘制散点图

还是比较方便就可以绘制的,那么比较两幅 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169324.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月10日 下午2:00
下一篇 2022年8月10日 下午2:16


相关推荐

  • php网站开发实例教程源码,PHP+MYSQL网站开发全程实例

    php网站开发实例教程源码,PHP+MYSQL网站开发全程实例1 从观念的引述 程序代码解析到范例的延伸应用 给您最完整的学习流程 2 实务网站范例 所有技术整合运用 实作技巧一览无遗 3 在 PHP 的程序设计中 以高阶的程序设计 配上灵活的图解 增加您程序设计的功力 也能够了解其演算的过程 4 MySQL 数据库设计方面 使用数据库的正规化的方法解决了数据表的分割 来建立关系型数据库 使您有系统的处理现实生活的程序设计 5 深入对象导向程序设计 全新视界

    2026年3月19日
    1
  • Java的三种注释

    Java的三种注释Java基础是java初学者的起点,是帮助你从小白入门到精通必学基础课程!为初学者而著!Java300集>>>适合准备入行开发的零基础员学习Java,基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。配套学习:Java初学者入门教程>>>Java注释:单行、多行和文档注释注释是对程序语言的说明,有助于开发者和用户之间的交流,方便理…

    2022年7月7日
    22
  • linux查看udp端口占用命令,详解Linux查看端口占用「建议收藏」

    linux查看udp端口占用命令,详解Linux查看端口占用「建议收藏」在使用计算机的过程中,有时会碰到端口被占用的情况,这时候需要查看端口占用情况进行问题排查。在linux系统中,端口占用的情况也时有发生,一般情况下可以使用lsof和netstat两个命令来查看端口占用情况。下面我们就分别介绍Linux查看端口占用用到的lsof和netstat命令:1、lsof命令lsof(listopenfiles)命令功能:列出当前系统打开文件。在linux系统中,一切皆文…

    2022年7月27日
    10
  • activity跳转activity不销毁

    activity跳转activity不销毁最近在做菜单,有三个界面分别用activity来显示,如ActivityA -> ActivityB -> ActivityC,返回键ActivityC -> ActivityB -> ActivityA,当从A进入到B时按返回键无法退到A,是因为在A进入B时用了finish()方法,把A给销毁了,如下:finish();IntentaToB=newI

    2022年5月22日
    48
  • 图解强化学习 |马尔可夫

    图解强化学习 |马尔可夫

    2026年3月14日
    2
  • 常见非对称加密算法

    常见非对称加密算法称加密技术的优点加密一计算量下 速度快 缺点是 加密方和解密方必须协商好秘钥 且保证秘钥安全 如果一方泄露了秘钥整个通信就会被激活成功教程 加密信息就不再安全了 和对称加密技术只使用一个秘钥不同 非对称机密技术使用两个秘钥进行加解密 一个叫做公钥 一个叫做私钥 私钥自己来保管 公钥可以公开 使用公钥加密的数据必须使用私钥解密 反之亦然公钥和私钥是两个不同的秘钥 因为这种加密方法被称为非对称几秒技术

    2025年10月31日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号