尝试用sapply进行仿真

时间:2020-03-15 09:13:48

标签: r random simulation probability sapply

我正在尝试模拟uniform(0,1) 的乘积将多久成为< exp(-3)。所以我这样写

n = c(10^2, 10^4)
p <- 0:6

df2 <- data.frame(expand.grid(n, p))
names(df2) <- c("n", "p")

find.p <- function(n, p){
  v <- c()
  for(i in 1:n){
    product <- 1
    j <- 0
    while(product > exp(-3)){
      product <- product * runif(1)
      j <- j + 1
    }
    v[i] <- j - 1
  }
  v.re <- table(v)/n
  print(p)
  return(v.re[names(v.re)==p])
}

df2$pr <- sapply(df2$n, find.p, p=df2$p)

我记录产品< exp(-3)的时间。我想知道< exp(-3)处的产品0:6的{​​{3}}是什么 并重做100和10000次,期望收敛。我尝试用来做,但是我总是得到错误的结果 分布应该近似为Poisson (3)

任何建议都会对我有很大帮助!

0 个答案:

没有答案