2022/3/31 10:49:06 阅读:1274 发布者:chichi77
各位小伙伴们好啊,今天要和大家聊一个做临床研究、数据分析,永远绕不开的话题:数据缺失。
只要做过临床研究、数据收集、统计分析,几乎肯定会遇到数据缺失的问题,数据缺失就像是真实世界对人类研究的盖章一样,没有缺失反而让人觉得不真实。
那么数据缺失会对研究造成什么影响呢?
首先,数据缺失会让我们损失大量样本量。假设某个数据集,一共有100行变量,变量X1缺失了10%,那么在X1的单因素分析中,最后纳入样本量应该是90例。看上去还好,但是如果X2也缺失了10%,X1+X2都不缺失的样本量则可能只有80-90例,因为X1和X2的10%不一定都是同一批患者。
以下图为例:虽然每个变量只缺失1个数据,但如果我们需要构建方程Y=X1+X2+X3+X4+X5,则真正纳入方程的只有ID=3这一行。如果看总体数据,缺失变量占比只有20%,但是实际分析的时候损失的样本量可能是80%,因为只有模型中所有X同时存在的记录才会纳入分析。
其次,非随机的缺失可能带来偏倚。这个很好理解,比如一个高血压队列,在长期随访的数据中有很多缺失,缺失的这些人很可能是已经控制好了,所以就不来复查了。如果按照这个数据进行分析,结果会偏向于阴性,反之亦然。
这里其实就回答了我们标题中提出的问题,患者的数据缺失了,要分情况处理,不能一概删除,因为有可能造成偏倚。
该怎么“分情况”呢?这就需要引出数据的缺失机制:数据的缺失一般可以分为三种类型,分别是:完全随机缺失、随机缺失和非随机缺失,概念分别如下:
1.完全随机缺失(MCAR):某个变量是否缺失与它自身的值无关,也与其他任何变量的值无关。例如,由于测量设备出故障导致某些值缺失,这种属于完全随机缺失,实际工作中出现的较少。
2.随机缺失(MAR):在控制了其他变量已观测到的值后,某个变量是否缺失与它自身的值无关。例如,人们是否透露收入可能与性别、教育程度、职业等因素有关系。如果这些因素都观测到了,而且尽管收入缺失的比例在不同性别、教育程度、职业的人群之间有差异,但是在每一类人群内收入是否缺失与收入本身的值无关,那么收入就是随机缺失的。
3.非随机缺失(MNAR):即使控制了其他变量已观测到的值,某个变量是否缺失仍然与它自身的值有关。例如,在控制了性别、教育程度、职业等已观测因素之后,如果收入是否缺失还依赖于收入本身的值,那么收入就是非随机缺失的。
理解缺失机制的概念,可以让我们更好地判断针对缺失处理的办法。需要注意的是,虽然理解了原理,但是很多统计学的工作仍然很依赖主观判断,比如上述的缺失是否和本身值有关,每个人的判断也可以完全不同。大家如果拿不准,也可两种方式都做一遍,然后通过敏感性分析来告知审稿人。
好了,前面说了很多数据缺失机制和对统计分析的影响,那么,遇到了数据缺失到底该怎么办呢?
根据我们团队的经验,处理数据缺失最常用的有3种方法:
1.不做处理,直接分析。如果你的数据样本量较大,只有少数变量有缺失,且缺失占比很少,那么“偷懒”的办法就是不做处理,直接进行分析(相当于动态删除了方程中缺失的记录)。虽然这个办法不太严谨,但是对很多研究者来说是最简单可行的办法。但是,如果缺失是非随机的,或者缺失比较多,这个方法就不适用了。
2.单一变量插补。单一变量插补法是利用本列变量的分布特征进行插补,比如我们缺失了很多身高体重的数据,则可以使用身高体重的平均数、众数进行插补。这里的方法有很多,常用的方法包括:均值插补法、末次方式转结法(LOCF)、基线访视转结法(BOCF)和最差结果填补法(WOCF)等等。
这里给大家额外补充一下末次方式转结法(LOCF)。很多需要随访的临床研究,往往会缺失某一次的随访数据,如果因为某次缺失就剔除分析,就太可惜了。因此针对这种缺失,我们可以使用上一次随访数据作为替代。相比于均值法,充分利用了患者个体的差异和时间变化,更接近真实情况。同理,基线访视转结法(BOCF)和最差结果填补法(WOCF)也是如此。
3.多重插补法。相对于单一变量的插补,多重插补利用了变量之间的关系进行预测。多值插补的思想来源于贝叶斯估计,认为待插补的值是随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。根据某种选择依据,选取最合适的插补值。
假设一组数据,包括三个变量X1,X2,X3,将这组数据处理成三组,A组保持原始数据,B组为X1、X2,C组为X3。在多重插补时,A组不做处理;在B组,通过构建X3关于X1、X2的回归,对B组产生X3的一组估计值;对C组作产生X1和X2的一组成对估计值(作X1,X2关于X3的回归)。
进行多重插补时,对A组将不进行处理,对B、C组将完整的样本随机抽取形成为m组(m为可选择的m组插补值),然后基于这m组观测值,对于这m组样本分别产生关于参数的m组估计值,给出相应的预测值。对B组估计出一组X3的值,对C组估计出一组(X1,X2)。
OK,我知道看到这里,很多小伙伴已经晕掉了。多重插补的原理的确比较复杂,但是正是因为考虑了实际数据的复杂性,多重插补也更加贴近真实的情况。越来越多的研究者和论文也开始使用多重插补进行填补数据。 本文只是让大家简单了解插补的思路,详细的原理大家可以查阅文献。
当然,再高大上的分析方法也无法完全还原真实情况,如果有条件,还是要尽可能获取原始的数据,插补的方法只是亡羊补牢,救一下急。
上面讲了很多原理,下面就到了具体的实现环节,大家知道我们做了一个在线分析的小工具EasyR,为帮助大家更好的处理缺失的问题,我们制作了数据插补的模块。
但是因为时间精力有限,我们目前仅在本模块实现了PMM多重插补的方法,可以支持生成5套插补后的数据。之后我们会考虑逐步完善类似于均值插补、末次方式转结法(LOCF)等方法,敬请期待。
下面向大家介绍一下EasyR里面关于数据插补的具体操作:
第一步,在EasyR首页选择数据集或者导入数据集。
第二步,点击“数据清理”模块,点击“数据插补”,在左侧选择解决变量Y和需要插补的X,点击插补。
第三步,点击下方“生成插补后数据”按钮,即可以在首页看到插补后的数据。数据集是在原来数据的后面,生成了插补后的一套数据集。系统默认可以5套数据集,我们可以在第二步中选择数据集的次数,以查看不同数据集。
第四步,多重插补后数据的应用。虽然我们已经得到了多重插补后的数据,但是在实际应用中还有很多需要注意的点,比如结局和干预因素能否插补?插补后的5套数据集是否需要合并处理?因为篇幅有限,本次内容我们就不做进一步讲解了,大家可以自己先摸索一下,之后我们再深入探讨这个问题。
软件获取方法:大家在电脑上输入www.easyr.cc 就可以打开了软件了,关注下方微信号“易侕科研”,回复:邀请码 免费领取邀请码。
如有侵权,请联系本站删除!