在我的数据集中,有N
人,每个人被分成一个3组(groups = {A, B, C})
。我想找出两个随机人,n_1
和{
我有每一组的数据,以及有多少人属于他们。重要的是,每个小组的规模都不一样。
import pandas as pd
import numpy as np
import math
data = {
"Group": ['A', 'B', 'C'],
"Count": [20, 10, 5],
}
df = pd.DataFrame(data)
^{pr2}$
我想我知道如何得到样本空间,S
,但我不确定如何得到分子。在
def nCk(n,k):
f = math.factorial
return f(n) / f(k) / f(n-k)
n = sum(df['Count'])
k = 2
s = nCk(n, k)
我的离散数学技能有点生疏,请随意纠正我。你让
N
人分成不同大小的一组s_1, ..., s_n
,这样N = s_1 + ... + s_n
。在i
的概率是s_i / N
i
的几率是(s_i - 1) / (N - 1)
i
组的几率是s_i / N * (s_i - 1) / (N - 1)
代码:
我们可以将这个解决方案推广到“所有人都在同一组中的概率”:
^{pr2}$当
k > s.max()
(本例中为20)时,答案为0,因为您无法将它们全部放入一个组中。当k > s.sum()
(本例中为35)时,结果是nan
。在我用超几何分布来回答你的问题,超几何分布是一个离散的概率分布,它描述了n次绘图中k次成功(绘制的对象具有特定特征的随机绘图)的概率,没有替换,从一个大小为N的有限总体中,精确地包含具有该特征的K个对象,其中每次绘制都是成功或失败。相比之下,二项式分布描述了n次取款中k次成功的概率。 所以总概率应该是两者都属于A的概率+都属于B的概率+都属于C的概率。 这意味着
在规范术语中:
^{pr2}$输出:
相关问题 更多 >
编程相关推荐