如何在 ggplot2 中创建 qq 图(带有示例)
QQ 图是“分位数-分位数”的缩写,用于评估数据集是否可能来自理论分布。
在大多数情况下,这种类型的图用于确定数据集是否遵循正态分布。
如果数据呈正态分布,QQ 图上的点将位于一条直线对角线上。
相反,如果点明显偏离直线对角线,则数据不太可能呈正态分布。
要在 ggplot2 中创建 QQ 图,您可以使用stat_qq()和stat_qq_line()函数,如下所示:
library (ggplot2)
ggplot(df, aes(sample=y)) +
stat_qq() +
stat_qq_line()
以下示例展示了如何使用此语法在两种不同的场景中创建 QQ 图。
示例 1:正态数据的 QQ 图
以下代码展示了如何生成具有 200 个观测值的正态分布数据集,并在 R 中为该数据集创建 QQ 图:
library (ggplot2) #make this example reproducible set. seeds (1) #create some fake data that follows a normal distribution df <- data. frame (y=rnorm(200)) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq() + stat_qq_line()
我们可以看到这些点主要沿着直线对角线分布,沿着每条尾部有一些微小的偏差。
根据该图,我们假设该数据集呈正态分布。
请注意,如果我们愿意,我们还可以使用颜色和大小参数来更改图中点的颜色和大小:
library (ggplot2) #make this example reproducible set. seeds (1) #create some fake data that follows a normal distribution df <- data. frame (y=rnorm(200)) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq(size= 2.5 , color=' red ') + stat_qq_line()
示例 2:非正态数据的 QQ 图
以下代码显示如何为具有 200 个观测值的服从指数分布的数据集创建 QQ 图:
#make this example reproducible set. seeds (1) #create some fake data that follows an exponential distribution df <- data. frame (y=rexp( 200 , rate= 3 )) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq() + stat_qq_line()
我们看到这些点明显偏离对角线。这清楚地表明数据集不是正态分布的。
鉴于我们指定数据应遵循指数分布,这应该是有意义的。
其他资源
以下教程解释了如何在 ggplot2 中执行其他常见任务: