[英]R generating binomial Random variables from exponential random variables
我有 100000 个使用rexp
生成的指数随机变量,我被要求使用内置的 R 函数从中生成 100000 个二项式随机变量。
我真的不知道如何从另一个生成一个随机变量。 我在互联网上搜索了一些资源,但它们主要是关于从指数生成泊松,这非常相关,因为指数分布可以解释为泊松的时间间隔。 通过在指数上应用cumsum
并使用cut
function 制作一些包含时间间隔内出现次数的箱,可以轻松实现泊松。
但我不知道如何从指数生成二项式。
下面的 function rbin
从指数 rv 生成二项式 rv。 原因可能是CrossValidated的问题,而不是 StackOverflow 的问题,它与代码有关。
rbin <- function(n, size, p){
onebin <- function(i, size, thres){
I <- 0L
repeat{
S <- sum(rexp(I + 1)/(size + 1 - seq_len(I + 1)))
if(S > thres) break
I <- I + 1L
}
I
}
thres <- -log(1 - p)
sapply(seq_len(n), onebin, size, thres)
}
set.seed(1234)
u <- rbin(100000, 1, 0.5)
v <- rbinom(100000, 1, 0.5)
X <- cbind(u, v)
cbind(Mean = colMeans(X), Var = apply(X, 2, var))
# Mean Var
#u 0.50124 0.2500010
#v 0.49847 0.2500002
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.