传统数据缺失插补方法综述

造成数据缺失的原因

  • 信息暂时无法获取。例如在医疗数据库中,并非所有病人的所有临床检验结果都能在给定的时间内得到,就致使一部分属性值空缺出来。
  • 信息被遗漏。可能是因为输入时认为不重要、忘记填写了或对数据理解错误而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障、一些人为因素等原因而丢失。
  • 有些对象的某个或某些属性是不可用的。如一个未婚者的配偶姓名、一个儿童的固定收入状况等。
  • 获取这些信息的代价太大[3]。

数据缺失类型

  • 完全随机缺失(missing completely at random,MCAR),指的是缺失的数据与可观测变量和不可观测的参数是独立的。
  • 随机缺失(missing at random,MAR),指的是数据的缺失不是完全随机的,但这种缺失依赖于完全变量(不含缺失值的变量)。例如在调查体重信息时, 男性比女性更愿意说出体重[12].
  • 非随机缺失(missing not at random,MNAR),既不是完全随机缺失,也不是随机缺失,而是由于某种特定原因而造成的数据缺失,这种缺失是不可忽略的[1][3]。

数据缺失模式

下图是矩阵形式的数据,每一列代表某个调查项目(随机变量),每一行是一个样本,空白处表示数据缺失。

解决方法

对于缺失值的处理,一般来说主要有三种方法:删除法、插补法、分析法[1]。

单一插补法

插补值是缺失值预测分布的平均值或一个抽样值,要求以观测数据为基础,为插补创建一个预测分布的方法。产生这一分布有两种途径:明确建模、模糊建模。明确建模基于一个常用的统计模型(如多元正态分布),而模糊建模的关键是算法,该算法蕴含着一个基本的模型,假定是模糊的,但仍需细微地评定,以保证假定是由道理的[5]。

均值插补。均值插补是一种明确建模的途径,分为无条件均值插补和条件均值插补。

无条件均值插补是指将某一变量已获得的数值的均值作为缺失值,若在 MCAR 条件下,该方法是无偏的[6]。

条件均值插补包含分层均值插补、回归均值插补、buck方法[6]。

分层均值插补是指将所有样本按照某种规则分成若干组,这一分组规则可以是常数样本权的等概抽样[8],对每一组内某变量的样本均值作为缺失数据的插补值[7]。

回归插补[8]。考虑单个变量的缺失的情况。设变量 %%Y_1,…,Y_(K-1)%% 没有缺失值,前 %%r%% 个样本的变量 %%Y_K%% 是完整的,而后 %%n-r%% 个是缺失的,%%n%% 是样本总数。回归插补基于 %%r%% 个完全样本计算 %%Y_K%% 关于 %%Y_1,…,Y_(K-1)%% 的回归,然后用回归预测值填充缺失值。设样本 %%i%% 缺失 %%y_(iK)%%,则 %%y_(iK)%% 的回归值为

%%overset(~)(y)_(iK)=overset(~)(beta)_(K0*12…K-1)+sum_(j=1)^(K-1) overset(~)(beta)_(K_j*12…K-1)y_(ij)%%

%%overset(~)(beta)_(K0*12…K-1)%% 是截距,%%overset(~)(beta)_(K_j*12…K-1)y_(ij)%% 是回归系数。

Buck方法[8]。Buck方法将回归插补推广到一个一般缺失值模式。当变量服从多元正态分布时,缺失变量有关于其它变量的线性回归。首先基于完全的样本计算样本均值和协方差阵来估计 %%mu%% 和协方差阵 %%Sigma%%,然后使用这些估计来对每一种缺失数据模式计算缺失变量关于已观测到的变量的最小二乘线性回归,从而得到缺失值的预测值。

在 MCAR 及关于分布矩的一些适当假定下,这一方法得到的插补值和观察值的平均值是均值的相合估计。当缺失数据机制是依赖于已观测到的变量时,它们仍然是相合的。

如果假定MCAR情况下,忽略基于完全样本的均值和协方差阵的抽样可变性,那么在极小化期望平方误差的意义下,条件均值插补是最佳的点估计。然而,均值插补破坏了完全数据的边缘分布和协方差的度量。因此提出了一个备择的策略:从缺失值的可能值的预测分布中随机地抽取插补值,而不是从分布的中心取值。

随机回归插补[8]。在回归插补值的基础上,插补一个条件抽取值:

%%hat y_(iK)=overset(~)(beta)_(K0*12…K-1)+sum_(j=1)^(K-1) overset(~)(beta)_(K_j*12…K-1)y_(ij)+z_(iK)%%

