python画qq图_python绘制散点图

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


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

相关推荐

  • 【STM32】HAL库 STM32CubeMX教程十三—RTC时钟

    【STM32】HAL库 STM32CubeMX教程十三—RTC时钟前言:本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET6/STM32F103ZET62、STM32CubeMx软件3、IDE:MDK-Keil软件4、STM32F1xx/STM32F4xxHAL库知识概括:通过本篇博客您将学到:RTC时钟原理STM32CubeMX创建…

    2022年6月2日
  • 最新软件外包公司排名-中国IT人力外包公司排名

    最新软件外包公司排名-中国IT人力外包公司排名最新软件外包公司排名-中国IT人力外包公司排名软件(中国大陆及香港用语,台湾称作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。简单的说软件就是程序加文档的集合体。另也泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。那么软件企业哪些好呢?1,北京华盛恒辉软件开发可以来这里,这个首叽的开始数字是壹伍扒中间的是壹壹叁叁最后的是驷柒驷驷,按照顺序组合起来就可以找到。科技有限公司上榜理由:华盛恒辉互联网是个神奇的大网,大数据开发和软件定制也是一种模式,这里提

    2022年4月29日
  • not found for libcrypto「建议收藏」

    not found for libcrypto「建议收藏」解决方法sudocp/usr/lib/libcrypto.35.dyliblibcrypto.35.dylib参考:Unabletoconfigureopenssl,libcryptonotfounderrorwithopenssllibraryinstalled

    2022年6月29日
  • yum 命令讲解「建议收藏」

    yum 命令讲解「建议收藏」(一)yum介绍Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 …

    2022年5月5日
  • hive类型转换_sqlserver数据类型转换

    hive类型转换_sqlserver数据类型转换hive数据类型转换规则及转换原则,日期类型转换

    2022年9月21日
  • Ubuntu卸载python3.6「建议收藏」

    Ubuntu卸载python3.6「建议收藏」注意:这里说一下,系统自带的python3.6可别乱删,这个是我自己下载的python3.6若你们有想卸载系统自带的python3.6,可千万别去卸载!一般会开机都开不起!安装多余的python3.6没有用,才使用下列命令卸载python3.6及其一些依赖软件包命令:sudoaptautoremovepython3.6…

    2022年5月30日

发表回复

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

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