基于R的高级统计(EM算法) |
您所在的位置:网站首页 › em算法的步骤 › 基于R的高级统计(EM算法) |
The EM Algorithm
EM算法全称叫做Expectation-Maximization,也就是说它分成基本的两个步骤就是The “E-Step” and the “M-step” EM算法的基本思想如下: 一部分观测数据用Y来表示,同时有一部分缺失数据用Z来表示。这样观测数据Y和不可观测的缺失数据Z共同构成了完整的数据集X=(Y,Z) 或者,Z可以理解成“隐变量” 假设完整的数据X有一个概率密度函数g(y,z∣θ), θ为一个参数向量。因为含缺失数据,我们不能估计g 可观测的数据具有的概率密度为:把g对于z积分即可 这样一来,仅考虑可观测数据的似然函数就是: EM algorithm工作流程: E-step: 给定θ一个初值θ0,定义: M-step: 对于函数Q(θ∣θ0),求θ=argmax(Q),更新θ 重复步骤1和2直至结果收敛 在上述的E步骤中, 隐变量的分布可以写成:(如果把θ都去掉其实就是最简单的条件概率:g是隐变量分布和可观测分布的联合概率) 总的来说,只要给定了初值θ,就可以计算出上面的h(z∣y,θ)(这时获得的就是z的后验分布),进而获得Q(θ∣θ0)关于θ的函数,再对其求θ=argmax进行迭代 详细可参考:https://zhuanlan.zhihu.com/p/40991784 通俗理解就是E-step(猜)、M-step(反思): 你知道一些东西(观察的到的数据), 你不知道一些东西(观察不到的),你很好奇,想知道点那些不了解的东西。怎么办呢,你就根据一些假设(parameter)先猜(E-step),把那些不知道的东西都猜出来,假装你全都知道了; 然后有了这些猜出来的数据,你反思一下,更新一下你的假设(parameter), 让你观察到的数据更加可能(Maximize likelihood; M-stemp); 然后再猜,在反思,最后,你就得到了一个可以解释整个数据的假设了。 引自:https://www.zhihu.com/question/27976634 我看到的关于EM算法讲的最详细的帖子:请务必理解下面的部分,后面的代码才好理解(因为图片问题不太好直接展示出来,直接看链接里的内容吧) 引自作者:彭一洋 链接:https://www.zhihu.com/question/27976634/answer/163164402 Canonical Examples Two-Part Normal Mixture Model假设我们有一个混合高斯分布:由两个不同的高斯分布混合而成: 对应的对数似然函数为: 对于上述函数的优化,其实可以用牛顿法实现,不过EM算法提供了一种更好更稳定的途径。这里的缺失数据,也就是隐变量,就是混合模型中每个样本分别来自哪个高斯分布 The “missing data” in this case are the labels identifying which observation came from which population. Therefore, we assert that there are missing data z1,…,znsuch that zi=1时样本yi来自第一个高斯分布,zi=0时样本yi来自第二个高斯分布 也就是说我们把这个混合高斯分布的生成分成两个步骤:首先我们随机抽样,看这个样本来自哪个分布zi,然后在给定z的前提下,再从对应的高斯分布里取样yi。于是完整数据的联合分布表示为: R语言实现: 首先构造模拟的混合高斯分布数据: mu1 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |