【问题标题】:How do I use R to create a simple branching process?如何使用 R 创建一个简单的分支过程?
【发布时间】:2020-11-30 19:42:59
【问题描述】:

我正在尝试使用 R 进行简单的分支过程来计算 10 代以上的狐狸种群

我使用的是 lambda = 1.5,并且我知道可以使用 rpois(1, 1.5) 计算初始生成的狐狸数量。

但是,我不知道如何创建一个函数来计算下一代人口,并将总人口加在一起。如果有人能给出一些起点,那就太好了。

【问题讨论】:

    标签: r stochastic-process


    【解决方案1】:

    我相信您正在寻找类似以下的功能:

    pois_bprocess <- function(generations, lambda, trace = TRUE){
      z_i <- rpois(1, lambda)
      i <- 1
      
      if(trace) print(paste(i, ':', z_i))
      
      while(i < generations){
        # draw z_i samples from a poisson distribution with lambda and sum them
        z_i <- sum(rpois(z_i, lambda)) 
        i <- i + 1
        if(trace) print(paste(i, ':', z_i))
      }
      
      return(z_i)
    }
    
    
    # Example usage : pois_bprocess(10, 1.5)
    # Example usage : pois_bprocess(10, 1.5, trace = F)
    

    请注意,由于泊松分布的假设 lambda 为 1.5,导致早期绘制零并卡住的机会相当高。

    HTH

    【讨论】:

      猜你喜欢
      • 2018-04-14
      • 2013-05-07
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 2016-12-15
      • 2020-08-05
      相关资源
      最近更新 更多