在统计领域,主要有两大类计算问题,一类是极大似然估计的计算,另一类是Bayes计算。这两者是可以合并讨论的。极大似然估计的计算类似于Bayes的后验众数的计算,因此我们后面就从Bayes计算的角度介绍统计计算方法。
Bayes计算方法大体可以分为两大类。一类是直接应用于后验分布以得到后验均值或后验众数的估计,以及这种估计的渐进方差或其近似。另一类算法可称为数据添加算法,它是在观测数据的基础上加上一些“潜在数据”,从而简化计算并完成一系列简单的极大化或模拟,该“潜在数据”可以是“缺失数据(Missing Data)”或未知数据。其原理可表述如下:设我们能观测到的数据是,
关于
的后验分布
很复杂,难以进行各种统计计算,我们假定一些没能观测到的潜在数据
为已知,则能够得到一个关于
的简单的“添加后验分布”
,利用
的简单行我们可进行最大化计算。
一、EM算法
1、作用
EM算法是一种迭代方法,主要用来求后验分布的众数(即极大似然估计)。其每一次迭代由两步组成:E步(求期望)和M步(极大化)。
2、符号定义
① 符号:
:观测数据;
:模型(或概率密度函数)的参数;
:未观测到的潜在数据。
② 定义:
: 观测后验分布;
:添加后验分布;
:给定
和
的条件下
的条件分布密度函数。
3、EM算法步骤:
记为第
次迭代开始时后验众数估计值,则第
次迭代的两步为:
E步:将或
关于
的条件分布
求期望,从而将
积掉,即
M步:将极大化,即找一个点
,使
如此形成了一次迭代。将上述E步和M步进行迭代直至
或
充分小时为止。
4、下面两个定理的证明过程请见茆诗松、王静龙、濮晓龙三位大神编写的《高等数理统计(第二版)》P430。
定理1 EM算法在每一次迭代后均提高(观测)后验密度函数值,即
定理2(1)如果有上界,则
收敛到某个
;
(2)如果关于
和
都连续,则在关于
的很一般的条件下,由EM算法得到的估计序列
的收敛值
是
的稳定点。
二、GEM算法
EM算法得到广泛应用的一个重要原因是在M步中,求极大化的方法与完全数据下求极大化的方法完全一样。但有时求使达到最大的
比较困难,一个较简单的方法是找一个
,使得
。该方法称为广义EM算法(GEM算法)。
由定理1的证明可以看出,GEM算法也保证。进一步改变一下条件,定理2也成立。
当是一维参数时,
的最大化方法比较多,没有必要考虑GEM算法。对多维参数
,Meng和Rubin提出了一种特殊的GEM算法,它们称之为ECM(Exception/Conditional maximization)算法,该算法保留了EM算法的简单性和稳定性,它将原先EM算法中的M步(极大化)分解为如下
次条件极大化:在第
次迭代中,记
,在得到
后,首先在
保持不变的条件下求使
达到最大的
,然后在
的条件下求使
达到最大的
,如此继续,经过
次条件极大化,我们得到了一个
,完成了一次迭代。该ECM算法简单,是一种GEM算法,满足GEM算法的所有性质,例如收敛。
三、Monte Carlo EM算法
EM算法由求期望(E步)和求极值(M步)两部分组成,M步由于等同于完全数据的处理,通常比较简单,而在E步中,有时要获得期望的显示表示是不可能的,即使近似计算也很困难,这时可用Monte Carlo方法来完成,即Monte Carlo EM(MCEM)方法,它将E步改为:
(E1)由随机地抽取
个随机数
;
(E2)计算。
由大数定律,只要足够大,
与
就很接近,从而我们可以在M步中对
求极大化。
在MCEM算法中有两点需要考虑。一是大小的确定,从精度的角度来讲,
自然越大越好,但过大的
使得计算的效率太低,一般在开始时
不需要很大。另一点是收敛性的判断,因为E步中是采用的Monte Carlo方法,若要求这样得到的
收敛到一点显然不现实。在MCEM中,收敛性的判别往往可借助图形来进行。若经过若干次迭代后,迭代值围绕直线
小幅波动,则可以认为算法收敛了。此时,为增加估计精度,可增加
的值再运行一段时间即可停止。