醋醋百科网

Good Luck To You!

R与医学统计学:数据缺失值的识别与处理


【引言】

在医学数据处理的过程中经常会遇到数据缺失的情况,数据列表在成百上千甚至过万的情况下难以通过Excel进行处理,该情况下,使用R语言就能帮助大家快速识别缺失值并处理,大大节省了科研前期处理数据的时间和精力。


【正文】


一、数据缺失类型


l完全随机缺失:指缺失的概率和任何变量(包括观察到的和未观察到的变量) 的取值无关。

l随机缺失:指缺失的概率只与数据集中被观察到的变量值有关,与未观察到的变量值无关。比如患者体重确实可能和患者的年龄、疾病状况等因素相关,但是并不受已经缺失的体重值影响。

l非随机缺失:指数据缺失的概率与缺失值的取值有关,这种缺失大都不是偶然因素造成的。例如调查患者的体重,但是更多肥胖的患者不愿意告知体重,导致肥胖患者体重缺失较多。



二、识别缺失值


使用complete.cases()函数可以判断缺失值项。

md.pattern()输出图形

aggr()输出图形


处理缺失值的方法如下,有删除行和插补两种方式:



三、删除行


有两种方式可进行操作:

1.使用na.omit()函数直接删除缺失值所在行;

2.使用complete.cases()函数给出非缺失值所在行的逻辑判断,再利用数据框对象进行提取。



四、用均值/中位数/众数进行插补


主要使用Hmisc包的impute()函数和DMwR2包的centralImputation()函数。

1.使用impute()函数手动插值


2.使用centralImputation()函数进行自动插补

centralImputation()函数可以用数据的中心趋势值来填补缺失值:数值型变量使用中位数,名义变量使用众数。



五、多重插补


多重插补(Multiple Imputation,MI)是一种基于重复模拟的处理缺失值的方法。在面对复杂的缺失值问题时,MI是最常选用的方法,它将从一个包含缺失值的数据集中生成一组完整的数据集(通常是3到10个)。每个模拟数据集中,缺失数据将用蒙特卡洛方法来填补。R中可利用Amelia、 mice和mi包来执行这些操作。这里重点学习mice包(利用链式方程的多元插补)提供的方法。



主要函数mice(data,m,meth,seed)

参数说明:

m:指的是插补数据集的数量,5是默认值;

meth:指的是插补方法。在这里,我们使用预测均值匹配(Predictive mean matching)作为插补方法,其他方法使用可以在R中输入“?mice()”进行查询,age无缺失值,所以显示" ";

PredictorMatrix矩阵显示了各变量插补时利用其它变量的信息,1表示使用,0表示未使用。


不同类型的变量可以选择对应的插补方法



其他:

利用lattice包的stripplot()函数和densityplot()函数可视化数据的插补情况。


变量分布图(stripplot)

数据密度曲线(densityplot)

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言