Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用高尔顿-沃森过程求R中的灭绝概率=1?_R - Fatal编程技术网

如何用高尔顿-沃森过程求R中的灭绝概率=1?

如何用高尔顿-沃森过程求R中的灭绝概率=1?,r,R,我正在用几何分布模拟一个基本的高尔顿-沃森过程(GWP)。我用这个来计算每一代的灭绝概率。我的问题是,如何找到灭绝概率等于1的那一代 例如,我可以为GWP创建一个函数,如下所示: # Galton-Watson Process for geometric distribution GWP <- function(n, p) { Sn <- c(1, rep(0, n)) for (i in 2:(n + 1)) { Sn[i] <- sum(rgeom(S

我正在用几何分布模拟一个基本的高尔顿-沃森过程(GWP)。我用这个来计算每一代的灭绝概率。我的问题是,如何找到灭绝概率等于1的那一代

例如,我可以为GWP创建一个函数,如下所示:

# Galton-Watson Process for geometric distribution
GWP <- function(n, p) {
  Sn <- c(1, rep(0, n))
  
  for (i in 2:(n + 1)) {
    Sn[i] <- sum(rgeom(Sn[i - 1], p))
  }
  return(Sn)
}
这将给我第10代的灭绝概率。。。为了找到每一代的灭绝概率,我必须在创建
GWn
时更改索引值(对应的代数)。。。但我要做的是找出哪一代的物种灭绝概率=1


关于我如何解决这个问题有什么建议吗?

我可以告诉你原则上你会如何解决这个问题,但我建议你可能会遇到一些困难(如果你已经知道我要说的一切,就把它作为给下一位读者的建议…)

  • 理论上,高尔顿-沃森过程绝灭概率永远不会精确到1(除非prob==1,或在无限时间限制内)
  • 当然,对于任何给定的复制和随机数种子,你可以计算出你所有血统灭绝的第一个时间点(如果有的话)。这将是高度可变的运行,取决于随机数种子
  • 绝灭时间的分布极为偏斜;不会立即灭绝的血统将持续很长时间
我用两种方法修改了你的
GWP
函数,使其更有效:(1)当血统消失时停止模拟;(2) 用一个负二项式偏差替换几何偏差之和(参见)


GWP极好的答案。。谢谢
N <- 10 # Number of elements in the initial population. 
GWn <- replicate(N, GWP(10, 0.25)[10])
probExtinction <- sum(GWn==0)/N 
probExtinction