r-从同一组中选择x个元素的概率



有人能帮我解决以下问题并告诉我如何使用R解决问题吗?

我有两个群(群M和群F(,每个群有9个元素(M1:M9和F1:F9(。

我想从这些组中随机抽取4个元素:

#Make the sample reproducible
set.seed(11)
#two groups with 
groupM <- c("M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10")
groupF <- c("F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10")
groupAll <- c(groupM, groupF)
sample(groupAll, 4, replace = FALSE)

所有4个元素都从同一组中选择的可能性有多大?如何计算这个概率,以及如何使用R来解决这个问题?

正如@Bas所解释的,这是一个超几何分布:因此可以计算为:

dhyper(4,9,9,4) * 2
[1] 0.08235294

或者简单地说:

2* choose(9, 4) / choose(18, 4)
[1] 0.08235294

模拟部分:

mean(replicate(40000,mean(sample(x, 4))%in%1:2))
[1] 0.0829

我们可以从所有18个元素中选择4的方法的数量为CCD_ 1(=3060(方式
我们可以从groupM中选择4的方式的数量是choose(9, 4),我们可以从groupF中选择4方式的数量也是choose(9, 4)
因此,从1组中选择全部4个是choose(9, 4) + choose(9, 4)(我们要么从groupM中选择全部,要么从groupF中选择全部。

因此,解决方案是(choose(9, 4) + choose(9, 4)) / choose(18, 4),即choose(18, 4)0。

例如,您可以通过来模拟

#Make the sample reproducible
set.seed(11)
#two groups with 
groupM <- c("M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9")
groupF <- c("F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9")
groupAll <- c(groupM, groupF)
mean(replicate(100000,
{
perc_male <- mean(startsWith(sample(groupAll, 4, replace = FALSE), "M"))
same_group <- (perc_male == 1) | (perc_male == 0)
same_group
}))

使用您的代码进行采样,并检查采样的所有元素是否以"M""F"开头,并将此实验复制100000次。

最新更新