最大似然估计(1922 by Filch)

例1 估计两点分布 b(1,p)b(1,p) 的参数 pp. 其分布列为 P(X=x)=px(1−p)1−x,x=0,1.P(X = x) = p^x(1-p)^{1-x},x=0,1.

解 抽取n个样本x1,⋯ ,xnx_1,\cdots,x_n, 这批观测值发生的概率为

P(X1=x1,⋯ ,Xn=xn;p)=独立性∏i=1npxi(1−p)1−xi=p∑i=1nxi(1−p)n−∑i=1nxi(eq1)P(X_1=x_1,\cdots,X_n=x_n;p) \overset{\text{独立性}}{=} \prod_{i=1}^n p^{x_i}(1-p)^{1-x_i} = p^{\sum_{i=1}^n x_i}(1-p)^{n-\sum_{i=1}^n x_i} \quad(eq1)

Note1: 注意这里是n个两点分布b(1,p)b(1,p), 而不是1个二项分布b(n,p)b(n,p). 因为我们观测的是n次抽取的结果, 即n个b(1,p)b(1,p), 而不是整体n个产品中的合格数, 即1个b(n,p)b(n,p). 两者计算过程中相差一个二项系数Cnk,k=∑i=1nxiC_n^k, k=\sum_{i=1}^n x_i.

Note2: 对于事件Xi=xiX_i=x_i, pxi(1−p)1−xip^{x_i}(1-p)^{1-x_i}为其发生的概率, 因为

