问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

正态QQ图与正态值的偏差

创作时间:
作者:
@小白创作中心

正态QQ图与正态值的偏差

引用
51CTO
1.
https://blog.51cto.com/u_19261/13502204

正态QQ图是一种用于检验数据是否符合正态分布的图形工具。通过将样本数据的分位数与理论正态分布的分位数进行比较,可以直观地判断数据的分布情况。本文将详细介绍正态QQ图的原理,并通过R语言演示其具体应用。

正态QQ图的原理

QQ图(Quantile-Quantile Plot)通过比较测试样本数据的分位数与已知分布的分位数,来检验数据的分布情况。对于正态分布的QQ图,其横坐标是标准正态分布的分位数,纵坐标是样本值。如果数据近似服从正态分布,那么QQ图上的点将大致分布在一条直线上,这条直线的斜率等于数据的标准差,截距等于数据的均值。

通过QQ图还可以获得样本偏度和峰度的粗略信息。如果图形在两端存在弧度,说明数据的峰度与正态分布不同;如果图形是曲线,说明数据分布不对称。当QQ图是一条45度角的直线时,说明数据完全符合给定的正态分布;如果直线不通过原点,说明均值与给定分布不同;如果直线不是45度角,说明均值和方差都与给定分布不同。

R语言模拟

下面通过R语言代码演示如何生成和分析正态QQ图。

模拟100个随机数

rd = rnorm(100)
plot(density(rd), main = "正态随机变量概率密度", lwd = 2)
points(rd, rep(0.01, 100), pch = 20, col = rainbow(100))

通过上图可以看出,产生的100个随机数多数集中在[-1,1]之间,且均值为0。

t = rank(rd) / 100 # 求观察累积概率
q = qnorm(t) # 用累积概率求分位数值
plot(rd, q, main = "Q-Q图", pch = 20, col = rainbow(100)) # 画Q-Q图
abline(0, 1, lwd = 2)

模拟1000个随机数

n = 1000
rd = rnorm(n)
plot(density(rd), main = "正态随机变量概率密度", lwd = 2)
points(rd, rep(0.01, n), pch = 20, col = rainbow(n))
t = rank(rd) / n # 求观察累积概率
q = qnorm(t) # 用累积概率求分位数值
plot(rd, q, main = "Q-Q图", pch = 20, col = rainbow(n)) # 画Q-Q图
abline(0, 1, lwd = 2)

模拟5000个随机数

n = 2000
rd = rnorm(n)
plot(density(rd), main = "正态随机变量概率密度", lwd = 2)
points(rd, rep(0.01, n), pch = 20, col = rainbow(n))
t = rank(rd) / n # 求观察累积概率
q = qnorm(t) # 用累积概率求分位数值
plot(rd, q, main = "Q-Q图", pch = 20, col = rainbow(n)) # 画Q-Q图
abline(0, 1, lwd = 2)

从上述模拟结果可以看出,随着样本量的增加,随机数的分布状态越来越接近正态分布。这进一步验证了正态QQ图在检验数据分布方面的有效性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号