如何绘制qq图_python画图

如何绘制qq图_python画图Q-Q图主要可以用来回答这些问题:两组数据是否来自同一分布PS:当然也可以用KS检验,利用python中scipy.stats.ks_2samp函数可以获得差值KSstatistic和P值从而实现判断。两组数据的尺度范围是否一致两组数据是否有类似的分布形状前面两个问题可以用样本数据集在Q-Q图上的点与参考线的距离判断;而后者则是用点的拟合线的斜率判断。用Q-Q图来分析分布的好处都有啥?(谁说对了…

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

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

Q-Q图主要可以用来回答这些问题:

两组数据是否来自同一分布

PS:当然也可以用KS检验,利用python中scipy.stats.ks_2samp函数可以获得差值KS statistic和P值从而实现判断。

两组数据的尺度范围是否一致

两组数据是否有类似的分布形状

前面两个问题可以用样本数据集在Q-Q图上的点与参考线的距离判断;而后者则是用点的拟合线的斜率判断。

用Q-Q图来分析分布的好处都有啥?(谁说对了就给他)

两组数据集的大小可以不同

可以回答上面的后两个问题,这是更深入的数据分布层面的信息。

那么,Q-Q图要怎么画呢?

将其中一组数据作为参考,另一组数据作为样本。样本数据每个值在样本数据集中的百分位数(percentile)作为其在Q-Q图上的横坐标值,而该值放到参考数据集中时的百分位数作为其在Q-Q图上的纵坐标。一般我们会在Q-Q图上做一条45度的参考线。如果两组数据来自同一分布,那么样本数据集的点应该都落在参考线附近;反之如果距离越远,这说明这两组数据很可能来自不同的分布。

python中利用scipy.stats.percentileofscore函数可以轻松计算上诉所需的百分位数;而利用numpy.polyfit函数和sklearn.linear_model.LinearRegression类可以用来拟合样本点的回归曲线

from scipy.stats import percentileofscore

from sklearn.linear_model import LinearRegression

import pandas as pd

import matplotlib.pyplot as plt

# df_samp, df_clu are two dataframes with input data set

ref = np.asarray(df_clu)

samp = np.asarray(df_samp)

ref_id = df_clu.columns

samp_id = df_samp.columns

# theoretical quantiles

samp_pct_x = np.asarray([percentileofscore(ref, x) for x in samp])

# sample quantiles

samp_pct_y = np.asarray([percentileofscore(samp, x) for x in samp])

# estimated linear regression model

p = np.polyfit(samp_pct_x, samp_pct_y, 1)

regr = LinearRegression()

model_x = samp_pct_x.reshape(len(samp_pct_x), 1)

model_y = samp_pct_y.reshape(len(samp_pct_y), 1)

regr.fit(model_x, model_y)

r2 = regr.score(model_x, model_y)

# get fit regression line

if p[1] > 0:

p_function = “y= %s x + %s, r-square = %s” %(str(p[0]), str(p[1]), str(r2))

elif p[1] < 0:

p_function = “y= %s x – %s, r-square = %s” %(str(p[0]), str(-p[1]), str(r2))

else:

p_function = “y= %s x, r-square = %s” %(str(p[0]), str(r2))

print “The fitted linear regression model in Q-Q plot using data from enterprises %s and cluster %s is %s” %(str(samp_id), str(ref_id), p_function)

# plot q-q plot

x_ticks = np.arange(0, 100, 20)

y_ticks = np.arange(0, 100, 20)

plt.scatter(x=samp_pct_x, y=samp_pct_y, color=’blue’)

plt.xlim((0, 100))

plt.ylim((0, 100))

# add fit regression line

plt.plot(samp_pct_x, regr.predict(model_x), color=’red’, linewidth=2)

# add 45-degree reference line

plt.plot([0, 100], [0, 100], linewidth=2)

plt.text(10, 70, p_function)

plt.xticks(x_ticks, x_ticks)

plt.yticks(y_ticks, y_ticks)

plt.xlabel(‘cluster quantiles – id: %s’ %str(ref_id))

plt.ylabel(‘sample quantiles – id: %s’ %str(samp_id))

plt.title(‘%s VS %s Q-Q plot’ %(str(ref_id), str(samp_id)))

plt.show()

9dd1645bfc79b5316789a798fd38df51.png

效果如上图所示,在本例中所用的样本数据在左下稀疏,在右上集中,且整体往上偏移,说明其分布应该与参考数据是不一样的(分布形状不同),用KS检验得到ks-statistic: 0.171464; p_value: 0.000000也验证了这一点;但是其斜率在约为1,且整体上偏的幅度不大,说明这两组数据的尺度是接近的。

PS: 这里的方法适用于不知道数据分布的情况。如果想检验数据是否符合某种已知的分布,例如正态分布请出门左转用scipy.stats.probplot函数。

参考:

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

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

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


相关推荐

  • 智谱发布0.9B 轻量级 GLM-OCR:性能登顶,千次处理仅需0.1元

    智谱发布0.9B 轻量级 GLM-OCR:性能登顶,千次处理仅需0.1元

    2026年3月12日
    2
  • 基于遗传算法的函数极值求取_遗传算法计算二元函数最大值

    基于遗传算法的函数极值求取_遗传算法计算二元函数最大值前面在《遗传算法通识》中介绍了基本原理,这里结合实例,看看遗传算法是怎样解决实际问题的。有一个函数:f(x)=x+10sin5x+7cos4xf(x)=x+10\sin5x+7\cos4x求其在区间[-10,10]之间的最大值。下面是该函数的图像:在本例中,我们可以把x作为个体的染色体,函数值f(x)作为其适应度值,适应度越大,个体越优秀,最大的适应度就是我们要求的最大值。

    2025年11月7日
    6
  • jvm垃圾回收算法有哪些_jvm垃圾回收过程

    jvm垃圾回收算法有哪些_jvm垃圾回收过程JVM垃圾回收算法两个概念:新生代:存放生命周期较短的对象的区域。老年代:存放生命周期较长的对象的区域。相同点:都在Java堆上1.标记–清除算法执行步骤:标记:遍历内存区域,对需要回收的对象打上标记。清除:再次遍历内存,对已经标记过的内存进行回收。图解:缺点:效率问题;遍历了两次内存空间(第一次标记,第二次清除)。空间问题:容易产生大量内存碎片,当再需要一块比…

    2025年10月28日
    4
  • AODV路由协议详解

    AODV路由协议详解移动 AdHoc 网络 MobileAdhocN MANET 是一种无线自组织的网络 它允许一组可任意移动且支持无线通信的节点在没有固定的通信基础设施下进行通信 网络中任一节点都具备路由器的功能 可以接收和转发数据到 MANET 中的特定节点 由于 MANET 不依赖固定设施 MANET 被广泛应用于军事通信和抢险救灾等领域 AODV AdHocOn DemandDistan 路由协议是专门为移动 AdHoc 网络设计的路由协议 它是一个按需路由协议 只要当需要建立到目的节点的路

    2026年3月17日
    2
  • 串口服务器调试助手使用教程,如何配置串口服务器及串口调试的六个技巧

    串口服务器调试助手使用教程,如何配置串口服务器及串口调试的六个技巧串口服务器如何配置,很多用户都不清楚。今天,本文总结和阐述了如何配置串口服务器和串口调试的六个技巧:1.如何设置串口服务器的串口属性,比如波特率参数和数值?点击屏幕上的“设备”单元;手动键入“程序设置”;手动选择“程序”,最后手动输入“串口参数”。2.串口服务器怎么配置?首先要熟悉自己的操作环境和应用配置参数(熟悉各个串口的工作模式,熟悉主要参数中包含的网络参数,设备本身的信息内容,打印服务等相关…

    2022年6月3日
    55
  • js remove方法_js清除session

    js remove方法_js清除session//如果列表中有存在给定的值就删除//functionremoveClass(ele,txt){//varstr=ele.className,//ary=str.split(/\s

    2022年8月2日
    13

发表回复

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

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