r - 在 R 中,生成加权样本,并将概率应用于多个变量

标签 r

我有一个包含多个变量的矩阵以及所有变量出现的概率。我想不是为每个向量独立生成加权样本,而是为所有变量生成加权样本(因为它们之间存在相关性)。

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/

相关文章:

com - 在R语言中使用COM

部署 Shiny 应用程序时,RQuantLib 将不会加载

mysql - 我的数据框中的值与我的数据库表(R 和 MySQL)中的值不同)

r - 我们如何从 R 中的数据框中删除标签

r - 获得闪避条形图?

r - K-means聚类解释

r - 针织前导码错误导致 "pandoc document conversion failed with error 43"

r - 从一个函数中加载一个包

r - 如何使用 odbc 执行 "Select * from"查询

r - 如何在 R 中的同一个图中放置多个箱线图?