【问题标题】:calculating probability of binomial distribution计算二项分布的概率
【发布时间】:2021-05-28 07:37:24
【问题描述】:

“100道题,每道题有4个可能的答案。如果每道题随机选择答案,通过考试的概率是多少(获得40%以上)”

x = ?
n = 100
p = 0.25

计算 40% 或更少就像为 x 的值输入 40 一样简单,但我如何将其交换为 40% 或更多?我试过 -40、60、-60,但显然这是错误的。

代码

import scipy.stats as stats

cum_binomalpha = stats.binom.pmf(40, n=100, p=0.25)
print(round(cum_binomalpha, 6))

编辑 - 可爱的 DOVELY 解决方案

import scipy.stats as stats

cumm_binomalpha = stats.binom.cdf(39, n=100, p=0.25)
print (round(1-cumm_binomalpha, 6))

【问题讨论】:

  • P(X > k) = 1 - P(X <= k) 您还需要使用 cdf 来计算累积概率,而不是 pmf

标签: python python-3.x scipy statistics


【解决方案1】:

您可以使用sympy 获得准确答案:

from sympy import S
from sympy.stats import Binomial, P

b = Binomial('b', 100, S(1) / 4)
print(P(b >= 40).evalf(), P(b >= 40))

结果:

0.000686592207962991
68956946241719424989885392307281546441260036992065207027/100433627766186892221372630771322662657637687111424552206336

使用 scipy,您可以尝试以下操作:

import scipy.stats as stats
import numpy as np

print(stats.binom.pmf(np.arange(40, 101), n=100, p=0.25).sum())
print(1 - stats.binom.cdf(39, n=100, p=0.25))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-13
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 2015-08-20
    • 2020-08-04
    相关资源
    最近更新 更多