Matplotlib绘制二项分布似然函数y轴数值与参考图不符问题求解
问题原因说明
你当前的代码计算结果是完全正确的,得到的是二项分布n=10, k=4对应的原始似然函数值,在x=0.4处数值约为0.25。
你观察到的参考图数值差异,本质是参考图绘制的不是原始似然,而是均匀先验下的后验概率密度:
- 当对抛硬币的正面概率
p取Beta(1,1)均匀先验时,观测到4次正面、6次反面的后验分布为Beta(k+1, n-k+1) = Beta(5,7) - Beta是连续概率分布,概率密度允许大于1,在
x=0.4处Beta(5,7)的密度约为2.5,和你看到的参考图数值完全匹配。
简单来说就是原图对似然做了归一化缩放,让曲线下总面积为1,转成了概率密度的表现形式,因此数值量级和原始似然有差异。
修正后可复现参考图的代码
import numpy as np import matplotlib.pyplot as plt from scipy.stats import beta fig, ax = plt.subplots(nrows=1, ncols=1) x = np.linspace(0, 1, 1000) # 4次成功、6次失败,均匀先验对应后验Beta分布参数a=5, b=7 ax.plot(x, beta.pdf(x, a=5, b=7)) plt.show()
内容的提问来源于stack exchange,提问作者Ai4l2s
相关产品推荐
相关产品推荐

