本系列:
《第 1 节:估计模型参数》
第1节:估计模型参数
在这一节,我们将讨论贝叶斯方法是如何思考数据的,我们怎样通过 MCMC 技术估计模型参数。
fromIPython.displayimportImage
importmatplotlib.pyplotasplt
importnumpyasnp
importpandasaspd
importpymc3aspm
importscipy
importscipy.statsasstats
importscipy.optimizeasopt
importstatsmodels.apiassm
%matplotlibinline
plt.style.use('bmh')
colors=['#348ABD','#A60628','#7A68A6','#467821','#D55E00',
'#CC79A7','#56B4E9','#009E73','#F0E442','#0072B2']
messages=pd.read_csv('data/hangout_chat_data.csv')
贝叶斯方法如何思考数据?
当我开始学习如何运用贝叶斯方法的时候,我发现理解贝叶斯方法如何思考数据是很有用的。设想下述的场景:
一个好奇的男孩每天观察从他家门前经过的汽车的数量。他每天努力地记录汽车的总数。一个星期过去后,他的笔记本上记录着下面的数字:12,33,20,29,20,30,18
从贝叶斯方法的角度看,这个数据是由随机过程产生的。但是,既然数据被观测,它便固定了并且不会改变。这个随机过程有些模型参数被固定了。然而,贝叶斯方法用概率分布来表示这些模型参数的不确定性。
由于这个男孩调查的是计数(非负整数),一个通常的做法是用泊松分布对数据(如随机过程)建模。泊松分布只有一个参数 μ,它既是数据的平均数,也是方差。下面是三个不同 μ 值的泊松分布。
代码:
fig=plt.figure(figsize=(11,3))
ax=fig.add_subplot(111)
x_lim=60
mu=[5,20,40]
foriinnp.arange(x_lim):
plt.bar(i,stats.poisson.pmf(mu[0],i),color=colors[3])
plt.bar(i,stats.poisson.pmf(mu[1],i),color=colors[4])
plt.bar(i,stats.poisson.pmf(mu[2],i),color=colors[5])
<