%%z_(iK)%% 是一个随机的正态偏差,均值为 %%0%%,方差为 %%overset(~)(sigma)_(KK*12…K-1)%%,这个方差是基于完全样本做回归得到的剩余方差。

下面介绍模糊建模的几个方法。

热平台法[8]。热平台法可以粗略地定义为从一个估计的分布中选择一个插补值。具体来说是选择一个与缺失变量相似的完全变量来填补缺失值。这种方法简单,也比较常用,但是缺点也很明显,很难定义“相似”的标准,主观因素比较多[3]。与热平台法相似的是冷平台法[5],这种方法是依靠已有的资料来对缺失值进行填补。

K近邻热平台法[3, 8]。这是一个更常用的方法。首先定义一个样本间距离的度量,这个度量以协变量为基础,设 %%x_i=(x_(i1),…,x_(iK))^T%% 是选择的 %%K%% 个协变量的一个样本,可以选择最大偏离作为距离的度量:%%d(i,j)=max_K|x_(ik)-x_(jk)|%%,其它可选的度量有欧氏距离、马氏距离。选择与缺失变量距离最近的 %%K%% 个样本,将这些样本的均值作为缺失变量的插补值。

基于EM算法的插补[9]。首先,将缺失值由初始的估计值替代,对得到的完全数据进行参数估计,然后根据参数估计值反过来估计缺失值。

EM算法包含两部分,E 步是求期望,即在给定观测数据的条件下求缺失值的条件期望,并用计算出的条件期望对缺失数据进行插补;M 步是做极大化估计,对 M 步之后的完整数据集的参数进行极大似然估计。

设样本 %%x_1,…,x_n%% 服从 %%p%% 元正态分布 %%N_p(mu,Sigma)%%,完全数据的充分统计量为

%%{:(T_1=sum_(i=1)^n x_i),(T_2=sum_(i=1)^n x_i x_i^T=(n-1)S+x_i x_i^T ):}%%

E步:计算条件期望来求缺失值。设 %%x_i^((1))%% 表示缺失的分量,%%x_i^((2))%% 表示已知的分量,对 %%bar mu, bar Sigma%% 进行分块,则 %%x_i^((1))%% 的条件正态分布的均值为:

%%{:(bar x_i^((1)),=E(x_i^((1))|x_i^((2));bar mu,bar Sigma)),(,=bar mu^((1))+bar Sigma_(12) bar Sigma_(22)^-1(x_i^((2))-bar mu^((2)))):}%%

上式是 %%x_i^((2))%% 对 %%x_i^((1))%% 的最优线性预测[10]。 且 %%x_i^((1)) x_i^((1)T), x_i^((1)) x_i^((2)T)%% 的条件正态分布的均值分别是:

%%{:(bar(x_i^((1)) x_i^((1)T))=E(x_i^((1)) x_i^((1)T)|x_i^((2));bar mu,bar Sigma)=bar Sigma_11-bar Sigma_12 bar Sigma_22^(-1) bar Sigma_21+bar x_i^((1))bar x_i^((1)T)),(bar(x_i^((1)) x_i^((2)T))=E(x_i^((1)) x_i^((2)T)|x_i^((2));bar mu,bar Sigma)=bar x_i^((1))bar x_i^((2)T)):}%%

M步:计算 %%bar mu, bar Sigma%% 新的估计值:

%%{:(bar mu=bar T_1/n),(bar Sigma=1/n bar T_2 -bar(mumu^T)):}%%

EM算法需要大样本,能够找到稳定可靠的最优值,缺点是计算复杂难度大。

基于EM算法的修正[10]。设样本 %%x_1,…,x_n%% 服从 %%p%% 元正态分布 %%N_p(mu,Sigma)%%,则 %%mu, Sigma%% 的无偏估计为:

%%{:(hat mu=1/n sum_(i=1)^n x_i),(hat Sigma=n/(n-1)sum_(i=1)^n (x_i-bar x)(x_i-bar x)^T):}%%

将 %%p%% 维随机向量 %%x%% 分块得 %%x=((x_1),(x_2))%%,令 %%x_1%% 为含有缺失值的分量,维度为 %%k%%,同理得 %%mu=((mu_1),(mu_2))%%,%%Sigma=((Sigma_11,Sigma_12),(Sigma_21,Sigma_22))%%。

E步:首先将缺失值填充上初始值。则利用 %%x_2%% 对 %%x_1%% 的最优线性预测为:

%%overset(~)(x_1)=hat mu_1+hat Sigma_12 hat Sigma_22 ^(-1) (x_2-hat mu_2)%%

