“科学算命”之临床预测模型(六) 缺失变值分析及数据插补 (上)
2022/4/8 11:32:07 阅读:259 发布者:chichi77
作者:意粉
“科学算命”系列又双叒更新了~~
对于大多数刚开始“科学算命”的新手来说,譬如意粉(二呆姐姐在角落弱弱表示不同意:师兄一点也不新手),一开始的关注点往往都是如何筛选预测因子、如何拟合模型、如何计算出最后的概率值和预测的结果等等,但其实模型构建的每一步都可能对结果产生不小的影响。
缺失值是开展任何临床研究都无法逃避的现实。
以从医院电子病案数据中收集的数据为例,有些实验室指标并不是所以患者都会检查。
当你基于这些指标建模的时候,如何妥善处理这些缺失的数据,就成了一个极其头疼的问题。
spss.钊表示他是第三个图,不要给他太大鸭梨
尽管很多时候我们都想一删了之,但是如果你简单粗暴地拒绝了缺失数据(即仅采用完整数据分析),审稿人也会因此拒绝你。
以下是意粉早年投稿血泪史中的一个小案例:
审稿人要求将删除的个体的基线资料展示出来,审稿人并不是没事找事,要你补充这么无聊的信息。
要知道的是,缺失数据并不可怕,可怕的是缺失数据背后隐藏的规律。
患者入院的时候,护士常规都会测量病人的身高体重计算体重指数。心衰患者往往会存在营养不良的情况,因此心衰患者的体重指数(BMI)可能会偏低。
部分心衰病情比较严重的患者入院后会长期卧床,无法起身测量身高体重,所以在体重指数这个指标上,这群病情严重的心衰患者是缺失的。
那么问题来了,由于这群患者的缺失,体重指数这个指标的降低就不能反映心衰患者的病情和预后,一删了之的做法,是不是显得有些欠妥?
言归正传,当然意粉也意识到审稿人的意图,接下来就回复审稿意见卑微三联:感谢、赞同、照改。
同时还要再正文里说明完整数据和缺失数据在分布上并没有明显差异,才能说明直接删除进行分析不会影响结果。
这个案例中,意粉直接删除的样本比例非常小,因此并不会对结果产生太多影响,所以为了简便才采用了这种做法,还好审稿人宽宏大量,接收了这篇文章。
当然直接删除,不做插补最根本的原因还是:
在后续的学习中,意粉才逐渐意识到,原来缺失值处理是高质量研究中必须考虑的问题。
小黑屋前期的推送:数据里有缺失值,我该怎么办?
已经介绍了缺失值的分类(完全随机缺失,随机缺失和非随机缺失)和判断方法,这里不再赘述。
接下来
主要介绍如何运用R进行缺失值分析
第一步,先生成含有缺失值的数据框:
现在我们得到了一个叫df的数据集,一共有5列:
第二步,我们要了解数据缺失的情况:
我们可以看到每列缺失的比例如下:
第三步,用VIM包可视化数据缺失分布和组合情况:
左图即为第二步缺失比例的可视化,右图可以直观了解数据X1-5的缺失是否有相关性,从而判断数据属于哪种缺失模式
第四步,如果变量多、样本量比较大的情况下,用VIM包可能不能很好的展示缺失情况,这时候可以采用缺失值相关性进行展示:
通过计算可以得到各个变量缺失的相关系数矩阵:
也可以采用热图的形式把相关系数可视化:
从热图中我们可以轻松了解到各个变量的缺失是否存在相关,比如X1与X2的缺失可能就存在较大的相关性。
了解了缺失情况之后,那在模型中该如何针对各种缺失情况采用不同的分析方法呢?
如有侵权,请联系本站删除!