数据分析-基础-二项分布
(一)概念
二项分布是统计学中非常重要的基础概率分布之一,属于离散型概率分布,它描述了在固定次数的独立试验中成功次数的概率分布。二项分布描述的是在 n次独立重复的伯努利试验 https://blog.csdn.net/y8313568/article/details/152780988?spm=1001.2014.3001.5501中,成功次数为 k 的概率分布。伯努利试验是每次试验只有两种可能结果(如成功/失败、是/否、正面/反面)的随机试验(https://blog.csdn.net/y8313568/article/details/152780988?spm=1001.2014.3001.5501)
(二)核心特征
试验总次数 n 是预先确定的 -- 固定试验次数 (n)
每次试验只有“成功”或“失败”两种对立结果 -- 两种互斥结果
每次试验中成功的概率 p 保持不变 -- 恒定成功概率 (p)
各次试验的结果互不影响 -- 试验独立性
如果随机变量 X 服从参数为 n 和 p 的二项分布,记为 X ~ B(n, p)。
(三)二项分布公式
二项分布的概率质量函数(PMF)用于计算在 n 次试验中恰好成功 k 次的概率,其公式为:
P(X = k) = C(n, k) * p^k * (1-p)^(n-k)
其中,C(n, k) 是组合数,计算公式为 n! / (k! * (n-k)!)
。
二项分布的几个重要数字特征:
数字特征 | 计算公式 |
---|---|
期望值 (E(X)) | E(X) = n * p |
方差 (Var(X)) | Var(X) = n * p * (1-p) |
标准差 (σ) |
|
(四)重要性质
1.可加性:如果 X ~ B(n, p), Y ~ B(m, p),且 X 与 Y 相互独立,那么 X+Y ~ B(n+m, p)。
2.近似正态分布:当 n 很大,且 p 不过于接近 0 或 1(通常认为 np > 5 且 n(1-p) > 5),二项分布可以近似用正态分布 X ~ N(np, np(1-p)) 来描述。为许多大样本统计推断提供了便利。
3.近似泊松分布:当 n 很大而 p 很小(通常 n > 100 且 p < 0.1)时,二项分布可以用参数 λ = np 的泊松分布来近似。
(五)注意事项
在实际应用二项分布时,需要检查是否满足其前提条件:
结果互斥:每次试验必须确保只有“成功”和“失败”两种明确且对立的结果。
概率恒定:每次试验的成功概率 p 应始终保持不变。例如,如果是从有限总体中不放回地抽样,p 就会改变,此时应使用超几何分布而非二项分布。
试验独立:各次试验的结果不能相互影响。例如,研究传染病的发病情况时,如果疾病具有传染性,病例之间不独立,则不适合用二项分布模型。
(六)Python计算概率
在Python中,可以使用 scipy.stats
模块中的 binom
函数来进行二项分布的相关计算。
import numpy as np
import scipy.stats as stats# 设置参数
n = 10 # 试验次数
p = 0.3 # 每次试验的成功概率# 1. 计算概率质量函数 (PMF) - 恰好成功k次的概率
k = 3
prob = stats.binom.pmf(k, n, p)
print(f"恰好成功{k}次的概率为: {prob:.4f}")# 2. 计算累积分布函数 (CDF) - 成功次数小于等于k次的概率
k_cum = 5
cum_prob = stats.binom.cdf(k_cum, n, p)
print(f"成功次数小于等于{k_cum}次的累积概率为: {cum_prob:.4f}")# 3. 生成随机数 - 模拟多组试验
# 参数size=5表示进行5组这样的10次试验,返回每组试验的成功次数
random_samples = stats.binom.rvs(n, p, size=5)
print(f"生成的随机样本(每组试验的成功次数): {random_samples}")# 4. 绘制二项分布的概率质量函数图形(可选)
k_values = np.arange(0, n+1) # 所有可能的成功次数 (0到10)
pmf_values = stats.binom.pmf(k_values, n, p)
(七)常见应用场景
1. 互联网
应用场景 | 具体说明 | 二项分布参数 |
---|---|---|
A/B测试分析 | 测试新功能/页面,用户点击率(点击/曝光)的分布 | n=曝光用户数,p=预估点击率 |
用户转化率建模 | 分析广告投放中,每1000次展示带来的注册转化数 | n=展示次数,p=转化率 |
推荐系统效果 | 评估推荐算法产生的点击次数分布 | n=推荐次数,p=平均点击率 |
用户留存分析 | 预测新注册用户中7日内活跃的用户数量 | n=新增用户数,p=7日留存率 |
2. 金融与风控
应用场景 | 具体说明 | 二项分布参数 |
---|---|---|
信贷违约预测 | 评估贷款组合中发生违约的客户数量 | n=贷款笔数,p=违约概率 |
欺诈检测 | 预测交易流水中的欺诈交易数量 | n=交易笔数,p=欺诈发生率 |
保险理赔建模 | 计算特定时期内保险产品的预期理赔次数 | n=保单数量,p=理赔概率 |
3. 生产制造与质量管控
应用场景 | 具体说明 | 二项分布参数 |
---|---|---|
产品质量检验 | 抽样检验一批产品中的不合格品数量 | n=抽样数量,p=不良品率 |
生产线良率监控 | 监控生产线产出产品的合格数量分布 | n=产量,p=良率 |
供应商质量评估 | 评估不同供应商批次产品的质量稳定性 | n=到货数量,p=验收通过率 |
4.生物医药
应用场景 | 具体说明 | 二项分布参数 |
---|---|---|
药物有效性试验 | 评估药物治疗有效的患者数量分布 | n=试验患者数,p=有效率 |
疾病发病率研究 | 研究特定人群中某种疾病的发病数量 | n=人口数量,p=发病率 |
检测试剂准确性 | 验证检测试剂的真阳性/真阴性数量 | n=检测样本数,p=准确率 |
案例1:电商促销活动效果评估
import scipy.stats as stats
import numpy as np# 场景:促销活动发送了10,000条推送,历史平均点击率为5%
n = 10000 # 发送数量
p = 0.05 # 历史点击率# 计算点击人数的概率分布
expected_clicks = n * p # 期望点击人数:500人
print(f"期望点击人数:{expected_clicks}")# 计算实际点击450-550人的概率
prob_450_550 = stats.binom.cdf(550, n, p) - stats.binom.cdf(449, n, p)
print(f"点击人数在450-550之间的概率:{prob_450_550:.4f}")# 评估活动效果:如果实际点击600人,是否显著优于预期?
p_value = 1 - stats.binom.cdf(599, n, p) # 单侧检验
print(f"点击600人以上的概率(p值):{p_value:.6f}")
案例2:金融风控中的违约概率分析
import scipy.stats as stats
import numpy as np# 场景:银行有1000笔小额贷款,历史违约率为2%
n_loans = 1000
default_rate = 0.02# 计算不同违约数量的概率
print("违约数量概率分析:")
for k in [10, 15, 20, 25]:prob = stats.binom.pmf(k, n_loans, default_rate)cum_prob = stats.binom.cdf(k, n_loans, default_rate)print(f"违约{k}笔的概率:{prob:.4f},累计概率:{cum_prob:.4f}")# 设置风险预警阈值(95%分位数)
risk_threshold = stats.binom.ppf(0.95, n_loans, default_rate)
print(f"风险预警阈值(95%分位数):{risk_threshold}笔")
案例3:产品质量抽检方案设计
import scipy.stats as stats
import numpy as np# 场景:制定产品抽检方案,要求以95%的置信度发现质量问题
def design_sampling_plan(defect_rate, confidence_level):"""设计抽检方案:确定需要抽检多少产品才能以指定置信度发现问题"""for sample_size in range(1, 1000):# 计算在给定缺陷率下,至少发现1个缺陷品的概率prob_detect = 1 - stats.binom.pmf(0, sample_size, defect_rate)if prob_detect >= confidence_level:return sample_size, prob_detectreturn None# 如果缺陷率为1%,要求95%的置信度发现缺陷
sample_size, detection_prob = design_sampling_plan(0.01, 0.95)
print(f"需要抽检{sample_size}个产品,检测概率为{detection_prob:.4f}")
替代方案考虑
当二项分布假设不满足时,可以考虑其他分布:
情况 | 问题 | 替代分布 |
---|---|---|
抽样比例大 | 不放回抽样,样本量占总体比例大 | 超几何分布 |
概率p变化 | 成功概率在不同试验间变化 | 贝塔二项分布 |
过度离散 | 方差明显大于np(1-p) | 负二项分布 |
相关事件 | 试验结果相互影响 | 更复杂的相关模型 |