M步:将得到的预测值填充到缺失处,修正 %%hat mu, hat Sigma%% 的估计。

最优线性预测[10]:利用随机变量 %%x%% 的函数 %%g(x)%% 来预测随机变量 %%y%% 时,可利用均方差 %%E[y-g(x)]^2%% 作为预测精度的度量。限制 %%g(x)%% 为线性函数,则使 %%E[y-g(x)]^2%% 达到最小的线性预测函数为:

%%overset(~)(y)=mu_y+sigma_(xy)^T Sigma_(x\x)^(-1)(x-mu_x)%%

即有

%%E(y-overset(~)(y))^2=min_(g(x)) E[y-g(x)]^2%%

称 %%overset(~)(y)%% 为用 %%x%% 对 %%y%% 的最优线性预测。

多重插补

多重插补是指对每一个缺失值估计出 %%D>1%% 个插补值,将这些插补值分别填入缺失处,可得到 %%D%% 个完全数据集,再用标准的完全数据的方法分析每一个数据集,这些推断组合在一起能够反映由于缺失引起的不确定性[8]。

设在某一模型下,构造出了 %%D%% 个完全数据集,令 %%hat theta_d,W_d,d=1,…,D%% 是这 %%D%% 个完全数据集的参数估计和方差,则 %%theta%% 的组合估计为 %%bar theta_D=1/D sum_(d=1)^D hat theta_d%%。而关于方差估计则有两部分:平均插补内方差 %%bar W_D%% 和插补间方差 %%B_D%%。于是总的方差估计为

%%T_D=bar W_D+(D+1)/D B_D%%

其中 %%bar W_D=1/D sum_(d=1)^D W_d%%,%%B_D=1/(D-1) sum_(d=1)^D(hat theta_d – bar theta_D)^2%%,式中 %%(D+1)/D%% 是对有限 %%D%% 的修正[8]。

更具体地[7],数据缺失模式对数据分析有很大影响,在单调缺失下,多重插补方法可以选择回归预测法(PMM)、倾向得分法和马氏链蒙特卡罗法(MCMC)。而对于任意的缺失模式,只能应用 MCMC 法。

回归预测法可以通过多次使用单一插补中的随机回归插补法得到 %%D%% 个完全数据集。这种方法可以保证在正态性假设不成立的情况下填补适当的值,但难点是随机误差项的确定通常是比较困难[11]。

倾向得分法

马氏链蒙特卡罗法

多重插补保持了单一插补的两个基本优点,即应用完全数据分析方法和融合数据收集者知识的能力。相对于单一插补,多重插补有三个极其重要的优点:第一,为表现数据分布,随机抽取进行插补,增加了估计的有效性。第二,当多重插补是在某个模型下的随机抽样时,按一种直接方式简单融合完全数据推断得出有效推断,即它反映了在该模型下由缺失值导致的附加变异。第三,在多个模型下通过随机抽取进行插补,简单地应用完全数据方法,可以对无回答的不同模型下推断的敏感性进行直接研究[4]。

多重插补也有以下缺点:1. 生成多重插补比单一插补需要更多工作;2. 贮存多重插补数据集需要更多存储空间;3. 分析多重插补数据集比单一插补需要花费更多精力[4]。

参考

  1. https://en.m.wikipedia.org/wiki/Missing_data
  2. https://baike.baidu.com/item/%E7%BC%BA%E5%A4%B1%E5%80%BC
  3. https://blog.csdn.net/lujiandong1/article/details/52654703
  4. https://blog.csdn.net/wuxiaosi808/article/details/77479889/
  5. Little, R.J.A. and Rubin, D.B. (1987) Statistical Analysis with Missing Data. John Wiley & Sons, New York.
  6. https://wenku.baidu.com/view/83558d72f524ccbff0218427.html
  7. 杨军, 赵宇, 丁文兴. 抽样调查中缺失数据的插补方法.
  8. Little, R.J.A. and Rubin, D.B. (1987)著,孙山泽译,缺失数据统计分析
  9. 黎镭, 陈蔼祥, 姚赞杰. EM 算法对缺失数据极大似然估计的实证研究[J]. 统计学与应用, 2018, 7(2):210-220. DOI: 10.12677/sa.2018.72025
  10. 王学民. 应用多元统计分析.
  11. 岳勇, 田考聪. 数据缺失及其填补方法综述. 1006 – 4028(2005)06 – 683 – 03
  12. https://www.theanalysisfactor.com/missing-data-mechanism/