R 从另一个泊松过程模拟一个泊松过程
我想知道如何用参数为R 从另一个泊松过程模拟一个泊松过程,r,simulation,montecarlo,poisson,stochastic-process,R,Simulation,Montecarlo,Poisson,Stochastic Process,我想知道如何用参数为p的伯努利随机变量模拟另一个泊松过程 通常,在区间[0,t]内使用参数\lambda模拟第一个泊松过程 pois = rpois(1, \lambda) v = runif(pois, O, t) w = sort(v) 现在,我知道我们可以将一个伯努利随机变量与第一个泊松过程的到达时间相关联,来模拟另一个泊松过程的参数p*\lambda,但是如何做到这一点呢?我想你是在问如何用给定的lambda模拟泊松过程的到达时间。泊松过程中的到达间隔时间由指数分布给出,因此,如果您想
p
的伯努利随机变量模拟另一个泊松过程
通常,在区间[0,t]
内使用参数\lambda
模拟第一个泊松过程
pois = rpois(1, \lambda)
v = runif(pois, O, t)
w = sort(v)
现在,我知道我们可以将一个伯努利随机变量与第一个泊松过程的到达时间相关联,来模拟另一个泊松过程的参数
p*\lambda
,但是如何做到这一点呢?我想你是在问如何用给定的lambda模拟泊松过程的到达时间。泊松过程中的到达间隔时间由指数分布给出,因此,如果您想对lamba=5的泊松过程的x个连续到达时间建模,您只需执行以下操作:
cumsum(rexp(x, lambda))
例如,假设我想基于现有的泊松数据对泊松到达过程建模。(我不知道,所以我将创建一个随机样本):
您不需要进行分散测试,就可以看到这些数据似乎是泊松分布的。因此,现在您可以安全地使用arrivals
变量模拟lambda为5的泊松过程的到达时间
因此,如果您想基于另一个泊松过程,使用给定的lambda
和贝努利变量p
模拟泊松过程的n
到达,您可以这样做
arrivals <- cumsum(rexp(n, p * lambda))
抵达感谢您的回答。事实上,有两种方法可以模拟到达。第二种方法是对到达点进行排序,然后假设它们均匀分布,从均匀分布中取样。现在我的问题是:我如何将伯努利与第一个泊松过程的到达相关联,以模拟参数p*lambda
?@user008的新泊松过程?您可以使用我在最后一行中显示的方式。它假设到达概率为p
@user008。在这种情况下,我使用大小为1的rbinom模拟一个伯努利随机变量。然后,该代码将丢弃未在此贝努利样本上绘制1
的任何到达。
number_of_arrivals <- sum(existing_poisson_data)
lambda <- mean(existing_poisson_data)
simulated_time_diffs <- rexp(number_of_arrivals, lambda)
arrivals <- cumsum(simulated_time_diffs)
simulated_histogram <- hist(arrivals, breaks = 0:ceiling(max(arrivals)))
arrivals <- cumsum(rexp(n, p * lambda))