2016-03-02 105 views
1

谁能向我解释这一点? 如果我运行下面的直方图和密度R

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) 

然后我得到的直方图和理论密度(由于中心极限定理)的合理的协议。

enter image description here

如果我使用

hist(data, breaks = 100, freq = FALSE) 

直方图是从理论密度显著不同。

enter image description here

当我增加休息51〜52的数量为什么会发生这种变化发生的行为?

回答

1

这与您从rbinom生成的数据不连续有关。它是离散的。在那里只有~35个离散值(与set.seed(15)length(unique(data)))。当你强迫直方图有100周休息,你会发现其中许多斌最终被空

sum(hist(data, breaks = 100, freq = FALSE)$counts==0) 
# [1] 36 

所以,如果你会发现第二直方图设有一间酒吧,然后一个空间(与高度酒吧0),重复。曲线下方的总面积必须与直方图相同,但由于第二个曲线图中的条纹宽度为一半,所以它们需要全部两倍。

所有这些的要点是在使用带有离散数据的直方图时要小心。它们用于连续数据。此外,您选择的垃圾箱数量可能会对解读产生重大影响。如果你改变默认值,你应该有一个很好的理由这样做。

1

奥秘在于理解你的数据,这不是一个问题的情节。

看看data中的值 - 精度被限制在一个单位的十分之一。因此,如果垃圾箱数量太多,某些垃圾箱会落在数据点之间,并且会有零点击数。其他人将有相应更高的密度。

在你的实验中,有一个不连续的影响,因为breaks ...

只是一个建议;断点将被设置为相当值

如果你想在你的数据更加独特点,增加你传递给rbinomsize值。