EM法填补缺失值
2022/7/9 来源:不详前面我们对缺失数据的处理方法作了简要概述,今天我们来重点学习其中一种单一填补法——期望值最大化方法(expectationandmaximization,EM)。EM算法是一种在不完全数据情况下对极大似然估计或者后验分布的迭代算法,最初由Dempster等提出。先求数据集的期望,通过期望最大化化解似然函数,避免了边缘值的影响。EM法填补缺失值适用于大样本,即有效样本的数量足够以保证极大似然估计值是渐近无偏的并服从正态分布的情况下。
NO.1原理和方法EM算法分二步迭代估计,(1)E步(求期望):给定未知参数的某个估计值,预测充分统计量中有关缺失数据的部分,即先假设这个变量服从某个具体参数的分布(通常为正态分布或条件分布);先给这个分布的参数一个随机值;根据这个参数明确的分布可以获得缺失值的可能值。(2)M步(极大化),上步中,缺失值已经获得初步填充,这时候根据填充的完成数据,重新极大似然估计分布的参数。重复以上两步,直到前后两次计算结果达到规定的收敛标准(即参数不再发生变化),此时获得的缺失填补值理论上是符合目的的。
NO.2计算过程假设Y为不完全观测数据,Z为缺失数据,则它们共同构成完整数据,A=(Y,Z),以P(θ/Y,Z)作为θ基于观测数据的分布密度函数,称为观测后验分布;把P(θ/Y,Z)作为在添加缺失数据Z后得到的关于θ的后验分布密度函数,而P(θ/Y,Z)作为在给定θ和观测数据Y为缺失数据Z的条件分布密度函数。EM算法的目的是计算P(θ/Y,Z)。如果θ(i)就是第i+1次迭代开始时的参数估计值,则第i+1次迭代的两步为
(1)E步:将logNP(θ
Y,Z)关于Z的条件分布求期望,从而把Z通过积分去掉,即
式中Y——不完全观测数据;Z——缺失数据;
θ——具体给定的某个观测数据。
(2)M步:将极大化,Q(θ
θ(i),Y)即寻找一个点θ(i+1),使
如此就完成了一次迭代过程θ(i)→θ(i+1),将上面的预测步和估计步进行迭代一直到
θ(i+1)-θ(i)
或
Q(θ(i+1)
θ(i),Y)Q(θ(i)
θ(i),Y)
充分小为止。
NO.3实例分析我们以mvdalab包中“impute.EM”这个函数来介绍如何在R中实现用EM法填补缺失值。鸢尾花(iris)是R中常用到的一个数据集,包含种鸢尾花的信息,每50种取自三个鸢尾花种之一(setosa,versicolour或virginica)。每个花的特征用下面的4种属性描述萼片长度(Sepal.Length)、萼片宽度(Sepal.Width)、花瓣长度(Petal.Length)、花瓣宽度(Petal.Width)。我们先用“ntroNAs”函数将萼片长度、萼片宽度、花瓣长度、花瓣宽度中25%的数据随机赋值为缺失值(NA),然后将赋值后的数据通过“impute.EM”函数进行缺失值填补,代码和结果如下:
图1代码清单
表1赋值前的iris数据集
表2赋值后的iris数据集
表3用impute.EM函数进行缺失值填补后的数据集由结果可以看出,我们通过EM法对缺失值进行了填补,且结果比较精确。
NO.4小结EM算法是一种优化的极大似然算法,主要优点是根据观测数据的分布对缺失值进行填充,其结果的估计比较精确和有效,其前提条件是缺失值来源于大样本或者服从正态分布的数据。值得注意的是,ME算法是建立在随机缺少的基础上,如果缺失值之间或缺失值与非缺失值之间存在反应关系,则会产生严重的偏倚而导致填补的精确度和可靠性下降。另外,对缺失值填补效果的评价可通过对填补数据集是否收敛来判断,可通过Ameliat统计包中函数“disperse”来对数据集收敛进行检验。
在后续的推文中,我们还会介绍在R中实现缺失数据多重填补法,大家敬请期待!
NO.5参考文献[1]朱庆伟,周祺超,孙学阳.基于EM的岩移观测数据缺失的估算方法[J].煤炭技术,,35(05):-.
[2]陈长生,王彤,徐勇勇,尚磊.医学科研中缺失数据的EM估计[J].第四军医大学学报,(01):59-61.
[3]曹阳,张罗漫.运用SAS对不完整数据集进行多重填补——SAS9中的多重填补及其统计分析过程(一)[J].中国卫生统计,(01):58-60+65.
[4]周艺彪,姜庆五,赵根明.调查研究中数据缺失的机制及处理方法[J].中国卫生统计,,(22):-.
[5]B.Walczak,D.L.Massart.Dealingwithmissingdata,PartI.Chemom.Intell.Lab.Syst.58();15:27
制作:周燕
初审:何冠豪、胡建雄
审核:肖建鹏、刘涛
指导:马文军
关于我们
《数据分析和应用》致力于为全国各地公共卫生与医学工作者(机构)提供专业可靠的统计咨询、研究设计、数据分析、高通量测序数据和序列分析、调研报告等服务(详细可见