Python中的QQ图

机器算法验证 可能性 正态分布 数理统计 描述性统计 QQ图
2022-03-28 04:46:26

我使用以下代码生成了一个 qq 图。我知道qq plot是用来检查数据是否正常分布的。我的问题是 qq 图中的 x 和 y 轴标签表示什么,r 平方值表示什么?

  N = 1200
  p = 0.53
  q = 1000
  obs = np.random.binomial(N, p, size = q)/N

import scipy.stats as stats

z = (obs-np.mean(obs))/np.std(obs)

stats.probplot(z, dist="norm", plot=plt)
plt.title("Normal Q-Q plot")
plt.show()

在此处输入图像描述

我知道已经有关于qq plot的讨论,但是我无法理解尽管经历了那个讨论的概念。

2个回答

Macond 的回答是准确的,但是从原始帖子来看,我认为简化措辞可能会有所帮助。

QQ 图代表“分位数-分位数图”

这是一个图,其中轴被有意变换以使正态(或高斯)分布出现在一条直线上换句话说,完全正态分布将完全遵循斜率 = 1 且截距 = 0 的线。

因此,如果图看起来不是——大致上——一条直线,那么潜在的分布就不是正态分布的。例如,如果它向上弯曲,则“高传单”值比预期的要多。(该链接提供了更多示例。)


  1. x & y 标签代表什么?

理论分位数沿 x 轴放置也就是说,x 轴不是您的数据,它只是对您的数据应该在哪里的预期,如果它是正常的。

实际数据沿 y 轴绘制

这些值是与平均值的标准偏差。所以,0是数据的平均值,1是 1 个标准差,等等。这意味着,例如,68.27%如果你有一个正态分布,你的所有数据的平均值应该在 -1 和 1 之间。

  1. 什么是R2价值是什么意思?

R2value 对于这种情节并不是特别有用。 R2通常用于确定一个变量是否依赖于另一个变量。好吧,您正在将理论值与实际值进行比较。所以必然会某种R2. (例如,即使是随机均匀分布也会有适度的体面R2.)


最后,还有一个很少使用的类似图,称为pp 图如果您有兴趣关注大量数据所在的位置,而不是极端数据,则此图会更有用。

Y 轴显示观测分布值,X 轴显示理论分布值。

每个点都是一个分位数。假设图上有 100 个点,第一个点(左下角的那个)表示一个区间的上限,当从最小到最大排序时,最小的 1% 的数据点相应的分布停留在这个区间。同样,第二个点是区间的上限,分布中最小的 2% 的数据点位于该区间。这就是分位数的概念。但这并不限于有 100 个区间的情况,它是一个通用概念,您可以有尽可能多的区间,那么您将有那么多的分位数来描述区间的边界。

该图的特别之处在于,每个点的位置决定了两个分布中给定分位数的实际值,作为轴上的对应值。假设再次有 100 个这样的点(分位数),这个图告诉我们观察到的分布中最小的 1% 的数据点介于 (, -3.5] 并且理论分布中最小的 1% 的数据点介于 (, -3.2]。通过这种方式,您可以看到每个区间边界在两个分布中的位置。

我在整个答案中都使用了数据点,例如有序数据点等。这是指离散分布,但这个概念可以推广到连续分布。

R2是衡量点与红线拟合程度的指标。如果两个轴具有相同的分布,则所有点都将完全在线上,并且R2等于 1。您可以在任何解释线性回归的文本中了解更多信息。