首页 > 解决方案 > rnorm 函数,但用于二项分布

问题描述

如何创建一个包含 30 个不带小数的值的列表 [为 0 或 1],它们具有特定的平均值(例如:0.29)和 SD(例如:0.13)。

我无法在 excel 或 R 中解决这个问题,我希望有一个简单的代码。太感谢了!

标签: r

解决方案


如果您想使用二项式 (0, 1),如 Konrad 所述,它不是基于均值和标准差,而是基于比例。即使您生成二项式分布,平均值和标准差也不会像概率那样有意义。

为了便于理解,我在下面给出了大小为 30 的 1 和 0 的可能组合样本的均值和标准差。

for(n in 1:29) {
  d <- c(rep(1, 30-n), rep(0, n))
  print(c(mean(d), sd(d)))

}

[1] 0.9666667 0.1825742
[1] 0.9333333 0.2537081
[1] 0.9000000 0.3051286
[1] 0.8666667 0.3457459
[1] 0.8333333 0.3790490
[1] 0.8000000 0.4068381
[1] 0.7666667 0.4301831
[1] 0.7333333 0.4497764
[1] 0.7000000 0.4660916
[1] 0.6666667 0.4794633
[1] 0.6333333 0.4901325
[1] 0.6000000 0.4982729
[1] 0.5666667 0.5040069
[1] 0.5333333 0.5074163
[1] 0.5000000 0.5085476
[1] 0.4666667 0.5074163
[1] 0.4333333 0.5040069
[1] 0.4000000 0.4982729
[1] 0.3666667 0.4901325
[1] 0.3333333 0.4794633
[1] 0.3000000 0.4660916
[1] 0.2666667 0.4497764
[1] 0.2333333 0.4301831
[1] 0.2000000 0.4068381
[1] 0.1666667 0.3790490
[1] 0.1333333 0.3457459
[1] 0.1000000 0.3051286
[1] 0.06666667 0.25370813
[1] 0.03333333 0.18257419

第一列是平均值,第二列是标准差。您可以看到可能的最低标准偏差约为 0.18


推荐阅读