- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想在 python 上计算二项式概率。我尝试应用公式:
probability = scipy.misc.comb(n,k)*(p**k)*((1-p)**(n-k))
我得到的一些概率是无限的。我检查了一些 p=inf 的值。对于其中一个,n=450,000,k=17。该值必须大于 1e302,这是 float 处理的最大值。
然后我尝试使用 sum(np.random.binomial(n,p,numberOfTrials)==valueOfInterest)/numberOfTrials
这会抽取 numberOfTrials 个样本并计算抽取值 valueOfInterest 的平均次数。
这不会增加任何无限值。但是,这是继续进行的有效方法吗?为什么这种方式不会产生任何无穷大的值,而计算概率却可以?
最佳答案
因为您使用的是 scipy,所以我想我会提到 scipy 已经实现了统计分布。另请注意,当 n 如此大时,二项式分布非常接近正态分布(如果 p 非常小,则为泊松分布)。
n = 450000
p = .5
k = np.array([17., 225000, 226000])
b = scipy.stats.binom(n, p)
print b.pmf(k)
# array([ 0.00000000e+00, 1.18941527e-03, 1.39679862e-05])
n = scipy.stats.norm(n*p, np.sqrt(n*p*(1-p)))
print n.pdf(k)
# array([ 0.00000000e+00, 1.18941608e-03, 1.39680605e-05])
print b.pmf(k) - n.pdf(k)
# array([ 0.00000000e+00, -8.10313274e-10, -7.43085142e-11])
关于python - 计算大数的二项式概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22201913/
使用 glm 时,binomial、binomial() 和 'binomial' 之间有什么区别。它们并不相同,如以下代码所示: > library(MASS) > bwdf = birthwt[-
我一直在用我的(非 r-savvy)大脑来让 R 产生二项式 glmer 模型的正确预测的百分比。我知道这不是统计上的 super 信息,但经常被报道;所以我也想举报。 数据: 因变量:Tipo,它有
我一直在寻找一种方法来使数据符合 beta 二项分布并估计 alpha 和 beta,类似于 VGAM 库中的 vglm 包的方式。我一直无法找到如何在 python 中执行此操作。有一个 scipy
如何在 Julia 中提取一般线性模型中指定的数据分布?例如,下面我安装了一个玩具示例 Poisson GLM。我想从模型中提取一个字符串“Poisson”。同样,如果使用数据分布指定模型 = Bin
我是一名优秀的程序员,十分优秀!