Skip to content Skip to footer

如何使用Python画QQ图

QQ图,全称quantile-quantile plot,又称为分位图。通常用于判断一组数据是否服从某种理论分布,大多数情况用于判断是否服从正太分布。尽管Q-Q图不是正式的统计检验,但它提供了一种直观、简单方法来检查数据集是否为正态分布的。本文介绍如何使用Python创建QQ图。

正太分布数据示例

首先准备100个示例数据:

import numpy as np

# 创建100个服从正太分布的数据集

np.random.seed(0)

data = np.random.normal(0,1, 1000)

# 查看前10个数据

data[:10]

array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799,

-0.97727788, 0.95008842, -0.15135721, -0.10321885, 0.4105985 ])

我们可以使用statsmodels包中qqplot函数创建QQ图:

import statsmodels.api as sm

import matplotlib.pyplot as plt

# 创建 Q-Q 图,并增加 45度线

fig = sm.qqplot(data, line='45')

plt.show()

QQ图的X轴现实理论分位数,这意味着显示不是实际数据,而是实际数据在正态分布下的位置。Y轴显示实际数据。这意味着如果数据值沿45度角的大致直线下降,那么数据分布服从正态分布。

我们可以看到上面的Q-Q图中数据值倾向于接近45度直线,这意味着数据可能是正态分布的。这并不奇怪,因为我们用numpy.random.normal()函数生成的100个数据值。

均匀分布数据示例

下面创建均匀分布数据集,然后利用该数据画QQ进行对比:

# 创建 100 均匀分布数据集

data = np.random.uniform(0,1, 1000)

# 画QQ图

fig = sm.qqplot(data, line='45')

plt.show()

显然图中显示数据不遵循红色的45度线,这表明它们不服从正态分布。

Copyright © 2088 我的世界杯_瑞奇马丁世界杯主题曲 - msdc8.com All Rights Reserved.
友情链接