在 R 中生成多元均匀分布

机器算法验证 r 随机生成 多元分布
2022-03-22 10:39:44

为正整数 如何上生成具有多元均匀分布随机变量的样本?dn[a,b]d

我不知道该怎么办。我知道我需要一个协方差矩阵来生成随机向量...

3个回答

它有点取决于术语,但通常多元均匀是指中的每个点都具有同等可能性的分布。因此,维度是独立的,您可以在 d 次之间分别进行均匀绘制,以从多元均匀中获取样本。[a,b]d[a,b]

如果您不希望维度独立,则可能值得研究 Copulas

跟进 Sam 的回答:

samps <- replicate(n, runif(d,a,b)) # draw samples
cov(t(samps))  # get the sample covariance matrix

跟进第二部分 Sam 的回答:

library(copula)
set.seed(2019)
d <- 2
n <- 1000

indep.cop <- indepCopula(d)
sample    <- rCopula(n, indep.cop)
chisq.test(sample)

#        Pearson's Chi-squared test

# data:  sample
# X-squared = 362.15, df = 1998, p-value = 1

# Warning message:
# In chisq.test(sample) : Chi-squared approximation may be incorrect

因为p-value 是1,所以假设维度是独立的并不是不合理的。