用 Python 进行贝叶斯模型建模(3)

本系列:

第3节:分层模型

贝叶斯模型的一个核心优势就是简单灵活,可以实现一个分层模型。这一节将实现和比较整体合并模型和局部融合模型。

模型合并

让我们采取一种不同的方式来对我的 hangout 聊天回复时间进行建模。我的直觉告诉我回复的快慢与聊天的对象有关。我很可能回复女朋友比回复一个疏远的朋友更快。这样,我可以对每个对话独立建模,对每个对话i估计参数 μαi。

一个必须考虑的问题是,有些对话相比其他的含有的消息很少。这样,和含有大量消息的对话相比,我们对含有较少消息的对话的回复时间的估计,就具有较大的不确定度。下图表明了每个对话在样本容量上的差异。

对于每个对话i中的每条消息j,模型可以表示为:

y_{ji} \sim NegBinomial(\mu_i, \alpha_i)
\mu_i = Uniform(0, 100)
\alpha_i = Uniform(0, 100)