首页 > 解决方案 > 如何对二进制数据进行采样以获得行和的正态分布

问题描述

我想用 300 个样本创建 4 个二进制变量(假设我可能想增加 4 到 10 个变量)。但是当我按行求和时,我想得到 sum 列的正态分布。我们可以在 R 中做到这一点吗?这是一个随机样本来演示。

  m1    m2  m3  m4  sum
    1   1   0   1   3
    1   1   0   1   3
    1   0   0   0   1
    0   1   0   0   1
    0   0   1   0   1
    0   1   1   0   2
    1   0   1   1   3
    0   0   1   1   2
    0   0   1   0   1
    1   0   0   1   2
    1   0   0   0   1
    1   0   0   0   1
    1   0   1   1   3

标签: rsimulationnormal-distribution

解决方案


你不仅不能在 R 中做到这一点,我认为这是不可能的。

  • 总和的分布将是一个离散变量,可能的结果为 {0,1,2,3,4}。这不可能非常接近连续/实值的正态分布。
  • 在最简单的情况下(列独立且均值相等),结果将是二项式的。“二项分布的正态近似是足够的”的一条经验法则是n*p*(1-p)>5;在这种情况下,因为n=4,你能做的最好的(用p=0.5)是n*p*(1-p)=1。增加到 10 将使您达到n*p*(1-p)=2.5(通常n/4......)的最佳情况,但仍然不是很好。
  • 有可能放宽行间独立性和等概率的假设,仍然得到二项式(您可以在CrossValidated上询问),但无论如何我不知道您因相关性而得到的任何二项式偏差并且跨行的变化实际上会使正态近似更好......例如,您可以设置样本以便{P(0)=P(3)=0; P(2)=P(4)=0.5}(对于二项式来说这是不可能的 PDF),但这无济于事。

推荐阅读