【问题标题】:How to handle a Poisson distribution in R如何在 R 中处理泊松分布
【发布时间】:2020-06-13 14:52:27
【问题描述】:

考虑泊松分布x1, x2, ... ~ pois(1),其中 lambda=1。 我想编写一个函数,它接收一个数字作为输入(将其视为 a)并将我们作为输出 最小的 n(最小 n),这对于 sum(xi)>=a, i=1:n 是正确的. 我认为在这种情况下使用while 循环可能很好(但我不确定这是不是最好的方法)。也许可以使用其他循环来完成,例如for 循环。我不知道如何处理在 R 中包含泊松分布的这种情况?

【问题讨论】:

    标签: r loops distribution poisson


    【解决方案1】:

    while 循环足够简单,可以编写代码。它在 s 中为 sum 而在 s < a 中累积 rpois 的值,计算 n 中的迭代次数。

    minpois <- function(a){
      n <- 0L
      s <- 0L
      while(s < a) {
        n <- n + 1L
        s <- s + rpois(1L, lambda = 1)
      }
      n
    }
    
    set.seed(2020)
    minpois(10)
    #[1] 12
    

    【讨论】:

    • 感谢您的代码。我有个问题。你为什么用0L和1L?为什么不是 0 和 1?如果我们写 n
    • @vahid 它可以在没有L 的情况下工作,但由于数字是整数,所以我使用它。见the R language definitionthis SO post
    • rpois(1L, lambda = 1) 中的 1L 是什么?为什么你把这个论点等于 1L?你是怎么找到的?
    • @vahid 循环一次生成1个随机变量,见help('rpois')
    • 谢谢@RuiBarradas。在您的评论中,当您说“它没有 L 但由于数字是整数”时,我有一个关于“数字是整数”的问题。 rpois(n,lambda) 是否总是生成整数值?
    猜你喜欢
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多