首页 > 解决方案 > 生成一个总和为 1 的值向量,但元素应该近似但不完全一致

问题描述

假设我想制作一个长度为 N 的向量。我的目标是确保所有元素都大约为 1/N(但并非所有元素都应该正好是 1/N),并且向量的总和应该等于 1。有没有办法在 R 中做到这一点?

标签: rrandom

解决方案


您可以使用具有大且相等参数的 Dirichlet 分布。

> library(bayesm)
> rdirichlet(c(100,100,100))
          [,1]
[1,] 0.3360327
[2,] 0.3280179
[3,] 0.3359495
> rdirichlet(c(10000,10000,10000))
          [,1]
[1,] 0.3311760
[2,] 0.3353209
[3,] 0.3335032
> rdirichlet(c(1000000,1000000,1000000))
          [,1]
[1,] 0.3330997
[2,] 0.3334884
[3,] 0.3334119

推荐阅读