概率基础——二项分布

news2025/8/17 13:09:00

概率基础——二项分布

介绍

在统计学中,二项分布是一种离散型概率分布,它描述了在一系列独立同分布的伯努利试验中成功的次数。这里我们以抛硬币为例,将一个硬币抛掷 n n n次,每次抛掷结果为正面向上的概率为 p p p,每次抛掷彼此之间都是相互独立的,随机变量 X X X对应的是 n n n次抛掷中正面向上的总次数。这种情况下,随机变量 X X X服从二项分布,参数为 n n n p p p

理论及公式

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

P ( X = k ) = ( n k ) p k ( 1 − p ) n − k P(X = k) = \binom{n}{k} p^k (1-p)^{n-k} P(X=k)=(kn)pk(1p)nk

其中, n n n 是试验次数, p p p是每次试验成功的概率, k k k是成功的次数。

示例与绘图

我们通过三组参数来绘制二项式分布的概率质量函数图:

1. ( n , p ) = ( 10 , 0.24 ) (n, p) = (10, 0.24) (n,p)=(10,0.24)
2. ( n , p ) = ( 10 , 0.5 ) (n, p) = (10, 0.5) (n,p)=(10,0.5)
3. ( n , p ) = ( 10 , 0.85 ) (n, p) = (10, 0.85) (n,p)=(10,0.85)

接下来,我们使用Python来实现绘制这些概率质量函数图。

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom

# 参数设置
params = [(10, 0.24), (10, 0.5), (10, 0.85)]
colors = ['r', 'g', 'b']
labels = ['(10, 0.24)', '(10, 0.5)', '(10, 0.85)']

# 绘制概率质量函数图
plt.figure(figsize=(10, 6))
for i, (n, p) in enumerate(params):
    x = np.arange(0, n+1)
    pmf = binom.pmf(x, n, p)
    plt.plot(x, pmf, 'o-', color=colors[i], label=labels[i])

plt.title('Binomial Distribution PMF')
plt.xlabel('Number of Successes')
plt.ylabel('Probability')
plt.legend()
plt.grid(True)
plt.show()

PMF

运行以上代码,将会得到一个包含三个二项式分布概率质量函数图的图表。从图中可以看出,当成功概率 (p) 不同时,二项式分布的形态也会发生变化。当 (p) 接近 0.5 时,分布呈对称形态,而当 (p) 偏离 0.5 时,分布则呈现出偏斜的形态。

上述模拟采样实验可以得到每种试验结果所对应的次数,然后通过归一化,可以计算出随机变量每一种取值所对应的频数,并将其作为概率的近似进行绘图观测。
下面展示一些 内联代码片

from scipy.stats import binom
import matplotlib.pyplot as plt

fig,ax = plt.subplots(3, 1)
params = [(10, 0.24), (10, 0.5), (10, 0.85)]
x = range(0, 11)
for i in range(len(params)):
    binom_rv = binom(params[i][0], params[i][1])
    rvs = binom_rv.rvs(size=10000)
    ax[i].hist(rvs, bins =10, density=True, alpha=0.75, edgecolor='black')
    ax[i].set_title('n = %i, p = %.2f' % (params[i][0], params[i][1]))
    ax[i].set_xlim(0, 10)
    ax[i].set_ylim(0, 0.6)
    ax[i].grid(ls="--")
    print(f'rvs {i}:%{rvs}')
plt.show()

采样示意图
程序打印的结果是3个数组,就是不同参数下分别做10万次采样试验的结果数组。
服从二项分布的随机变量的期望和方差公式如下:
期望: E [ X ] = n p 期望:E[X]=np 期望:E[X]=np
方差: V [ X ] = n p ( 1 − p ) 方差:V[X]=np(1-p) 方差:V[X]=np(1p)

import numpy as np
from scipy.stats import binom

binom_rv = binom(10, 0.24)
mean, var, skew, kurt = binom_rv.stats(moments='mvsk')
binom_rv = binom_rv.rvs(size=100000)
E_sim = np.mean(binom_rv)
S_sim = np.std(binom_rv, ddof=1)
V_sim = S_sim * S_sim

print('\nBinomial distribution simulation results')
print('  n = %i, p = %.2f' % (10, 0.24))
print(f'mean={mean},var={var}')
print(f'E_sim={E_sim},V_sim={V_sim}')
print(f'E=np={10 * 0.24}, V=np(1-p)={10 * 0.24 * 0.76}')

在这里插入图片描述

总结

本文介绍了二项分布及Python实现,利用了函数包的各个方法计算出各个理论统计值,利用采样样本数据计算出来的值和理论值基本算都是相等的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1453410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙开发系列教程(二十四)--List 列表操作(3)

列表编辑 1、新增列表项 定义列表项数据结构和初始化列表数据,构建列表整体布局和列表项。 提供新增列表项入口,即给新增按钮添加点击事件。 响应用户确定新增事件,更新列表数据。 2、删除列表项 列表的删除功能一般进入编辑模式后才可…

《Go 简易速速上手小册》第9章:数据库交互(2024 最新版)

文章目录 9.1 连接数据库 - Go 语言的海底宝藏之门9.1.1 基础知识讲解安装数据库驱动数据库连接 9.1.2 重点案例:用户信息管理系统准备数据库Go 代码实现连接数据库添加新用户查询用户信息用户登录验证主函数 9.1.3 拓展案例 1:批量添加用户准备数据库Go…

【IIS中绑定SSL证书】

下载SSL证书: 打开服务器IIS: 点击导入 在IIS中新增网站:

Sentinel注解@SentinelResource详解

