【问题标题】:Creating conditional binomial random selections in R在 R 中创建条件二项式随机选择
【发布时间】:2018-01-17 19:21:40
【问题描述】:

我有一个简单的问题。这是向量 x1 的函数:
x1 <- rbinom (100, 1, .5)

我还需要 3 个向量,x2、x3 和 x4,它们也看起来像这样:
x2 <- rbinom (100, 1, .5)
x3 <- rbinom (100, 1, .5)
x4 <- rbinom (100, 1, .5)

但是,这给了我随机分布。我想要的是拥有这 4 个独立的向量,但它们相互依赖。我需要得到这样的东西:

x1: 1 0 0 0 1 0 1 0 1 0
x2: 0 0 0 1 0 0 0 0 0 1
x3: 0 1 0 0 0 0 0 1 0 0
x4: 0 0 1 0 0 1 0 0 0 0 

换句话说,如果 x1 的第一个点有 1,那么 x1、x2 和 x3 的第一个点也需要有 0。

非常感谢!

【问题讨论】:

  • 您所描述的将产生以下概率:x1 50%、x2 25%、x3 12.5%、x4 6.25%、未选择 6.25%。这是您正在寻找的,还是您希望每个变量的选择概率相等?
  • 我希望每个变量的选择概率相等
  • 为什么不处理问题的转置?对于每个索引,随机选择 4 个向量中的哪个得到一个?请注意,每个向量不可能得到 p = 0.5。由于有四个向量,因此在任何给定索引处,只有四分之一的机会被选中。
  • @pjs 这显然是多项分布,我不认为手动采样这样的东西是一个好方法
  • @SeverinPappadeux 谁说手动操作?

标签: r random distribution


【解决方案1】:

坦率地说,它看起来像Multinomial distribution,也就是多次投掷 K 大小的骰子。在您的情况下,K 等于 4。多项式是二项式的自然扩展

R函数可以从多项式中采样,例如10个等概率的样本

set.seed(12345)
prob <- c(.25, .25, .25, .25)
q <- rmultinom(10, 1, prob)
print(q)

要计算密度函数,您可以使用dmultinom。详情请见https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Multinom.html

输出

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    0    1    1    0    0    1    0    0    0     1
[2,]    1    0    0    0    1    0    0    0    0     0
[3,]    0    0    0    0    0    0    1    0    0     0
[4,]    0    0    0    1    0    0    0    1    1     0

还有一个,概率检查,每个应该接近 1/4

set.seed(12345)
q <- rmultinom(100000, 1, prob)
rowMeans(q)

生产

[1] 0.25075 0.24964 0.24871 0.25090

【讨论】:

    【解决方案2】:

    因此,您希望有 4 个互斥选项。然后直接从中采样,然后您可以稍后将它们变成本质上的虚拟变量。

    你可以的

    x <- sample(1:4, 100, replace=T)
    x1 <- (x==1)+0
    x2 <- (x==2)+0
    x3 <- (x==3)+0
    x4 <- (x==4)+0
    

    如果您希望在每次平局中获得 1-4 的相同概率,这很有效。这与每列的rbinom(prob=.5) 不同。

    【讨论】:

    • 谢谢!如果我想将大小设置为函数而不是整数,我可以使用“样本”吗?还是我需要使用不同的功能?
    • 我不太确定你在问什么。您指的是什么“尺寸”?
    • 我可以使用非整数而不是 100 吗?例如,重复次数可以是另一个表达式或函数,而不是整数?
    • 是的。几乎 R 中的每个函数都允许这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2021-10-12
    • 2019-05-12
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多