MCMC方法的目的是获得服从高维分布的样本,理论涉及平稳分布马尔科夫链转移概率等,还是比较麻烦且不好懂的,但好在网上已有不少讲解得比较详细的。
对于统计计算而言,获得高维分布样本后可以用于计算高维空间的积分。对于统计模型而言,获得高维分布样本后可以用于估计参数。网上大部分讲解理论后给出的是一个估计
参数的例子,对于如何具体用到模型中如简单的回归却还是模糊。
这里分别使用MCMC中的Gibbs抽样、Metropolis-Hasting算法对简单回归模型
中的参数
进行参数估计。给出MCMC用于模型(贝叶斯估计)的一个例子,其它复杂模型使用MCMC估计参数时可类似该过程使用。最后给出R语言中MCMCpack包使用mcmc进行参数估计。
1.用Gibbs抽样
资料来源 Gibbs sampling for Bayesian linear regression in Python,下面的代码会改为R的。
假设模型为,
似然函数,
假设三个未知参数的先验分布,
Gibbs抽样需要获得这三个参数的后验分布,
上面三个分布也就是Gibbs抽样中满条件分布,依次循环抽样至平稳,即为3个参数的分布。
下面推导这些满条件分布,
表示所有样本的联合分布。
一个问题是上式左右是正比连接的,而非等号,貌似没法求。实际上求一个分布时,我们并不需要得到完整密度函数,只需要一些项即可,如某种正态分布
,只需知道
的值即可获得该分布的期望方差(和正态分布形式对比即可知),即得到该分布。左右再加个对数,就只需要知道右边
的系数即可。
更详细可看贝叶斯估计共轭先验分布和分布的核的概念。
对右边的式子取对数(此时
就是似然函数),取出我们关心的含
的项,得到,
由上式得到
的系数为
,
的系数为
,由这个两个系数得到