请随机生成一组观测数据,表示一批产品的质量检验结果。每个产品只有两种可能的结果:合格或不合格。利用Python编程语言,使用极大似然估计来估计合格产品的概率,并通过绘制柱状图展示真实概率和估计概率的对比。
时间: 2024-10-18 11:23:17 浏览: 32
首先,我们将生成一组模拟数据,然后使用极大似然估计法来估计合格产品的概率。接着,我们会使用matplotlib库绘制柱状图以便对比真实概率和估计概率。
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import binom
# 生成随机数据(假设有1000个产品)
data = np.random.choice(['合格', '不合格'], size=1000)
passing_count = data.count('合格')
# 假设初始合格率猜测
initial_guess = 0.5
# 极大似然估计
def likelihood(p):
return binom.pmf(passing_count, len(data), p)
estimated_p = max(likelihood(np.linspace(0, 1, 100)), key=lambda x: likelihood(x))[0]
estimated_probability = estimated_p * 100 # 转换为百分比
# 绘制真实概率和估计概率的柱状图
labels = ['真实合格率', '估计合格率']
values = [np.mean(data == '合格') * 100, estimated_probability]
bar_width = 0.35
index = np.arange(len(labels))
plt.bar(index, values, bar_width, alpha=0.8, label='合格率')
plt.xlabel("类别")
plt.ylabel("概率(%)")
plt.title("产品质量检验结果的比较")
plt.xticks(index, labels)
plt.legend()
plt.show()
print(f"真实合格率为:{np.mean(data == '合格')} * 100%")
print(f"极大似然估计的合格率为:{estimated_probability}%")
阅读全文