📜  使用 ggplot2 在 R 中绘制正态概率图(1)

📅  最后修改于: 2023-12-03 15:36:28.133000             🧑  作者: Mango

使用 ggplot2 在 R 中绘制正态概率图

正态概率图(normal probability plot)是一种用来检验数据是否符合正态分布的有力图形方法。这种图形的基本思想是将排好序的数据在坐标系中与一个理论分布所对应的正态分布曲线的分位数值相比较。

在 R 中,使用 ggplot2 包可以轻松地绘制出这样的图形。下面是一个完整的例子:

library(ggplot2)

# 生成一个随机的符合正态分布的数据集
set.seed(123)
data <- rnorm(n = 100, mean = 10, sd = 2)

# 绘制正态概率图
qnt <- qnorm(seq(1, 99) / 100)
ggplot(data.frame(qnt = qnt, obs = sort(data)),
       aes(x = qnt, y = obs)) +
    geom_point() +
    geom_abline(intercept = mean(data), slope = sd(data)) +
    xlab("Theoretical Quantiles") +
    ylab("Sample Quantiles") +
    ggtitle("Normal Probability Plot")

如上所示,我们首先要生成一个符合正态分布的随机数据集,然后使用 qnorm 函数生成出分位数值。接着使用 ggplot(data.frame(qnt = qnt, obs = sort(data)), aes(x = qnt, y = obs)) 构建出正态概率图的基础框架,并使用 geom_point() 绘制出实际的数据点。同时,我们还使用 geom_abline(intercept = mean(data), slope = sd(data)) 绘制出拟合的正态分布曲线,并使用 xlab()ylab() 设置坐标轴的标签,最后使用 ggtitle() 设置图形标题。

在以上代码中,set.seed(123) 是为了保证生成的随机数据集是固定的,方便大家进行复现。

通过以上的代码,我们可以轻松地绘制得到如下的正态概率图:

Normal Probability Plot

可以看出,对于这个符合正态分布的随机数据集,其实际分布与理论分布之间的差异并不是很大,这也验证了正态概率图的有效性。