如何在 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 中执行其他常见操作: