其中有三个随机数的随机集(在多维数据集中采样随机点)

时间:2018-12-13 15:53:21

标签: r random

立方体中的每个点都有三个值(X,Y和Z轴)。 R中有一些内置函数,涉及具有单个随机数(每个观察值一个数字)的集合的生成,例如runif()sample()rnorm()set.seed()等。以类似的逻辑思考,数字是在单个轴上生成的,具有这些功能。

我的问题是:

  • 是否有函数生成其中包含三个随机数的随机集(或概括每个观察结果具有多个随机数的随机集)?
  • 如果前者的答案是否定的,应该采取什么方法?

1 个答案:

答案 0 :(得分:4)

考虑到多维数据集的情况,runif可以非常灵活地实现所有目标。特别是,我们可以指定要生成的点数,并且对于每个轴,我们还可以指定不同的范围。例如,

lower <- c(0, 10, 20)
upper <- c(1, 11, 21)
n <- 5
matrix(runif(n * 3, lower, upper), ncol = 3, byrow = TRUE)
#            [,1]     [,2]     [,3]
# [1,] 0.03372777 10.99940 20.03487
# [2,] 0.33839128 10.91506 20.61724
# [3,] 0.28628535 10.73780 20.83405
# [4,] 0.31427078 10.49257 20.69737
# [5,] 0.64146235 10.64392 20.97785

rnormrbeta等同样适用。

对此进行不同的思考,您想从多变量分布中抽样,也许我们甚至还存在一定的依赖性。为此,还具有一些功能,例如?mvrnorm包中的MASS?rdirichlet中的MCMCpack。但是,例如,当处理点在立方体中均匀分布时,遵循上述方法是标准的,并且,如果需要,您可以为具有独立分量的多元均匀分布定义相应的函数。