本文主要是介绍MIMIC-IV数据库中患者院内死亡的单因素生存分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目的
由易到难,对mimic-iv的查询进行实际操作,体现先前文章中提到的mimic-iv数据查询的规律。
数据分析计划
死亡,是重症患者最重要的结局指标,在MIMIC数据库中收录了院内死亡的数据,以及进出ICU的时间(和进出医院的时间),所以我们可以获得是否死亡,以及从入ICU(或入院)到死亡发生之间的时间,有了这两个指标,我们可以通过Cox单因素(参数和非参数)模型来观察ICU(和医院)内死亡的趋势,以及某个变量(比如,性别和种族等)对死亡趋势的影响,以为后续的分析奠定基础。
数据的获取
我们需要数个变量,1. 从如入ICU(或入医院)到患者死亡的时间; 2. 患者是否发生院内死亡;3. 性别等;而这几个变量都存储在同一个表格中。
select * from `physionet-data.mimic_derived.icustay_detail`
体现先前文章中提到的几个原则:
- 原则1,重视mimic-derived模块,即首先从这个模块中取寻找需要的变量;
- 原则2,google cloud 上的mimic 数据库查询更方便。
- 原则3,查询之前了解变量以及变量存储的表格。
数据分析的方法和结果
- mimic-iv下载表格的信息
# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 subject_id 76540 non-null int64 1 hadm_id 76540 non-null int64 2 stay_id 76540 non-null int64 3 gender 76540 non-null object 4 dod 13628 non-null object 5 admittime 76540 non-null object 6 dischtime 76540 non-null object 7 los_hospital 76540 non-null int64 8 admission_age 76540 non-null int64 9 ethnicity 76540 non-null object 10 hospital_expire_flag 76540 non-null int64 11 hospstay_seq 76540 non-null int64 12 first_hosp_stay 76540 non-null bool 13 icu_intime 76540 non-null object 14 icu_outtime 76540 non-null object 15 los_icu 76540 non-null float6416 icustay_seq 76540 non-null int64 17 first_icu_stay 76540 non-null bool
-
ICU 患者K-M曲线的结果, K-M生存曲线是最常见的非参数模型, 后续我们还可以用参数模型进行类似的估计,这里用的是python包lifelines。
解读:y轴代表患者在某个时间点生存的概率(我觉得这里理解成比率,是不是更好理解一些),x轴代表时间,可以看到随着时间的增加,患者生存的概率逐渐降低(死亡的风险增加),100天的时候生存概率已经到达一个较低的水平。 -
探索ICU患者性别对于生存函数的影响,首先分组制作K-M曲线图,然后进行log-tank检验,都是用lifelines包完成。
log-tank 检验的结果:
test_statistic p -log2(p)
18.88 <0.005 16.13 -
参数模型Weibull的拟合ICU患者数据的结果
结果解读:因为时间数据中有值为0,所以直接用会有提示错误,可以将为0的值替换为小的正值,比如0.1即可。左图累计曲线的与K-M曲线类似,但是更平滑, 有图为Q-Q图,显示与中央线不贴合,代表数据不符合Weibull分布,所以用Weibull模型进行拟合不合适,需要探索其它的模型,在此不多重复操作。 -
以上操作在院内患者数据中的分析结果
test_statistic p -log2(p)
26.77 <0.005 22.05
结果解读:院内死亡的时间跨度更长一些,男性和女性之间的生存率之间有统计学差异
这篇关于MIMIC-IV数据库中患者院内死亡的单因素生存分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!