P(Xi=xi)=pxi(1−p)1−xi={p1(1−p)0=p,xi=1;p0(1−p)1=1−p,xi=0.P(X_i = x_i) = p^{x_i}(1-p)^{1-x_i} = \begin{cases} p^1(1-p)^0=p, & x_i = 1;\\ p^0(1-p)^1=1-p, & x_i = 0. \end{cases} \notag

由于pp是未知的, 根据最大似然原理, 我们应该选择pp使得eq1eq1式中的概率尽可能大. 将eq1eq1式看作位置参数pp的函数, 用L(p)L(p)表示, 称作似然函数

L(p)=p∑i=1nxi(1−p)n−∑i=1nxi(eq2)L(p) = p^{\sum_{i=1}^n x_i}(1-p)^{n-\sum_{i=1}^n x_i} \quad(eq2)

求似然函数eq2eq2式的最大值并不难, 它是一个幂函数的形式, 对其关于pp求导令其为0, 得到下面方程, 称其为似然方程:

令∑i=1n(xi)=k,\sum_{i=1}^n(x_i)=k, 于是L(p)=pk(1−p)n−kL(p) = p^k(1-p)^{n-k}

∂L(p)∂p=kpk−1(1−p)n−k−(n−k)pk(1−p)n−k−1=0⇔k(1−p)=(n−k)p⇔p=k/n=1n∑i=1nxi(恰好是样本均值)\begin{aligned} \frac{\partial L(p)}{\partial p} &= kp^{k-1}(1-p)^{n-k}-(n-k)p^k(1-p)^{n-k-1} = 0\\ \Leftrightarrow k(1-p) &= (n-k)p \\ \Leftrightarrow p &= k/n = \frac{1}{n}\sum_{i=1}^n x_i \qquad(\text{恰好是样本均值}) \end{aligned}

除了上面的直接求导还有另外一种常用的方式, 对eq2eq2式两边取对数再求导, 这种方式计算导数要更简单

ln⁡L(p)=kln⁡(p)+(n−k)ln⁡(1−p),k=∑i=1nxi两边对 p 求导→∂ln⁡L(p)∂p=kp−n−k1−p=0求解得到: p=k/n=1n∑i=1nxi\begin{aligned} \ln L(p) &= k\ln(p) + (n-k)\ln(1-p), \qquad k=\sum_{i=1}^n x_i\\ \text{两边对 }p\text{ 求导}\rightarrow \frac{\partial \ln L(p)}{\partial p} &= \frac{k}{p} - \frac{n-k}{1-p} = 0 \\ \text{求解得到: } p &= k/n = \frac{1}{n}\sum_{i=1}^n x_i \end{aligned}

定义 设总体的概率函数为p(x;θ),θ∈Θp(x;\theta), \theta\in\Theta, 其中θ\theta是一个未知参数或几个未知参数组成的参数向量, Θ\Theta是参数空间, x1,⋯ ,xnx_1,\cdots,x_n是来自该总体的独立的样本, 将样本的联合概率函数看成θ\theta的函数, 用L(θ;x1,⋯ ,xn)L(\theta;x_1,\cdots,x_n)表示, 简记为L(θ)L(\theta),

L(θ)=L(θ;x1,⋯ ,xn)=p(x1;θ)p(x2;θ)⋯p(xn;θ),L(\theta) = L(\theta;x_1,\cdots,x_n) = p(x_1;\theta)p(x_2;\theta)\cdots p(x_n;\theta),

L(θ)L(\theta)称为样本的似然函数. 如果某统计量θ^=θ^(x1,⋯ ,xn)\hat{\theta}=\hat{\theta}(x_1,\cdots,x_n)满足

L(θ^)=max⁡θ∈ΘL(θ),L(\hat{\theta}) = \max_{\theta\in\Theta} L(\theta),

则称θ^\hat{\theta}是θ\theta的最大似然估计, 简记为MLE (Maximum Likelihood Estimate).

由于ln⁡x\ln x 是 xx 的单调增函数, 因此, 使对数似然函数 ln⁡L(θ)\ln L(\theta) 达到最大与使 L(θ)L(\theta) 达到最大是等价的. 当 L(θ)L(\theta) 可微时, 求导是求最大似然估计的常用方法, 而对数似然函数的求导更加简单, 所以大家通常更习惯于由 ln⁡L(θ)\ln L(\theta) 出发寻找 θ\theta 的最大似然估计.

Note: 从最大似然估计的定义可以看出, 若 L(θ)L(\theta) 与联合概率函数相差一个与 θ\theta 无关的比例因子, 不会影响最大似然估计, 因此, 可以在L(θ)L(\theta) 中剔去与 θ\theta 无关的因子

EM算法(1977 by Dempster)

MLE是一种非常有效的参数估计方法, 但当分布中有多余参数或者数据为截尾或者缺失时, 求其MLE是比较困难的. 于是Dempster等人于1977年提出了EM算法, 其出发点是要把求MLE的过程分两步走, 第一步求期望, 以便把多余的部分去掉, 第二步求极大值.

例2 设有多项分布 M(1,12−θ4,1−θ4,1+θ4,θ4),θ∈(0,1)M(1,\frac{1}{2}-\frac{\theta}{4},\frac{1-\theta}{4},\frac{1+\theta}{4},\frac{\theta}{4}),\theta\in(0,1), 现进行了197次试验, 四种结果出现的次数分别为75, 18, 70, 34. 试估计参数 θ\theta.

解 以 y1,y2,y3,y4y_1,y_2,y_3,y_4表示四种结果发生的次数, 多项分布的似然函数为:

L(θ;y)∝(12−θ4)y1(1−θ4)y2(1+θ4)y3(θ4)y4∝(2−θ)y1(1−θ)y2(1+θ)y3θy4.\begin{split} L(\theta;y) &\propto (\frac{1}{2}-\frac{\theta}{4})^{y_1}(\frac{1-\theta}{4})^{y_2}(\frac{1+\theta}{4})^{y_3}(\frac{\theta}{4})^{y_4}\\ &\propto (2-\theta)^{y_1}(1-\theta)^{y_2}(1+\theta)^{y_3}\theta^{y_4}. \end{split}

其对数似然函数为一个关于 θ\theta 的三次多项式

ln⁡L∝(y1+y2+y3+y4)θ3+(−y2−3y3−2y4)θ2+(−y1+2y2+2y3−y4)θ+2y4(eq8)\ln L\propto(y_1+y_2+y_3+y_4)\theta^3 +(-y_2-3y_3-2y_4)\theta^2+(-y_1+2y_2+2y_3-y_4)\theta+2y_4 \quad(eq8)

通过它求 θ\theta 的MLE就是要求 eq8eq8 式在 (0,1)(0,1) 上的零点.

​我们通过引入2个变量 z1,z2z_1,z_2 后, 使得求解变得比较容易. 现假设第一种结果可以分成两部分, 其发生的概率分别为 1−θ4\frac{1-\theta}{4} 和 14\frac{1}{4}, 令 z1z_1 和 y1−z1y_1-z_1 分别表示落入这两部分的次数. 再假设第三种结果也分成两部分, 其发生的概率分别为 θ4\frac{\theta}{4} 和 14\frac{1}{4}, 令 z2z_2 和 y3−z2y_3-z_2 分别表示落入这两部分的次数. 由于 z1,z2z_1,z_2 是人为引入的, 是不可观测的, 我们称它们为 潜变量(latent variable). 称数据 (y,z)(y,z) 为完全数据(complete data), 而观测到的数据 yy 称为不完全数据.

​ 引入潜变量 z1,z2z_1,z_2 后, 此时, 完全数据的似然函数为

L(θ;y,z)∝(14)y1−z1(1−θ4)z1+y2(14)y3−z2(θ4)z2+y4∝θz2+y4(1−θ)z1+y2,\begin{split} L(\theta;y,z) &\propto (\frac{1}{4})^{y_1-z_1}(\frac{1-\theta}{4})^{z_1+y_2}(\frac{1}{4})^{y_3-z_2}(\frac{\theta}{4})^{z_2+y_4}\\ &\propto \theta^{z_2+y_4}(1-\theta)^{z_1+y_2}, \end{split}

其对数似然函数为

ln⁡L(θ;y,z)=(z2+y4)ln⁡θ+(z1+y2)ln⁡(1−θ).\ln L(\theta;y,z) = (z_2+y_4)\ln \theta + (z_1+y_2)\ln(1-\theta).

如果 (y,z)(y,z) 均已知, 则由上式很容易求得 θ\theta 的MLE, 但是很遗憾我们仅知道 yy, 而不知道 zz 的值. 虽然我们不能知道 zz 的值, 但是当 yy 和 θ\theta 已知时, 我们可以知道 zz 的分布

z1∼b(y1,1−θ2−θ),z2∼b(y3,θ1+θ)z_1\sim b\left(y_1,\frac{1-\theta}{2-\theta}\right),\qquad z_2\sim b\left(y_3,\frac{\theta}{1+\theta}\right)

Note: P(Z1∣Y1)=Z1⊂Y1P(Z1)P(Y1)=(1−θ)/4(2−θ)/4=1−θ2−θ,P(Z2∣Y3)=Z2⊂Y3P(Z2)P(Y3)=θ/4(1+θ)/4=θ1+θP(Z_1|Y_1) \overset{Z_1\subset Y_1}{=} \frac{P(Z_1)}{P(Y_1)} = \frac{(1-\theta)/4}{(2-\theta)/4} = \frac{1-\theta}{2-\theta},\quad P(Z_2|Y_3) \overset{Z_2\subset Y_3}{=} \frac{P(Z_2)}{P(Y_3)} = \frac{\theta/4}{(1+\theta)/4} = \frac{\theta}{1+\theta}

于是, Dempster等人建议分两步迭代求解 θ\theta

E步: 在已有观测数据 yy 及第 ii 步 θ\theta 的估计值 θ(i)\theta^{(i)} 的条件下, 求 ln⁡L(θ;y,z)\ln L(\theta;y,z) 关于 zz 的期望

Ez[ln⁡L(θ;y,z)],z∼F(z∣y,θ(i))(eq11)E_z \left[\ln L(\theta;y,z)\right] ,\qquad z\sim F(z|y,\theta^{(i)}) \quad (eq11)

Note1: 这一步的目的是把其中关于 zz 的部分积分掉.

Note2: 求 zz 的期望需要知道 zz 的分布, 而 zz 的分布是与 yy 和 θ\theta 相关的, 其中 yy 是可观测的已知的, 而 θ\theta 是未知的, 所以这里采用第 ii 步的估计值 θ(i)\theta^{(i)} 做为 θ\theta 的值.

M步: 求 eq11eq11 式关于 θ\theta 的最大值 θ(i+1)\theta^{(i+1)}, 即找 θ(i+1)\theta^{(i+1)} 使得

θ(i+1)=arg⁡max⁡θ{Ez[ln⁡L(θ;y,z)]}.(eq12)\theta^{(i+1)} = \underset{\theta}{\arg\max} \left\{E_z \left[\ln L(\theta;y,z)\right]\right\}. \quad (eq12)

这样就完成了由 θ(i)\theta^{(i)} 到 θ(i+1)\theta^{(i+1)} 的一次迭代. 重复 eq11eq11 式和 eq12eq12 式, 直至收敛, 即可得到 θ\theta 的 MLE 的一个数值解.

​对于本例, 其 E 步为

Ezln⁡L=E[(z2+y4)ln⁡θ+(z1+y2)ln⁡(1−θ)]=(E[z2∣y3,θ(i)]+y4)ln⁡θ+(E[z1∣y1,θ(i)]+y2)ln⁡(1−θ)=(θ(i)1+θ(i)y3+y4)ln⁡θ+(1−θ(i)2−θ(i)y1+y2)ln⁡(1−θ)\begin{split} E_z\ln L &= E\Big[(z_2+y_4)\ln \theta + (z_1+y_2)\ln(1-\theta)\Big]\\ &= (E\big[z_2\big|y_3,\theta^{(i)}\big]+y_4)\ln\theta + (E\big[z_1\big|y_1,\theta^{(i)}\big]+y_2)\ln(1-\theta)\\ &= \left(\frac{\theta^{(i)}}{1+\theta^{(i)}}y_3+y_4\right)\ln\theta + \left(\frac{1-\theta^{(i)}}{2-\theta^{(i)}}y_1+y_2\right)\ln(1-\theta) \end{split}

M 步为对 Ezln⁡LE_z\ln L 关于 θ\theta 求导, 并令其等于 00 , 得到

θ(i)1+θ(i)y3+y4θ−1−θ(i)2−θ(i)y1+y21−θ=0\frac{\frac{\theta^{(i)}}{1+\theta^{(i)}}y_3+y_4}{\theta} - \frac{\frac{1-\theta^{(i)}}{2-\theta^{(i)}}y_1+y_2}{1-\theta} = 0

解得如下迭代公式

θ(i+1)=θ(i)1+θ(i)y3+y4θ(i)1+θ(i)y3+y4+1−θ(i)2−θ(i)y1+y2(eq16)\theta^{(i+1)} = \frac{\frac{\theta^{(i)}}{1+\theta^{(i)}}y_3+y_4}{\frac{\theta^{(i)}}{1+\theta^{(i)}}y_3+y_4+\frac{1-\theta^{(i)}}{2-\theta^{(i)}}y_1+y_2} \quad (eq16)

实际上 eq16eq16 式等号右边就是 eq8eq8 式的一个不动点迭代函数. eq16eq16 式可以整理为下面的形式

θ=(y3+y4)θ2−(2y3+y4)θ−2y4(y1+y2+y3+y4)θ2−(y2+2y3+y4)θ−(y1+2y2+2y4)\theta = \frac{(y_3+y_4)\theta^2-(2y_3+y_4)\theta-2y_4}{(y_1+y_2+y_3+y_4)\theta^2-(y_2+2y_3+y_4)\theta-(y_1+2y_2+2y_4)}\notag

最后使用题设的数据75, 18, 70, 34计算 θ\theta 的MLE的近似值

ii 0 1 2 3 4 5 6 7 8 9 10
θi\theta^{i} 0.5 0.571 492 0.594 816 0.602 681 0.605 357 0.6067 271 0.606 584 0.606 697 0.606 728 0.606 746 0.606 744