如何从二项分布中抽取样本 - binomial

binomial是从从二项分布中抽取样本。

这里尝试通过numpy.random.binomial从二项分布中抽取样本。

所用示例参考和修改自网络资料。

1 binomial定义

1.1 binomial公式定义

二项分布的概率质量函数 (PMF) 为

其中n是试验次数, p是成功概率, N是成功次数。

1.2 binomial适用场景

假设,p = 总体比例估计值,n = 样本数量,示例如下。

例如,一个包含 15 人的样本显示有 4 人是左撇子,11 人是右撇子。那么 p = 4/15 = 27%。

在使用随机样本估计总体比例估计值的标准误差时,一般情况会选择使用正态分布。

然而,如果当p*n <= 5,即总体比例估计值过小,这种情况下应该使用二项分布。

比如在上述例子中

p = 4/15 = 27%。0.27*15 = 4 < 5

因此在这种情况下应使用二项分布。

https://numpy.net.cn/doc/stable/reference/random/generated/numpy.random.binomial.html

2 binomial示例

这里通过python程序示例binomial的抽样估计过程。

2.1 分布中抽样

通过np.random.binomial,从分布中抽取样本。

假设每次抽样命中概率为p=0.5,重复n次估计,一共进行1000次抽样。

示例程序如下

n, p = 10, 0.5 # number of trials, probability of each trial

s = np.random.binomial(n, p, 1000)

result of flipping a coin 10 times, tested 1000 times.

2.2 抽样应用解析

这里给定一个真实的例子,描述如下。

一家公司钻探了 9 口探井,每口井的成功概率估计为 0.1。

所有九口井都失败了,这种情况发生的概率是多少?

计算程序如下所示

复制代码
sum(np.random.binomial(9, 0.1, 20000) == 0)/20000.
# answer = 0.38885, or 38%.

这里详细分步分析计算过程。

1)进行 20,000 次模型试验,示例如下

每次模型试验独立重复9次,单次命中概率0.1

整体进行20000次模型试验

np.random.binomial(9, 0.1, 20000)

输出如下

array([0, 1, ..., 4])

2)产生零个阳性结果,即九口井都失败了的次数

np.random.binomial(9, 0.1, 20000) == 0

输出

输出示例如下,由于是重新运行,所以数值和1)中输出的数值会不一致。

array([False, False, ..., False])

3)计算产生零个阳性结果的次数

sum(np.random.binomial(9, 0.1, 20000)==0)

输出如下,具体过程为

如果本次试验产生了0个阳性样本,则+1记录,然后继续检查统计下次试验。

np.int64(7735)

4)计算0阳性样本发生的概率

sum(np.random.binomial(9, 0.1, 20000) == 0)/20000.

输出如下,即为9次打井试验中0阳性发生的概率。

np.float64(0.38625)

reference


numpy.random.binomial

https://numpy.net.cn/doc/stable/reference/random/generated/numpy.random.binomial.html

如何用python模拟pass@k过程

https://blog.csdn.net/liliang199/article/details/155397143

相关推荐
EllenLiu5 分钟前
架构演进与性能压榨:在金融 RAG 中引入条款森林 (FoC)
人工智能·架构
IT_陈寒19 分钟前
深入理解JavaScript:核心原理与最佳实践
前端·人工智能·后端
Presto26 分钟前
AI 时代 .env 文件不再安全——我试图找到替代方案,然后撞上了一堵墙
人工智能
IT WorryFree32 分钟前
OpenClaw-Medical-Skills 仓库介绍
人工智能·skill·openclaw
多年小白33 分钟前
今日AI科技简报 | 2026年3月19日
人工智能·科技·ai编程
逄逄不是胖胖41 分钟前
《动手学深度学习》-69预训练bert数据集实现
人工智能·深度学习·bert
IT_陈寒1 小时前
Python开发者的效率革命:这5个技巧让你的代码提速50%!
前端·人工智能·后端
用户69371750013841 小时前
不卷AI速度,我卷自己的从容——北京程序员手记
android·前端·人工智能
love530love1 小时前
不用聊天软件 OpenClaw 手机浏览器远程访问控制:Tailscale 配置、设备配对与常见问题全解
人工智能·windows·python·智能手机·tailscale·openclaw·远程访问控制
lifallen1 小时前
从零推导多 Agent 协作网络 (Flow Agent)
人工智能·语言模型