如何在 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()

ggplot2中的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(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 中执行其他常见任务:

如何在ggplot2中绘制多条线
如何在ggplot2中绘制平均值和标准差
如何更改ggplot2中的线条颜色

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注