【问题标题】:How to sample binary data to get a normal distribution of the sum of the rows [closed]如何对二进制数据进行采样以获得行总和的正态分布[关闭]
【发布时间】:2021-02-07 21:24:10
【问题描述】:

我想用 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

【问题讨论】:

    标签: r simulation normal-distribution


    【解决方案1】:

    这可能是您要求的:

    data <- data.frame(m1=numeric(),m2=numeric(),m3=numeric(),m4=numeric())
    data[1:300,1] <- sample(0:1,300,replace = TRUE)
    data[1:300,2] <- sample(0:1,300,replace = TRUE)
    data[1:300,3] <- sample(0:1,300,replace = TRUE)
    data[1:300,4] <- sample(0:1,300,replace = TRUE)
    data$sum <- data[,1] + data[,2] + data[,3] + data[,4]
    

    plot(density(data$sum,bw = 2))
    编辑
    分配: plot(table(data$sum))

    【讨论】:

    • 这不是显示总和的分布,而是显示总和的 平滑密度(核密度估计)(请注意,您显示的图范围从 -5到 10,结果的范围只有 0 到 4 ...)。恐怕OP会因此而误入歧途。 (可能是二项式(N=4,p=0.5)响应对于他们想要做的事情来说很好,但可能不是......很难说。)您能否显示plot(table(data$sum)) 的结果清晰度/对比度?
    • 谢谢。如果这对 OP 来说真的足够好......
    【解决方案2】:

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

    • 总和的分布将是一个离散变量,可能的结果为 {0,1,2,3,4}。这不可能非常接近连续/实值的正态分布。
    • 在最简单的情况下(列独立且均值相等),结果将是二项式。 “二项分布的正态近似是足够的”的一条经验法则是n*p*(1-p)&gt;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),但这没有帮助。

    【讨论】:

    • 谢谢,为什么我不能假设总和可以像我们在李克特量表中那样处理?
    • 您可以为这些模拟数据拟合一个序数模型。这与将 4-10 个二元变量相加并得出正态分布的结果完全不同。
    • 在成就测试中(基于 0 和 1),你总是先计算表现,然后计算平均值......对不起,第 2 点和第 3 点没有帮助
    • 我不明白你在说什么。对于CrossValidated,这可能是一个更好的问题,因为“我应该怎么做?”问题看起来比“我如何在 R 中做 ?”更难/更基本。问题。无论如何,如上所述您的问题的答案是“你不能”。如果您想扩展您的问题并提供更多关于您的更一般目标的背景信息,请随时编辑您的问题(或删除此问题并重新发布到 CV)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多