如何在 r 中指定直方图中断(附示例)


默认情况下,R 中的hist()函数使用Sturges 规则来确定直方图中要使用的 bin 数量。

斯特吉斯规则使用以下公式来确定直方图中使用的最佳组数:

最佳 bin = ⌈log 2 n + 1⌉

金子:

  • n:数据集中的观测总数。
  • ⌈ ⌉:表示“上限”的符号,即将答案四舍五入到最接近的整数。

例如,如果数据集中有 31 个观测值,Sturge 规则将使用以下公式来确定直方图中使用的最佳组数:

最佳 bin = ⌈log 2 (31) + 1⌉ = ⌈4.954 + 1⌉ = ⌈5.954⌉ = 6

根据 Sturges 规则,我们应该在直方图中使用 6 个框来可视化该数据集。

如果您在 R 中使用hist()函数,Sturges 规则将用于自动选择要在直方图中显示的 bin 数量。

 hist(data)

即使您使用Breaks参数指定要使用的不同数量的 bin,R 也只会将其用作要使用的 bin 数量的“建议”。

 hist(data, breaks= 7 )

但是,您可以使用以下代码强制 R 在直方图中使用特定数量的框:

 #create histogram with 7 bins
hist(data, breaks = seq(min(data), max(data), length. out = 8 ))

注意:您必须对 length.out 使用n+1的长度,其中n是您想要的 bin 数量。

以下示例展示了如何在实践中使用此代码。

示例:在 R 中指定直方图中断

假设我们在 R 中有以下包含 16 个值的数据集:

 #create vector of 16 values
data <- c(2, 3, 3, 3, 4, 4, 5, 6, 8, 10, 12, 14, 15, 18, 20, 21)

如果我们使用hist()函数,R 将创建以下包含 5 个 bin 的直方图:

 #create histogram
hist(data)

注意:R 使用 Sturges 规则确定 5 个组是用于可视化具有 16 个观测值的数据集的最佳组数。

如果我们尝试使用Breaks参数指定要在直方图中使用的 7 个组,R 只会将此视为“建议”并选择使用 10 个组:

 #attempt to create histogram with 7 bins
hist(data, breaks= 7 ) 

但是,我们可以使用以下代码强制 R 在直方图中使用 7 个 bin:

 #create histogram with 7 bins
hist(data, breaks = seq(min(data), max(data), length. out = 8 ))

请注意,结果是一个包含 7 个等距框的直方图。

其他资源

以下教程解释了如何在 R 中执行其他常见操作:

如何在 R 中创建相对频率直方图
如何在 R 中绘制多个直方图

添加评论

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