2024数学建模国赛B题代码

B题已经完成模型代码!详情查看文末名片

问题1:可以考虑使用统计学中的“样本量估算”方法,使用二项分布或正态近似来决定最少的样本量,并通过假设检验(如单侧检验)在95%和90%置信度下进行判断。

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

# 参数设置
p_0 = 0.10  # 标称次品率(供应商声称)
confidence_level_95 = 0.95  # 问题 (1) 的置信水平
confidence_level_90 = 0.90  # 问题 (2) 的置信水平
margin_of_error = 0.05  # 误差限

# 计算Z值
Z_95 = stats.norm.ppf((1 + confidence_level_95) / 2)  # 95%置信区间
Z_90 = stats.norm.ppf((1 + confidence_level_90) / 2)  # 90%置信区间

# 样本量估算公式
def sample_size(Z, p, E):
    """根据Z值,次品率p,误差限E计算最少样本量"""
    return (Z**2 * p * (1 - p)) / (E**2)

# 计算95%和90%置信度下的最少样本量
n_95 = sample_size(Z_95, p_0, margin_of_error)
n_90 = sample_size(Z_90, p_0, margin_of_error)

print(f"95%置信水平下的最少样本量: {int(np.ceil(n_95))}")
print(f"90%置信水平下的最少样本量: {int(np.ceil(n_90))}")

# 抽样假设检验
def hypothesis_test(p_0, n, x, confidence_level):
    """
    根据样本量n,抽样检测到的次品数量x,以及置信水平,计算置信区间
    p_0: 标称次品率
    n: 样本量
    x: 次品数量
    confidence_level: 置信水平
    """
    p_hat = x / n  # 样本次品率
    Z = stats.norm.ppf((1 + confidence_level) / 2)
    margin = Z * np.sqrt((p_hat * (1 - p_hat)) / n)
    lower_bound = p_hat - margin
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值