我有一个包含多个变量的矩阵以及所有变量出现的概率。我想不是为每个向量独立生成加权样本,而是为所有变量生成加权样本(因为它们之间存在相关性)。
V1 V2 V3 prob
30 40 40 0.4
0 5 5 0.2
15 20 30 0.4
我想生成一个包含 V1、V2 和 V3 的矩阵样本,其中考虑到某些值的同时出现。
最佳答案
sample
的通常用法是模拟单个随机变量的值。正如您的情况一样,当处理相关离散随机变量的随机向量(X,Y,Z)时,有必要知道它们的联合分布。碰巧在你的情况下它非常简单,因为它们是“完全”依赖的。遵循@Rui Barradas 的想法,我们可以使用
df[sample(nrow(df), n, replace = TRUE, prob = df$prob), -ncol(df)]
生成n
向量。根据大数定律,随着 n
的增加,您将越来越接近所需的 40%、20% 和 40%。如果您需要这些精确的百分比并且抽奖次数很少,那么您的问题不是关于生成。
关于r - 在 R 中,生成加权样本,并将概率应用于多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53069712/