假设事件发生的概率是0.2。我希望,例如50次,使用R中的runif函数计算事件发生的次数。
这是正确的方法吗?因为它并没有真正给出预期的结果。
X <- 50
amount <- (runif(X)<0.2)
或
amount <- sum(runif(X)<0.2))
答案 0 :(得分:1)
嗯,奇怪的是主观的东西 - 随机数字看起来很奇怪,但仍然是随机的。你可以检查你的结果是否真的很奇怪:
runs <- replicate(1000, sum(runif(50)<0.2))
mean(runs) # I got 10.028
median(runs) # should be exactly 10
这里没什么奇怪的。 (我会在这里使用rbinom
代替runif
,但这不会有太大变化。)
答案 1 :(得分:0)
让我们逐行回顾一下:
以下将X(试验次数)设置为50。
X <- 50
让我们来看看我们的选择:
amount <- (runif(X)<0.2)
这将返回一个T / F值的向量,每个都是试验结果,True表示事件发生,False表示事件不发生。
amount <- sum(runif(X)<0.2))
就像上一个命令一样,但总结了结果。这会计算事件发生的次数。