为什么nclass.FD
导致的bin数量与hist
不同?
nclass.FD
给了我354个垃圾桶。
set.seed(1)
x <- rnorm(10^6)
nclass.FD(x)
另一方面, hist
给了我478个垃圾箱。
length(hist(x, breaks = "FD", plot = FALSE)$counts)
手册说breaks = "FD"
表示nclass.FD
用于直方图。
提供算法的其他名称是“ Scott”和“ FD” /“ Freedman-Diaconis”(具有相应的功能nclass.scott和class.FD)。
那么,为什么我要得到不同数量的垃圾箱?
答案 0 :(得分:3)
因此,您看一下breaks
中?hist
下的文本,
在后三种情况下,该数字仅是建议值;由于将断点设置为漂亮的值,因此该数字限制为1e6(如果较大则显示警告)。
和breaks="FD"
是最后提到的三种情况之一。
如果您只是这样做:
y<-hist(x, breaks = "FD", plot = FALSE)
pretty(y$breaks)
您得到的休息时间是:
-6 -4 -2 0 2 4 6
这不是hist
所使用的。
如果您使用pretty()
尝试各种选项,则会发现您得到97个休息时间:
pretty(y$breaks, n=136)
[1] -4.9 -4.8 -4.7 -4.6 -4.5 -4.4 -4.3 -4.2 -4.1 -4.0 -3.9 -3.8 -3.7 -3.6 -3.5 -3.4 -3.3 -3.2 -3.1
[20] -3.0 -2.9 -2.8 -2.7 -2.6 -2.5 -2.4 -2.3 -2.2 -2.1 -2.0 -1.9 -1.8 -1.7 -1.6 -1.5 -1.4 -1.3 -1.2
[39] -1.1 -1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
[58] 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6
[77] 2.7 2.8 2.9 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2 4.3 4.4 4.5
[96] 4.6 4.7
如果您为n
使用介于137和341之间的任何数字,则会得到以下193个中断:
pretty(y$breaks, n=137)
[1] -4.90 -4.85 -4.80 -4.75 -4.70 -4.65 -4.60 -4.55 -4.50 -4.45 -4.40 -4.35 -4.30 -4.25 -4.20 -4.15
[17] -4.10 -4.05 -4.00 -3.95 -3.90 -3.85 -3.80 -3.75 -3.70 -3.65 -3.60 -3.55 -3.50 -3.45 -3.40 -3.35
[33] -3.30 -3.25 -3.20 -3.15 -3.10 -3.05 -3.00 -2.95 -2.90 -2.85 -2.80 -2.75 -2.70 -2.65 -2.60 -2.55
[49] -2.50 -2.45 -2.40 -2.35 -2.30 -2.25 -2.20 -2.15 -2.10 -2.05 -2.00 -1.95 -1.90 -1.85 -1.80 -1.75
[65] -1.70 -1.65 -1.60 -1.55 -1.50 -1.45 -1.40 -1.35 -1.30 -1.25 -1.20 -1.15 -1.10 -1.05 -1.00 -0.95
[81] -0.90 -0.85 -0.80 -0.75 -0.70 -0.65 -0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15
[97] -0.10 -0.05 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65
[113] 0.70 0.75 0.80 0.85 0.90 0.95 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.45
[129] 1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25
[145] 2.30 2.35 2.40 2.45 2.50 2.55 2.60 2.65 2.70 2.75 2.80 2.85 2.90 2.95 3.00 3.05
[161] 3.10 3.15 3.20 3.25 3.30 3.35 3.40 3.45 3.50 3.55 3.60 3.65 3.70 3.75 3.80 3.85
[177] 3.90 3.95 4.00 4.05 4.10 4.15 4.20 4.25 4.30 4.35 4.40 4.45 4.50 4.55 4.60 4.65
[193] 4.70
在342,您得到hist
正在使用的479个中断(= 478箱);
pretty(y$breaks, n=342)
[1] -4.90 -4.88 -4.86 -4.84 -4.82 -4.80 -4.78 -4.76 -4.74 -4.72 -4.70 -4.68 -4.66 -4.64 -4.62 -4.60
[17] -4.58 -4.56 -4.54 -4.52 -4.50 -4.48 -4.46 -4.44 -4.42 -4.40 -4.38 -4.36 -4.34 -4.32 -4.30 -4.28
[33] -4.26 -4.24 -4.22 -4.20 -4.18 -4.16 -4.14 -4.12 -4.10 -4.08 -4.06 -4.04 -4.02 -4.00 -3.98 -3.96
[49] -3.94 -3.92 -3.90 -3.88 -3.86 -3.84 -3.82 -3.80 -3.78 -3.76 -3.74 -3.72 -3.70 -3.68 -3.66 -3.64
[65] -3.62 -3.60 -3.58 -3.56 -3.54 -3.52 -3.50 -3.48 -3.46 -3.44 -3.42 -3.40 -3.38 -3.36 -3.34 -3.32
[81] -3.30 -3.28 -3.26 -3.24 -3.22 -3.20 -3.18 -3.16 -3.14 -3.12 -3.10 -3.08 -3.06 -3.04 -3.02 -3.00
[97] -2.98 -2.96 -2.94 -2.92 -2.90 -2.88 -2.86 -2.84 -2.82 -2.80 -2.78 -2.76 -2.74 -2.72 -2.70 -2.68
[113] -2.66 -2.64 -2.62 -2.60 -2.58 -2.56 -2.54 -2.52 -2.50 -2.48 -2.46 -2.44 -2.42 -2.40 -2.38 -2.36
[129] -2.34 -2.32 -2.30 -2.28 -2.26 -2.24 -2.22 -2.20 -2.18 -2.16 -2.14 -2.12 -2.10 -2.08 -2.06 -2.04
[145] -2.02 -2.00 -1.98 -1.96 -1.94 -1.92 -1.90 -1.88 -1.86 -1.84 -1.82 -1.80 -1.78 -1.76 -1.74 -1.72
[161] -1.70 -1.68 -1.66 -1.64 -1.62 -1.60 -1.58 -1.56 -1.54 -1.52 -1.50 -1.48 -1.46 -1.44 -1.42 -1.40
[177] -1.38 -1.36 -1.34 -1.32 -1.30 -1.28 -1.26 -1.24 -1.22 -1.20 -1.18 -1.16 -1.14 -1.12 -1.10 -1.08
[193] -1.06 -1.04 -1.02 -1.00 -0.98 -0.96 -0.94 -0.92 -0.90 -0.88 -0.86 -0.84 -0.82 -0.80 -0.78 -0.76
[209] -0.74 -0.72 -0.70 -0.68 -0.66 -0.64 -0.62 -0.60 -0.58 -0.56 -0.54 -0.52 -0.50 -0.48 -0.46 -0.44
[225] -0.42 -0.40 -0.38 -0.36 -0.34 -0.32 -0.30 -0.28 -0.26 -0.24 -0.22 -0.20 -0.18 -0.16 -0.14 -0.12
[241] -0.10 -0.08 -0.06 -0.04 -0.02 0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 0.16 0.18 0.20
[257] 0.22 0.24 0.26 0.28 0.30 0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52
[273] 0.54 0.56 0.58 0.60 0.62 0.64 0.66 0.68 0.70 0.72 0.74 0.76 0.78 0.80 0.82 0.84
[289] 0.86 0.88 0.90 0.92 0.94 0.96 0.98 1.00 1.02 1.04 1.06 1.08 1.10 1.12 1.14 1.16
[305] 1.18 1.20 1.22 1.24 1.26 1.28 1.30 1.32 1.34 1.36 1.38 1.40 1.42 1.44 1.46 1.48
[321] 1.50 1.52 1.54 1.56 1.58 1.60 1.62 1.64 1.66 1.68 1.70 1.72 1.74 1.76 1.78 1.80
[337] 1.82 1.84 1.86 1.88 1.90 1.92 1.94 1.96 1.98 2.00 2.02 2.04 2.06 2.08 2.10 2.12
[353] 2.14 2.16 2.18 2.20 2.22 2.24 2.26 2.28 2.30 2.32 2.34 2.36 2.38 2.40 2.42 2.44
[369] 2.46 2.48 2.50 2.52 2.54 2.56 2.58 2.60 2.62 2.64 2.66 2.68 2.70 2.72 2.74 2.76
[385] 2.78 2.80 2.82 2.84 2.86 2.88 2.90 2.92 2.94 2.96 2.98 3.00 3.02 3.04 3.06 3.08
[401] 3.10 3.12 3.14 3.16 3.18 3.20 3.22 3.24 3.26 3.28 3.30 3.32 3.34 3.36 3.38 3.40
[417] 3.42 3.44 3.46 3.48 3.50 3.52 3.54 3.56 3.58 3.60 3.62 3.64 3.66 3.68 3.70 3.72
[433] 3.74 3.76 3.78 3.80 3.82 3.84 3.86 3.88 3.90 3.92 3.94 3.96 3.98 4.00 4.02 4.04
[449] 4.06 4.08 4.10 4.12 4.14 4.16 4.18 4.20 4.22 4.24 4.26 4.28 4.30 4.32 4.34 4.36
[465] 4.38 4.40 4.42 4.44 4.46 4.48 4.50 4.52 4.54 4.56 4.58 4.60 4.62 4.64 4.66
现在每次突破比下一次突破0.02。看来hist
命令正在从nclass.FD
公式中输入垃圾箱,但是随后漂亮地增加了数字以使舍入点变得更圆润,并且以某种方式选择使用相隔0.02的中断。为什么选择它我特别不知道。
编辑:
刚刚注意到,如果您执行pretty(x, n=354)
,则会得到hist
所给的479个中断。 x
的范围是-4.882127到4.650944,因此,如果您想使用FD
中断,但要使它们平整均匀,则最终会产生hist
中的479个bin。