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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 史上最全面Java面试汇总(面试题+答案)

    JAVA面试精选【Java基础第一部分】JAVA面试精选【Java基础第二部分】JAVA面试精选【Java基础第三部分】JAVA面试精选【Java算法与编程一】JAVA面试精选【Java算法与编程二】Java高级工程师—面试(1)Java高级工程师—面试(2)Java高级工程师—面试(3)BAT/网易等面试心得阿里历年面试题Java中高级面试题数据…

    2022年4月7日
    39
  • springboot框架有哪些技术_Springboot常用注解

    springboot框架有哪些技术_Springboot常用注解✍、SpringBoot框架技术总结(一)1、SpringBoot简介我们之前的SSM还是使用起来不够爽。还需要写很多的配置才能进行正常的使用。实现一个功能需要引入很多的依赖,尤其是要自己去维护依赖的版本,特别容易出现依赖冲突等问题。SpringBoot就能很好的解决上述问题。中文文档:https://doc.springcloud.io/spring-boot/index.html1.1、SpringBoot是什么SpringBoot是基于Spring开发的全新框架,相当于对Spri

    2022年8月20日
    9
  • opkg软件源设置[通俗易懂]

    opkg软件源设置[通俗易懂]opkg软件源定义在/etc/opkg/distfeeds.conf(更新/etc/opkg.conf并没有什么卵用)文件中,包含软件源索引的目录路径。分为base,luci,management,packages,routeing,telephony多个目录。每个目录存放对应的packages和索引文件。如果想更新base部分的包,请在添加相应的目录名称:vim/etc/o

    2022年5月22日
    192
  • vscode 中 整理代码的快捷键_vscode格式化代码_vscode格式化代码快捷键

    vscode 中 整理代码的快捷键_vscode格式化代码_vscode格式化代码快捷键3 安装 VsCode 格式化代码插件搜索并安装 Beautify 格式化代码插件使用指南 打开要格式化的文件 gt F1VSCode 如何格式化或美化 js css 代码 本经验介绍在 VSCode 查看代码时 如何美化不换行的代码 以及如何格式化 vscode 格式化代码的快捷键如下 来源于这里 OnWindowsShi Alt FOnMacShift Option FOn

    2025年9月24日
    3
  • c++int转换成char_字符数字转为int型

    c++int转换成char_字符数字转为int型1.通过ascii码:chara=’0′;intia=(int)a;/*notethattheintcastisnotnecessary–intia=awouldsuffice*/cout<<ia<<endl;结果如下:可以看出这种方法得到的其实是char对应的ascii码。因为ascii码…

    2022年10月2日
    4
  • iden2021.3激活码破解方法

    iden2021.3激活码破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    62

发表回复

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

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