我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合,专为本次赛题设计,旨在帮助您深入理解数学建模的每一个环节。
本次国赛b题可以做如下考虑
本次国赛(五题)完整内容均可以在文章末尾领取!
第一个问题是关于企业在供应商声称一批零配件的次品率不会超过某个标称值的情况下,如何设计一个抽样检测方案,以尽可能少的检测次数来决定是否接收这批零配件。具体要求如下:
-
设计一个检测方案,在95%的信度下,如果认定零配件次品率超过标称值,则拒收这批零配件。
-
设计一个检测方案,在90%的信度下,如果认定零配件次品率不超过标称值,则接收这批零配件。
这里的标称值为10%。
基于这个问题,目的是通过抽样检测来有效判断零配件的品质,从而做出相应的接收或拒收决策。 针对问题 1,我们需要通过抽样检测方法来判断供应商声称一批零配件(零配件 1 或零配件 2)的次品率是否超过标称值 10%。为此,我们可以利用统计学中的样本抽样和假设检验的方法来建立检测方案。
模型设定
-
设定参数和符号:
-
设零配件次品率的真实值为$p$,零配件次品率的标称值为$0.1$(即 10%)。
-
根据样本检测的结果(合格的样本数和总样本数),我们可以计算次品率的点估计值$\hat{p} = \frac{X}{n}$,其中 $X$ 为抽样中不合格的零配件数量,$n$ 为抽样总数。
-
建立假设检验:
-
零假设 $H_0: p \leq 0.1$ (次品率不超过标称值)
-
备择假设 $H_1: p > 0.1$ (次品率超过标称值)
-
选择显著性水平:
-
设显著性水平为 $\alpha$。
-
问题 (1) 中,在95%的信度下,$\alpha = 0.05$;在问题 (2) 中,在90%的信度下,$\alpha = 0.10$。
-
确定所需样本量: 为了决定抽样次数,可以使用二项分布的近似性质:
-
问题 1:抽样检测方案设计
为了解决企业如何通过抽样检测方案有效判断零配件的品质,并在不同信度下做出接收或拒收的决策,我们需要使用统计抽样的理论。
背景信息
企业希望检测零配件的次品率(不合格率)是否超过标称值10%。这是一个典型的假设检验问题:
-
零假设 H_0: 零配件的次品率不超过10%(即 p \leq 0.10)
-
对立假设 H_1: 零配件的次品率超过10%(即 p > 0.10)
为了进行抽样检测,我们可以用二项分布来建模,假设总共检测了 n 个零配件,并发现了 k 个不合格品。根据我们设定的信度,可以计算出拒收或接收阈值。
1.1 在95%的信度下拒收零配件
在95%的信度下,我们需要找到最小的样本量 n,使得如果次品率超过10%时,拒绝原假设的概率达到95%。
计算步骤
-
使用二项分布计算拒绝阈值。
-
设 p = 0.10(标称次品率),并选取显著性水平 \alpha = 0.05。
-
计算临界值 k_c(拒绝零假设的最小不合格品数量)。
问题 1: 抽样检测方案
我们设定某批零配件的次品率 $p$ 不超过一个标称值 $p_0 = 10\% = 0.1$,我们需要设计两种抽样方案,分别满足以下条件:
-
在 95% 的信度下,若认定零配件次品率超过标称值,则拒收该批零配件。
-
在 90% 的信度下,若认定零配件次品率不超过标称值,则接收该批零配件。
假设我们抽取 $n$ 个样本,样本中次品的个数为 $X$,那么 $X$ 服从二项分布 $X \sim \text{B}(n, p)$,其中 $p$ 是实际次品率。我们考虑下面的两种情况:
import scipy.stats as stats
# Function to determine the sample size and number of defectives
def find_sample_size_and_defectives(p, alpha, is_reject=True):
# We will iterate for different sample sizes until we find a valid one
for n in range(1, 100): # Adjust upper limit to ensure we find a sample size
k = int((1 - alpha) * n)
prob = 1 - stats.binom.cdf(k, n, p) # Calculate the probability of having k or less defectives
if is_reject and prob <= alpha:
return n, k # For reject criteria
elif not is_reject and prob >= (1 - alpha):
return n, k # For accept criteria
# Conditions
p = 0.10 # The defect rate
alpha_case1 = 0.05 # 95% confidence for rejecting
alpha_case2 = 0.10 # 90% confidence for accepting
# Case 1: 95% confidence, reject if defect rate > 10%
sample_size_case1, max_defectives_case1 = find_sample_size_and_defectives(p, alpha_case1, is_reject=True)
# Case 2: 90% confidence, accept if defect rate <= 10%
sample_size_case2, max_defectives_case2 = find_sample_size_and_defectives(p, alpha_case2, is_reject=False)
print(f"Case 1 (Reject if defective rate > 10%): Sample Size = {sample_size_case1}, Max Defectives = {max_defectives_case1}")
print(f"Case 2 (Accept if defective rate <= 10%): Sample Size = {sample_size_case2}, Max Defectives = {max_defectives_case2}")
由于篇幅过长
更多内容具体可以看看我的下方名片!
里面包含有本次竞赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析建模比赛
记得关注Tina表姐哦~