程理++张楠
摘 要:本文根据生物样本数据之间有关联性的特点,对一种最基本的缺失数据填补办法进行逐步优化。首先对数据进行预处理,摘取部分R统计软件中自带的iris鸢尾花数据,每一行代表一株花的记录,并人为随机挖空。其次,使用最基本的均值填补对缺失数据进行填补。然后,针对均值填补法的主要缺点,提出改进方法:对样本数据进行系统聚类,再对分类后的各组数据分别进行均值填补。考虑样本数据之间的关联性,对分类之后的填补方法再一次进行优化,采用回归填补法填补缺失数据。比较基本的均值填补、分类后的均值填补、分类后的回归填补,发现三者的误差率逐步递减,证明本文提出的优化方法是可行的。最后,由于仍然存在相当大的误差,考虑到分类方法是基于欧氏距离,没有考虑指标间的相关性,本文提出马氏距离作为改进。
关键词:填补缺失数据 聚类分析 回归填补 马氏距离
中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2017)09(b)-0138-03
基因芯片是分子生物学、微电子学和信息学等学科交叉形成的一种新型生物技术,目前已经广泛应用于分子生物学、生物医学等研究领域,如DNA测序、基因调控网络和癌症检测等[1]。由于实验中存在很多变异来源,基因表达数据矩阵通常含有缺失,比普通缺失数据更为复杂的是,涉及到基因表达谱的相似性度量。对于缺失数据,先将缺失值填充,然后对产生的完全数据用标准方法进行分析。对于完全数据处理,有很多经典的统计方法,所以重难点在于如何填补数据。
本文首先對数据进行预处理,摘取部分R统计软件中自带的iris鸢尾花数据,每一行代表一株花的记录,并人为随机挖空。其次,使用最基本的均值填补对缺失数据进行填补。然后,针对均值填补法的主要缺点,提出改进方法:对样本数据进行系统聚类,再对分类后的各组数据分别进行均值填补。考虑样本数据之间的关联性,对分类之后的填补方法再一次进行优化,采用回归填补法填补缺失数据。比较基本的均值填补、分类后的均值填补、分类后的回归填补,发现三者的误差率逐步递减,证明优化方法是可行的。最后,由于仍然存在相当大的误差,分析其原因,是因为前面的改进都是基于最基本的统计方法结合其他交叉学科,例如张磊等人关于的KNN-RVM分类器的研究[2]中采用的KNN法是将统计方法与模式识别相结合,却没有考虑到这些分类方法都是基于欧氏距离,没有考虑指标间的相关性,可能不太适用于有关联的生物样本数据研究,因此本文提出马氏距离作为改进。
1 数据预处理
为了证明方法的优劣,直接用缺失数据是不妥的,因为无法进行验证。所以先找一些有相关性的完整数据进行随机挖空,然后用不同的方法模型对得到的缺失数据进行填补,最后和原始数据进行比较,衡量填补的精确度。笔者摘取了部分R统计软件中自带的iris鸢尾花数据,每一行代表一株花的记录,并人为随机挖空,从上往下空缺部分的原数据分别为1.4,1.7,2.5。
2 原始模型
均值填补是一种简单有效的处理指标值缺失的方法[3],可以将它看作最基本的缺失值填补方法,即在数据中每一行为一个纪录单元,设Yij是单元i的Yj值,则用有记录的Yj取平均值来替代缺失值,从上往下得到的NA值分别为3.9,1.2,3.1。
但是这种方法并没有考虑数据间的关联性,估计的准确度大受影响。尤其在基因数据中,需要消除不相似基因对基因表达谱中缺失值估计的影响,直接均值填补得到的偏差是很大的,我们可以对该方法进行适当改进,例如先对数据进行分类再填补,考虑数据间的相关性的缺失填补方法,将会更适用于生物统计中。
3 模型改进
3.1 分类填补
关于分类,可用聚类分析[4],聚类分析又称群分析,它是研究对样品或指标进行分类的一种多元统计方法。但这些统计方法都是基于完全数据,对于本身具有缺失值的数据,不能直接分类,而应先删去不完全记录,然后对完全记录的数据聚类分析。
系统聚类法,即一开始每个对象自成一类,然后每次将最相似的两类合并,合并后重新计算新类与其他类的距离或相近性测度,一直继续直到所有对象归为一类为止,并类的过程可用一张谱系聚类图描述[5]。
3.1.1 系统聚类
先将含NA的行删去,因为每一个指标的单位不尽相同,所以需要对数据进行变换,变换方法有中心化变换、标准化变换、极差标准化变换、对数变换等,此处我们采用标准化变换,使得变换后每个变量的样本均值为0,标准差为1,且标准化后的数据与变量的量纲无关。
然后用系统聚类法进行聚类分析,在聚类过程中采用Ward法[6],也称为离差平方和法。它基于方差分析思想,如果类分得正确,则同类样品之间的离差平方和应当较小,不同类样品之间的离差平方和应当较大,得到谱系聚类图(见图1)。
记上图中框线标出的3类从左往右依次为第1、2、3类。
3.1.2 分类后的均值填补
第一个NA值所在记录为7号,对应数据为4.6,3.4,NA,0.3,将此行加入到第一步处理的完全数据中,运用类似思想,将NA值所在的列删去,仅考虑另外3个指标对这28条记录进行聚类分析。得到7号记录归为第1类,则取第一类中9条完全记录的第三个指标的平均值作为7号记录所缺失的值,计算得到1.4。
同理,第二个NA值所在的78号记录数据分别为6.7,3,5,NA,将此行加入第一步的完整数据中并将第四个指标值都去掉后聚类分析,得到78号记录归为第3类,求得缺失值为1.9;第三个NA值所在的114号记录数据分别为5.7,NA,5,2,得到114号记录归为第3类,缺失值为3。
3.1.3 分类后的回归填补
回归填补即考虑单个变量的不响应[7],变量Y1,…,YK-1全都有观测,Yk对前r个有观测而丢失了后n-r个观测。回归借补基于r个完全个体计算Yk关于Y1,…,YK-1的回归,然后用回归的预测值填充缺失值。即与分类填补中思想类似,逐个对每个NA值进行填补,则K值为3,n为28,n-r为1。endprint
记iris数据集的4个指标Sepal.Length,Sepal Width,Petal.Length,Petal.Width分别为X1,X2,X3,X4,例如填补7号记录中的NA,删去78、114号两行记录,则剩下的28行数据中,指标量X1,X2,X4全都有观测,X3指标量缺失7号记录的数据。用27条完全数据,计算X3关于X1,X2,X4的回归,得到方程为:X3=-0.2763+0.7391X1-0.6483X2+1.4184X3,回归系数与回归方程都是显著的,所以可以预测,当X1=4.6,X2=3.4,X4=0.3时,X3=1.3;同理对78号的NA值处理,计算X4关于X1,X2,X3的回归,得到方程:X4=-0.23557-0.27041X1+0.28417X2+0.57135X3,回归系数与回归方程显著,预测NA值为1.7;对于114号NA值,计算X2关于X1,X3,X4的回归,得到方程:X2=0.6256+0.7141X1-0.7030X3+0.7650X4,回归系数与回归方程显著,预测NA值为2.7。
与分类后均值填补比较,回归填补准确度更高。
3.2 分類方法的距离改进
对偏差产生原因进行分析,在聚类分析中默认计算距离的方法都是用欧氏距离[8],但欧式距离与各变量的量纲有关,且没有考虑指标间的相关性,也没有考虑各变量方差的不同,即变差大的变量在距离中的贡献就会大。所以很有可能会造成填补结果出现较大偏差[9]。
马氏距离是欧几里德空间中非均匀分布的归一化距离[10],不用考虑各个变量的量纲,它引入协方差来描述变量之间的相关性。例如样品Xi和样品Xj的马氏距离为:
其中S-1为样本协差阵的逆矩阵。马氏距离既排除了变量间相关性的干扰,而且还不受各项指标量纲的影响,还对线性变换具有不变性[11]。
dij(M)=(Xi-Xj)S-1(Xi-Xj)
但在运算过程中,同一类样品间的马氏距离要用这一类的协差阵来计算。但类的形成却要依赖样品间的距离,而样品间合理的马氏距离又依赖于类,这就形成了一个循环。且马氏距离会夸大变化微小的变量的作用,而且受到方差矩阵不稳定的影响[12],我们不一定能顺利计算出马氏距离。
4 方法评价与推广
均值法没有考虑数据间的关联性,准确性会大大降低,分类后再使用均值法,效果优于分类前。分类后的回归填补考虑到各指标间的相关性,其效果有比分类后的均值填补更优。但是这些经典统计方法都是基于欧氏距离计算和分类,没有考虑指标间的相关性,可能会造成填补结果出现较大偏差,使用马氏距离进行改进,可能会得到更精确的结果。
本文所使用的生物样本数据指标数较少,如果遇到指标数过多的情况,就要先使用主成分分析法或因子分析法对数据进行降维,再进行缺失数据的填补。
参考文献
[1] 胡昇.基于生物信息学技术筛选慢性乙型肝炎血液相关基因的研究[D].南方医科大学,2013.
[2] 张磊,刘建伟,罗雄麟.基于KNN和RVM的分类方法——KNN-RVM分类器[J].模式识别与人工智能,2010(3):376-384.
[3] 李伟栋,刘慧燕,肖晚晴,等.卫生项目评价指标缺失值均值填补的效果评价[J].中国妇幼保健,2014(24):3871-3874.
[4] 张麟,潘红岩.聚类分析算法应用研究[J].数字技术与应用,2016(10):143,145.
[5] 高惠璇.应用多元统计分析[M].北京大学出版社,2005.
[6] 李琼.系统聚类分析中的遗传算法[J].武汉交通科技大学学报,2000(3):301-304.
[7] Little R J A,Rubin D B.Statistical Analysis with Missing Data, Second Edition[M]// Statistical Analysis with Missing Data, 2002:200-220.
[8] 张大克,王玉杰.随机平均欧氏距离的统计性质与分类阈值[J].天津科技大学学报,2008(4):85-88.
[9] 邹凌君.流数据的聚类分类算法研究[D].扬州大学,2008.
[10] 陈加顺.海洋环境下聚类算法的研究[D].南京航空航天大学,2014.
[11] 王振丽.基于加权马氏距离的方法研究[D].南京理工大学,2016.
[12] 陶建波.基于岭估计的马田系统分类方法研究及其应用[D].南京理工大学,2016.endprint