【问题标题】:Plot Probability Curve with Summation绘制带有求和的概率曲线
【发布时间】:2023-03-31 14:20:01
【问题描述】:

我有以下问题:

我正在研究一个公式来计算一些网络效应。这个想法是我有 450 个“红色用户”和 6550 个“蓝色用户”,总共有 7000 个用户。现在我想绘制“选择 x 个用户(同一用户不能被选择两次,所以这是无替换抽样)并计算至少 1 个用户是红色的概率”。

例如,对于 x = 3,这意味着我从 7000 个随机用户中挑选 3 个并检查其中是否有任何“红色用户”

至少有 1 个红色用户的概率是 p = 1 - 所有 3 个选择都是蓝色用户的概率,蓝色用户的概率等于 p = 6550/7000,对吧?

导致至少 1 个红色用户的概率: * p = 1 - 6550/7000 * 6549/6999 * 6548/6998 *

因此我想出了公式:

f(x) = e^-(1- sum of (6500-i)/(7000-i)); for i = 0, till x)

我意识到曲线非常前卫,因为它只是从 ℕ 中的一个值到 ℕ 中的下一个值。 尽管添加十进制数字没有多大意义,因为“选择 0,5 个用户甚至 0,01 个用户”只是愚蠢的,但我希望看到完整的图表以便能够将公式与其他公式进行比较。

有什么方法可以在 python 中实现吗?

最好的问候,

科尔比

【问题讨论】:

    标签: python numpy matplotlib probability-theory


    【解决方案1】:

    您正在寻找的东西之前已经被广泛研究过,在概率论和统计学中被称为hypergeometric distribution。因此无需重新发明轮子!

    我们正在寻找至少一个红色用户,样本大小不一x。这等价于1 - Pr(0 red users | sample size = x),即减去它的补码。

    让我们通过考虑[1, # red users] 中的样本大小来说明这一点。一些 Python 代码可以帮助您,

    from scipy.stats import hypergeom
    import matplotlib.pyplot as plt
    
    red = 450
    total = 7000
    
    sample_sizes = list(range(1, red + 1))
    
    probabilities = [1 - hypergeom(total, red, sample_size).pmf(0)
                     for sample_size in sample_sizes]
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot(sample_sizes, probabilities, 'bo')
    
    ax.set_xlabel('Users drawn (#)')
    ax.set_ylabel('Probability of at least one red user')
    plt.show()
    

    这会产生以下图表,

    显然,随着我们增加样本大小,至少绘制一个红色用户的概率会迅速增加 - 鉴于我们对超几何分布的了解,这不是我们没有预料到的!

    【讨论】:

    • 哇...我想我应该早点问。以前从未听说过这个词。这对我帮助很大!谢谢!
    • @koapsi 没问题!如果这回答了您的问题,请考虑将其标记为已接受,以便关闭问题。
    • 是的,我会在详细了解超几何分布后立即关闭它。我的公式给了我与分布相同的值(只是没有那么详细),这让我有点困惑
    • 经过进一步研究,这并不是 100% 完全符合我的要求,因为我需要“至少”1 而不是“完全”的值,但这为我的公式提供了正确的想法!再次感谢您的帮助
    • 我的错...我应该将 list(range(1,red+1) 更改为 list(range(0,red+1)。现在这正是我的公式计算的结果。跨度>
    【解决方案2】:

    在您的公式中,它不是乘积而不是总和吗?无论如何,我最初的想法是使用泊松分布,但这行不通,因为它没有替换。问题是阶乘函数只为整数定义,所以你需要使用 gamma 函数。

    【讨论】:

    • 是的,当然是乘积而不是总和,哈哈。我猜@N。 Wouda 刚刚为我的问题提供了完美的答案。还是谢谢你
    猜你喜欢
    • 2021-08-17
    • 1970-01-01
    • 2015-11-24
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2014-07-15
    相关资源
    最近更新 更多