Runif没有产生统一的分布

Jer*_*Cox 2 random r uniform-distribution

set.seed(1432)    
n_len <- 400000
jdc<- data.frame(rnd = numeric(n_len))
jdc$rnd <- runif(n_len,0,1)
ggplot(jdc,aes(x = rnd)) + geom_density()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正如您将注意到,随机变量的分布向两个边界下降.

我试图基于一些不到rnd的样本,但是i的范围在0到.05之间,因此这种分布是个问题.

Sti*_*ibu 11

这与密度估计有关而不是与密度估计有关runif().最好使用直方图来查看数据:

ggplot(jdc, aes(x = rnd)) + geom_histogram(binwidth = 0.01, boundary = 0)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正如乔兰所指出的那样,人们还可以创建一个直方图,显示与密度估算器类似的偏差:

ggplot(jdc, aes(x = rnd)) + geom_histogram()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

直方图的优点是易于理解,为什么会发生这种情况.最左边和最右边的箱子分别以0和1为中心.这意味着,例如,最左边的箱从-0.005到0.005.但是没有数据点低于零,所以这个间隔只包含大约一半的点数.

  • 请注意,"geom_histogram"的参数在这里很重要,因为没有它们会看到类似的"异常". (5认同)
  • @Stibu我认为你应该随意对OP进行编辑.如果他们不喜欢它们,他们总是会回滚你的编辑(我认为这是极不可能的). (3认同)
  • @GavinSimpson,Josh O'Brien,感谢您的评论.我认为除了纠正拼写错误和其他小东西之外的编辑应该更好地与作者合作完成.但话说回来,人们可以轻易地说我的编辑非常符合作者的意图,因此根本没有问题.我下次会更大胆...... (2认同)