【问题标题】:shouldn't dbinom() and rbinom() match here in R?dbinom() 和 rbinom() 不应该在 R 中匹配吗?
【发布时间】:2018-11-10 20:51:45
【问题描述】:

也许这个问题太简单了,但下面例子中的dbinom()rbinom()不应该匹配吗?

PS似乎lines() 产生的竖线需要1 的加法常数才能向右移动并匹配空心圆圈,这是因为lines() 命令吗?

这里是R 代码:

a <- dbinom(0:25, 25, .5) # pmf of a binomial distribution with 25 trials
b <- rbinom(1e6, 25, .5)  # random binomial variates with 25 trials

plot(a)     # produces Open Circles
lines(table(b)/length(b), type = "h") # produces vertical bars

【问题讨论】:

  • 看看你的开放圈子。看上面的 x=5。数一数左边有多少。您的第一个开放圆圈的 x 值是多少?应该是什么?当你打电话给plot(a) 时,你做了什么隐含的假设?
  • 如果你计算圈数,你有 26 个,但只有 25 个小节。圆圈从 1 开始,而不是从零开始。使用这个绘制一个:plot(y=a, x=0:25)
  • @Dason,啊哈,rbinom() 没有采样任何0s 或1s,也没有24s 和25s。但是您能否提供一个示例,其中rbinom() 结果可以匹配dbinom() 结果?
  • 实际上并不是你的 rbinom 东西搞砸了。我和@Dave2e 的评论都指向你的第一个情节陈述。
  • @Dason,非常感谢你知道了。

标签: r statistics distribution categorical-data


【解决方案1】:

绘图 dbinom 从 0 开始,但您没有告诉 R 太多,所以它假设密度从 X=1 开始。另一方面,lines.table 方法查看表的行名,如果它们是数字,则将它们用作 X 轴的参数,X 轴在 X=0 处开始水平条。

我建议的修改是:

plot(0:25, a)

改为。

【讨论】:

  • 实际上是他们的圈子关闭了。你的例子也会有同样的问题。 plot(a) 因为没有给出 x 的任何输入,所以将假定 x 从 1 开始。看一下 plot(rnorm(3)),它隐含地假定 x=1:3 并使用 rnorm(3) 的输出作为值为 y。
  • @Dason 真的!如果您想从 0 开始 x,我猜lines.table 正在工作。我会修改。
猜你喜欢
  • 2018-11-13
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 2011-05-27
相关资源
最近更新 更多