用R生成泊松过程

用R生成泊松过程,r,statistics,poisson,stochastic-process,R,Statistics,Poisson,Stochastic Process,我想生成一个过程,其中每一步都有一个泊松随机变量的实现,这个实现应该被保存,然后它应该实现下一个泊松随机变量,并将其添加到之前所有实现的总和中。此外,在每个步骤中,该过程都有可能停止。希望这对你们有意义。。。任何想法都很感激 您对模拟的参数非常模糊,但这是怎么回事 随机泊松数的Lambda lambda <- 5 删除零(如果有) bin <- bin[bin != 0] 更简单地说,选择一个几何分布的随机数作为停止前达到的总步数,然后使用cumsum对许多泊松偏差求和: sto

我想生成一个过程,其中每一步都有一个泊松随机变量的实现,这个实现应该被保存,然后它应该实现下一个泊松随机变量,并将其添加到之前所有实现的总和中。此外,在每个步骤中,该过程都有可能停止。希望这对你们有意义。。。任何想法都很感激

您对模拟的参数非常模糊,但这是怎么回事

随机泊松数的Lambda

lambda <- 5
删除零(如果有)

bin <- bin[bin != 0]

更简单地说,选择一个几何分布的随机数作为停止前达到的总步数,然后使用
cumsum
对许多泊松偏差求和:

stopping.prob <- 0.3  ## for example
lambda <- 3.5         ## for example
n <- rgeom(1,1-stopping.prob)+1  ## constant probability per step of stopping
cumsum(rpois(n,lambda))

stopping.prob Down投票值得一提。所以,无论你是谁,请写下你为什么否决投票,以便OP能够了解如何改进他的问题。首先生成所有的
runif()
rpois()
,然后查看哪个是第一个统一数字
,并只保留rpois值中的那么多元素,效率会更高。甚至只需执行
runif()
步骤,计算出需要多少个随机泊松数,然后只生成那么多。另外,最好在seq_沿(bin)
方向使用
i启动循环。为什么要删除零?它们是从泊松分布中合理提取的…现在我想知道这个概率分布是否有一个封闭形式的答案。。。我太忙/懒散了,无法在Pielou或Bailey中查找,但这可能是一个很好的交叉验证问题。。。
for (i in 1:length(bin)) {
    if (runif(1) < th) {
        bin[i] <- rpois(1, lambda = lambda)
    } else {
        stop("didn't meet criterion, exiting")
    }
}
bin <- bin[bin != 0]
cumsum(bin)
stopping.prob <- 0.3  ## for example
lambda <- 3.5         ## for example
n <- rgeom(1,1-stopping.prob)+1  ## constant probability per step of stopping
cumsum(rpois(n,lambda))