如何使用Python画QQ图

本文介绍了如何使用Python通过statsmodels库创建QQ图,展示了正态分布数据与均匀分布数据的区别,帮助读者理解数据是否符合正态分布。通过正太分布和均匀分布的实例,直观展示QQ图在数据分布检验中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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度线,这表明它们不服从正态分布。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值