Sentinel注解SentinelResource详解 熔断 针对访问超过限制【sentinel中配置的限制】的资源,通过java代码配置,返回一个自定义的结果,需要用到 SentinelResource 注解的 blockHandlerClass 和 blockHandler 属性。 blockHandlerClass&#…

防御保护--内容安全过滤

目录 文件过滤 内容过滤技术 邮件过滤技术 应用行为控制技术 DNS过滤 URL过滤 防火墙 ---- 四层会话追踪技术 入侵防御 ---- 应用层深度检测技术 深度包检测深度流检测 随着以上俩种的成熟与完善,提出了所谓的内容安全过滤 当然上网行为确实需要治理&…

反转链表【基础算法精讲 06】

视频地址 反转链表【基础算法精讲 06】_哔哩哔哩_bilibili 概念 链表的每一个结点都包含节点值 和1指向下一个结点的next指针 , 链表的最后一个结点指向空; 206 . 反转链表 用cur记录当前遍历到的结点 , 用pre表示下一个结点 , 用nxt表示cur的下一个…

Windows 编译 yangfengzzz/fluid-engine-OpenVDB

我想将 OpenVDB 接入 doyubkim 的流体引擎 https://github.com/doyubkim/fluid-engine-dev 然后搜到已经有人做过这件事了 https://github.com/yangfengzzz/fluid-engine-OpenVDB Windows 编译 yangfengzzz/fluid-engine-OpenVDB 但是我是 windows,所以想要编译…

代码随想录算法训练营第三二天 | 买卖股票、跳跃游戏

目录 买卖股票的最佳时机II跳跃游戏跳跃游戏ii LeetCode 122.买卖股票的最佳时机II LeetCode 55. 跳跃游戏 LeetCode 45.跳跃游戏II 买卖股票的最佳时机II 只有一只股票! 当前只有买股票或者卖股票的操作。 最终利润是可以分解的:把利润分解为每天为…

【机器学习】机器学习常见算法详解第4篇:KNN算法计算过程(已分享,附代码)

本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用&#xff0…

Vue练习1:组件开发1(头像组件)

样式预览 注释代码 <template><div class"img-box":style"{ //动态style必须为对象width: size rem,height: size rem}"><imgclass"avatar-img":src"url" //动态url/></div> </templ…

【ARM架构】ARMv8-A 系统中的安全架构概述

一个安全或可信的操作系统保护着系统中敏感的信息&#xff0c;例如&#xff0c;可以保护用户存储的密码&#xff0c;信用卡等认证信息免受攻击。 安全由以下原则定义&#xff1a; 保密性&#xff1a;保护设备上的敏感信息&#xff0c;防止未经授权的访问。有以下几种方法可以做…

算法详解:滑动窗口-- 最大连续1的个数 III

题目来源:力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 本期讲解滑动窗口经典例题,我会从三个点开始讲解题目1.题目解析2.算法原理 3.编写代码 1.题目解析 这道题目理解起来还是比较简单的,我们简单分析一下,也就是给定一个数组,数组是由1和0组成…

PLC-Recorder的延伸分析功能说明

目录 一、缘起 二、如何从PLC-Recorder获取数据 1、在线获取 2、全自主打开数据文件 3、延伸分析 三、设置方法 四、效果展示 一、缘起 在各个行业&#xff0c;在不同的场景中&#xff0c;朋友们拿到数据后&#xff0c;想做的事情五花八门&#xff0c;有做宏观分析的、…

ABC341 A-G

Toyota Programming Contest 2024#2&#xff08;AtCoder Beginner Contest 341&#xff09; - AtCoder B读不懂题卡了&#xff0c;F读假题卡了&#xff0c;开题开慢了rank了 A - Print 341 题意&#xff1a; 打印一串交替出现的包含N个0&#xff0c;N1个1的01串 代码&…

OpenCV-40 绘制直方图

一、使用matplotlib画直方图 可以利用matplotlib把OpenCV统计得到的直方图绘制出来 示例代码如下&#xff1a; import cv2 import matplotlib.pyplot as pltlena cv2.imread("beautiful women.png") # 变为黑白图片 gray cv2.cvtColor(lena, cv2.COLOR_BGR2GRAY…

视觉设计师的项目评审复盘攻略:如何提升设计质量与效率

视觉设计师的角色是至关重要的&#xff0c;以确保设计项目满足预期的质量和结果。作为一名视觉设计师&#xff0c;有必要进行定期的项目审查&#xff0c;以确保项目在正轨上进行&#xff0c;并尽早解决任何问题。在本文中我们将讨论可视化设计人员如何做好项目评审&#xff0c;…

HarmonyOS—@State装饰器:组件内状态

State装饰的变量&#xff0c;或称为状态变量&#xff0c;一旦变量拥有了状态属性&#xff0c;就和自定义组件的渲染绑定起来。当状态改变时&#xff0c;UI会发生对应的渲染改变。 在状态变量相关装饰器中&#xff0c;State是最基础的&#xff0c;使变量拥有状态属性的装饰器&a…

永久禁止windows自动更新方法

文章目录 前言一、打开本地组策略编辑器二、禁用windows更新总结 前言 每次打开电脑&#xff0c;右下角就会弹出设备更新提示&#xff0c;看着令人烦恼&#xff0c;并且更新可能导致电脑设置发生改变甚至是卡顿&#xff0c;所以为了自己方便于是出了禁用电脑更新的办法&#x…

「算法」二分查找1:理论细节

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;算法详解 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 二分查找算法简介 这个算法的特点就是&#xff1a;细节多&#xff0c;出错率高&#xff0c;很容易就写成死循环有模板&#xff0c;但…

Day46 300最长递增子序列 674最长连续递增子序列 718最长重复子数组 1143最长公共子序列

300 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序…