相关疑难解决方法(0)

当样本大小和概率变化时,进行有效的多项式抽样

该问题涉及具有不同样本大小和概率的多项分布的有效采样.下面我描述了我使用的方法,但想知道它是否可以通过一些智能矢量化来改进.

我正在模拟多个群体中的生物传播.人口中的个体有可能j分散到人口.鉴于种群1的初始丰度为10 ,分别对种群1,2和3 进行分散的可能性,我们可以用以下方法模拟分散过程:ip[i, j]c(0.1, 0.3, 0.6)rmultinom

set.seed(1)
rmultinom(1, 10, c(0.1, 0.3, 0.6))

#      [,1]
# [1,]    0
# [2,]    3
# [3,]    7
Run Code Online (Sandbox Code Playgroud)

我们可以扩展这个来考虑n源群:

set.seed(1)
n <- 3
p <- replicate(n, diff(c(0, sort(runif(n-1)), 1)))
X <- sample(100, n)
Run Code Online (Sandbox Code Playgroud)

上面p是从一个群体(列)移动到另一个群体(行)的概率矩阵,并且X是初始种群大小的向量.现在可以模拟分散在每对种群(以及它们所在的种群)之间的个体数量:

sapply(seq_len(ncol(p)), function(i) {
  rmultinom(1, X[i], p[, i])  
})

#      [,1] [,2] [,3]
# [1,]   19   42   11
# [2,]    8   18   43
# [3,]   68    6    8
Run Code Online (Sandbox Code Playgroud)

其中 …

performance r vectorization multinomial

5
推荐指数
1
解决办法
4361
查看次数

标签 统计

multinomial ×1

performance ×1

r ×1

vectorization ×1