【贝叶斯分析④】线性回归

代码地址:https://github.com/ChengJiacheng/bayesian-analysis/blob/master/LR.py

线性回归是统计学习中的常见问题,即求解线性模型y=α+βx中的参数α、β。通常的做法是最小二乘法(最小均方误差法),将参数估计问题(the problem of estimating α and β)转化成了一个最优化问题(an optimization problem)。基于概率的方法(贝叶斯方法)则对参数的分布进行了一个估计,具有更大的灵活性(例如可以更换不同的先验分布)。当对先验不做任何假设时,最大后验估计的结果和最小二乘法相同(Under this Bayesian model for simple linear regression with effectively flat priors, we will get essentially the same estimates as using the least squares method)。

Probabilistically(从概率的角度),线性回归模型为y ~ N(μ=α+βx,σ=ε)。因为我们不知道参数取值,因此我们需要对其设置先验。斜率截距取任何值都很有可能, 因此我们可以用一个很平坦的高斯分布作为先验。对于ε,我们知道它肯定不会太大而且肯定为正,因此我们可以用一个均匀分布作为先验。均匀分布也可以用半正态分布或半柯西分布代替。如果希望设置很强的先验,我们可以使用伽马分布。

数据分布:

使用Metropolis采样方法进行估计,采样10000次的轨迹为:

可见斜率和截距的采样轨迹混合度很差(bad mixing),每次采样之间有很强的自相关性,这样的结果就是采样效率很低。出现这个现象的原因是αβ之间有很强的相关性,如下图所示:

解决这个问题的一种方法是更换采样方法,使用NUTS算法,NUTS算法是根据后验的曲率来移动的,因而更容易沿着对角空间移动。不过天下没有免费的午餐,NUTS采样效率高,但是每次采样耗时也更长。

下图是NUTS算法采样2000次的采样轨迹,可见很好的混合度:

扫描二维码关注公众号,回复: 8955112 查看本文章

最后展示一下NUTS采样估计的结果和不确定性:

 

注意图纸直线的参数取的是其后验分布的期望,即MMSE(取期望)而不是MAP(取最大值)。

发布了44 篇原创文章 · 获赞 16 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_32464407/article/details/81315842