谁可以向我解释这个? 如果我运行以下
repet <- 10000
size <- 100
p <- .5
data <- (rbinom(repet, size, p) - size * p) / sqrt(size * p * (1-p))
hist(data, freq = FALSE)
x = seq(min(data) - 1, max(data) + 1, .01)
lines(x, dnorm(x), col='green', lwd = 4)
然后我得到了直方图和理论密度的合理一致性(由于中心极限定理)。
如果我使用
hist(data, breaks = 100, freq = FALSE)
直方图与理论密度有显着差异。
当我将休息次数从51增加到52时,会发生这种行为变化。为什么会发生?
答案 0 :(得分:1)
与您从rbinom
生成的数据不连续这一事实有关。这是离散的。那里只有~35个离散值(set.seed(15)
和length(unique(data))
)。当您强制直方图有100个中断时,您会发现其中许多bin最终为空
sum(hist(data, breaks = 100, freq = FALSE)$counts==0)
# [1] 36
因此,如果你注意到第二个直方图有一个条形,那么一个空格(对于一个高度为0的条形图),重复。对于两个直方图,曲线下的总面积必须相同,但因为第二个图中的条形宽度是一半,所以它们需要两倍。
所有这一切的要点是在使用具有离散数据的直方图时要小心。它们用于连续数据。此外,您选择的垃圾箱数量可能会对解释产生很大影响。如果更改默认值,则应该有充分的理由这样做。
答案 1 :(得分:1)
神秘在于理解你的数据,这不是情节的问题。
查看data
中的值 - 精度限制为单位的十分之一。因此,如果您有太多的垃圾箱,一些垃圾箱将落在数据点之间,并且点击次数为零。其他人的密度会相应提高。
在您的实验中,由于breaks
...
仅供参考;断点将设置为漂亮的值
如果您希望数据中包含更多独特点,请将传递给size
的{{1}}的值增加。