【问题标题】:simulate a possion process from another poisson process从另一个泊松过程模拟一个泊松过程
【发布时间】:2020-02-03 14:56:51
【问题描述】:

我想知道如何使用参数为p 的伯努利随机变量从另一个模拟泊松过程。

在区间[0,t]上模拟第一个泊松过程,参数\lambda,一般

pois = rpois(1, \lambda)
v = runif(pois, O, t)
w = sort(v)

现在,我知道我们可以将一个伯努利随机变量与第一个泊松过程的到达时间关联起来,以模拟另一个参数为p * \lambda 的泊松过程,但是该怎么做呢?

【问题讨论】:

    标签: r simulation montecarlo poisson stochastic-process


    【解决方案1】:

    我想您是在问如何使用给定的 lambda 模拟泊松过程的到达时间。泊松过程中到达之间的时间由指数分布给出,因此,如果您想对 lba = 5 的泊松过程的 x 个连续到达时间进行建模,您只需这样做:

    cumsum(rexp(x, lambda))
    

    因此,例如,假设我想根据我拥有的现有泊松数据对泊松到达过程进行建模。 (我没有,所以我会创建一个随机样本):

    set.seed(69)
    existing_poisson_data <- rpois(50, 5)
    existing_poisson_data
    #>  [1]  5  7  6  7  4  8  3  7  3  1  8  4  8  3  3  3  2  6  2  7  4  3  6  4  3  3  6
    #> [28]  6  2  4  6  8  4  5  4  6  6  5  4  5 11  4  5  6  3  1  2  3  4  3
    

    我想模拟具有相同 lambda 和相同到达次数的泊松过程的到达时间。因此我可以这样做:

    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)))
    

    这看起来不错。如果计数实际上是泊松分布的,则它们的均值应该与它们的方差大致相同:

    mean(simulated_histogram$counts)
    #> [1] 5.418605
    var(simulated_histogram$counts)
    #> [1] 5.487265
    

    您无需进行分散测试即可看到这些数据似乎是泊松分布的。因此,现在您可以安全地使用您的 arrivals 变量来模拟 lambda 为 5 的泊松过程的到达时间。

    因此,如果您想基于给定 lambda 和伯努利变量 p 的另一个泊松过程模拟泊松过程的 n 到达,您可以这样做

    arrivals <- cumsum(rexp(n, p * lambda))
    

    或者,您可以使用 Bernoulli 变量来采样一些到达,如下所示:

    arrivals <- arrivals[as.logical(rbinom(length(arrivals), 1, p))]
    

    【讨论】:

    • 感谢您的回答。事实上,有两种方法可以模拟到达。您使用指数进行的方法,第二种方法是对到达进行排序,然后假设它们均匀分布,以便从制服中采样。现在我的问题是:如何将伯努利与第一个泊松过程的到达联系起来,以模拟参数p * lambda 的新泊松过程?
    • @user008 你可以使用我在最后一行显示的方式。它假设到达的概率为p
    • @user008 在这种情况下,我使用大小为 1 的 rbinom 来模拟伯努利随机变量。然后,代码会丢弃任何未在此伯努利样本上绘制 1 的到达。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2012-01-09
    • 2020-08-15
    • 2017-06-27
    • 2019-09-15
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多