火车等待时间的贝叶斯建模:模型定义
这是我从常驻人员那里进行贝叶斯数据分析的第一次尝试。我阅读了A. Gelman撰写的Bayesian Data Analysis中的许多教程和一些章节。 作为第一个或多或少独立数据分析示例,我选择了火车等待时间。我问自己:等待时间的分布是什么? 该数据集在博客上提供,并且在PyMC之外进行了稍有不同的分析。 我的目标是给定这19个数据条目,估计预期的火车等待时间。 我建立的模型如下: μ∼N(μ^,σ^)μ∼N(μ^,σ^)\mu \sim N(\hat\mu,\hat\sigma) σ∼|N(0,σ^)|σ∼|N(0,σ^)|\sigma \sim |N(0,\hat\sigma)| λ∼Γ(μ,σ)λ∼Γ(μ,σ)\lambda \sim \Gamma(\mu,\sigma) ρ∼Poisson(λ)ρ∼Poisson(λ)\rho \sim Poisson(\lambda) 其中μ^μ^\hat\mu是数据平均值,σ^σ^\hat\sigma是数据标准偏差乘以1000。 我使用泊松分布将预期的等待时间建模为ρρ\rho。此分布的速率参数是使用Gamma分布建模的,因为它是与Poisson分布的共轭分布。超先验μμ\mu和σσ\sigma分别使用正态分布和半正态分布建模。使标准偏差σσ\sigma尽可能宽,以使其尽可能不被置信。 我有很多问题 这个模型对任务是否合理(几种可能的建模方法?)? 我有没有犯任何新手错误? 是否可以简化模型(我倾向于使简单的事情复杂化)? 如何验证rate参数()的后验是否确实适合数据?ρρ\rho 如何从拟合的泊松分布中抽取一些样本以查看样本? 在经过5000个Metropolis步骤后,后继者看起来像这样: 我也可以发布源代码。在模型拟合阶段,我使用NUTS 执行参数和的步骤。然后在第二步中对速率参数进行Metropolis操作。最后,我使用内置工具绘制轨迹。μμ\muσσ\sigmaρρ\rho 对于任何能够使我掌握更多概率编程的言论和评论,我将不胜感激。可能还有更多值得尝试的经典示例吗? 这是我使用PyMC3在Python中编写的代码。数据文件可以在这里找到。 import matplotlib.pyplot as plt import pandas as pd import numpy as np import pymc3 from scipy import …