基于迁移学习个性化模型的 AKI 预测模型的开发和验证
本项目旨在构建和验证用于急性肾损伤 (AKI) 预测的具有迁移学习 (PMTL) 的个性化模型,数据基于堪萨斯大学医学中心 (KUMC) 的电子健康记录 (EHR)。
背景
急性肾损伤 (AKI) 是一种异质性综合征,影响 10-15% 的住院患者和 50% 以上的重症监护病房 (ICU) 患者。在此应用中,建议建立个性化预测模型,以识别有医院内获得性 AKI 风险的患者及其风险因素,并在不同的异质性患者亚组中对模型进行外部验证。该项目的开展旨在实现以下目标:
目标 1 - PMTL 的开发:开发个性化 AKI 预测模型方法,并使用来自堪萨斯大学医学中心 (KUMC) 去识别临床数据存储库(本体叙述健康企业存储库)的电子病历 (EMR) 数据进行内部交叉验证。
- 任务 1.1:数据提取和质量检查
- 任务 1.2:探索性数据分析(例如数据清理和表示策略、特征工程)
- 任务 1.3:开发相似样本匹配模块和相似性度量优化模块
- 任务 1.4:解决相似样本匹配后样本量减少的问题(开发迁移学习模块)
- 任务 1.5:开发拟议的个性化模型(PMTL)
目标 2 - PMTL 验证:验证异质性患者的 PMTL。实施自动化软件包为每位普通患者开发 PMTL。在普通患者、高风险亚组、低风险患者和先前 AKI 预测文献研究的亚组中验证了 PMTL 的预测性能,并与全局、亚组和先前模型进行了相应的比较。同一患者的 PMTL 预测结果在不同的实验中不会改变;不同人群的 PMTL 性能变化是由所选测试样本的变化引起的。
- 任务 2.1:在所有测试样本中测试 PMTL
- 任务 2.2:将普通患者和低风险患者的 PMTL 与全局模型进行比较
- 任务 2.3:比较高风险患者的 PMTL、全局和亚组模型
- 任务 2.4:比较先前文献中亚组中的 PMTL、全局、亚组和先前模型
目标 3 - 风险因素的相互作用分析:分析并可视化不同亚群中最重要的预测因子的作用变化,并探索与作用变化相关的预测因子的相互作用。
- 任务 3.1:根据预测因子在提高一般患者模型性能方面的重要性对其进行排序
- 任务 3.2:评估预测因子在不同亚群和人群中的影响变化
- 任务 3.3:基于元回归和亚群分析,分析预测因子的相互作用
数据预处理
对于数据集中的每一例住院病例(就诊),从 EMR 中提取所有人口统计信息、生命体征数据、药物、既往病史和入院诊断。对于测试实验室,提取一组选定的实验室变量,这些变量可能代表与 AKI 相关的合并症的潜在存在。SCr 和 eGFR 未被列为预测因子,因为它们用于确定 AKI 的发生。
变量带有时间戳,数据集中的每次遭遇都由一系列临床事件表示,这些临床事件由每日汇总的临床观察向量构建而成。对于 AKI 患者,预测点是 AKI 发作前 1 天,对于非 AKI 患者,预测点是最后一次 SCr 记录前 1 天。执行以下数据预处理过程:
- 药物暴露:包括住院药物(即住院期间使用的药物)和门诊药物(即药物核对和之前的门诊处方)。药物名称通过映射到 RxNorm 成分进行规范化。如果在预测点前 7 天内服用药物,则药物暴露定义为真。
- 诊断编码:特定医疗系统联盟数据源收集的所有患者精确诊断相关组 (DRG) 表示。对入院诊断进行了独热编码,将其转换为二进制表示。
- 病史:患者病史被记录为主要诊断(ICD-9 代码根据医疗保健研究和质量机构的临床分类软件 (CCS) 诊断类别分组)。在预测点之前考虑了每个主要诊断的存在/不存在。
- 生命体征:根据常用标准对生命体征进行分类,缺失值被视为唯一类别。使用预测点之前的最后记录值。
- 实验室指标:被归类为'未知'、'存在且正常'或'存在且异常'。使用预测点之前的最后记录值。
- 人口统计数据:根据独热编码被转换成二进制变量。
要求
为了运行预测模型并生成最终报告,必须满足以下基础设施要求:
- Python:需要版本 >=3.7.4。
- scikit-learn:python 中广泛使用的机器学习包。大部分实验使用 0.19.2 版本,但校准实验需要 0.24.2 版本。
- statsmodels:用于元回归的 Python 包。
模型验证
以下说明用于从研究队列中生成最终报告。
第一部分:数据准备
- 确保患者的类别标签(AKI 或非 AKI)放在用于模型训练和测试的数据表的最后一列。
- 在 python 代码中编辑输入和输出的文件路径。
第二部分:PMTL 的发展
- 比较个性化建模的不同方法
- 目的:通过比较相似样本匹配、相似性度量优化和解决验证集中样本量减少的不同方法,确定适合个性化建模的方法。
- 代码:这些实验使用的主要代码保存在
scripts文件夹中。例如,PM-KNN_PCA.py表示相似样本匹配基于'k-最近邻'算法,PCA 用于特征选择,不执行相似度优化。所有代码都可以输出有和没有迁移学习的模型的预测。
- 开发 PMTL
- 代码:PMTL 训练最终使用的代码是
PMTL_training.py。它输出相似样本匹配的优化相似度度量。
- 代码:PMTL 训练最终使用的代码是
第三部分:PMTL 验证
- 在普通患者中的验证
- 保存
PMTL_training.py从训练数据中学习到的相似度度量。 - 通过指定保存相似度测量的文件路径以及训练集和测试集的路径来编辑文件夹
scripts中的PMTL_testing.py。 - 运行
PMTL_testing.py,它将输出每个患者的 PMTL 预测(具有特定数量的相似样本)和全局模型(使用 100% 样本构建)以及 PMTL 中每个患者的预测因子的逻辑回归系数。 - 运行
Model_comparison.py(在文件夹scripts中)来比较 PMTL 和全局模型之间的模型区分,或者使用像 scikit-learn(为 AUROC 提出)这样的软件。 - 运行
Calibration_analysis.py(在文件夹scripts中)来比较模型校准。
- 保存
- 在高风险和低风险患者中验证
- 通过指定保存用于确定高风险子组的特征列表的文件路径以及训练集和测试集的路径,编辑文件夹
scripts中的Subgroup_modeling_in_subgroups_of_our_data.py。 - 运行
Subgroup_modeling_in_subgroups_of_our_data.py,会输出这些高风险亚组中每个患者的亚组模型预测,其余低风险患者的预测概率设置为 0,可以用 Excel 轻松筛选出来。可以和一般患者的情况进行类似的模型对比。
- 通过指定保存用于确定高风险子组的特征列表的文件路径以及训练集和测试集的路径,编辑文件夹
- 在先前研究中的亚组中进行验证
- 编辑
scripts文件夹中的Subgroup_modeling_in_subgroups_in_previous_study.py,指定保存先前研究中确定的子组所使用的特征列表的文件路径、训练集和测试集的路径以及一般患者的 PMTL 预测结果的路径。 - 运行
AUC_of_model_in_subgroups_in_previous_study.py,它将输出子组、全局和个性化模型的 AUROC。 - 编辑
scripts文件夹中的AUC_std_in_subgroups_in_previous_study_PMTL.py,指定保存先前研究中确定的子组所使用的特征列表的文件路径以及一般患者的 PMTL 预测结果的路径。 - 运行
AUC_std_in_subgroups_in_previous_study_PMTL.py,它将输出 PMTL 的 AUROC 标准差,可以用来将 PMTL 与以前研究中的模型进行比较。
- 编辑
第四部分:预测因子相互作用分析
- 编辑
scripts文件夹中的AUC_gain_of_predictors_in_global_model_and_PMTL.py和AUC_gain_change_in_subgroups.py,指定训练集、测试集、一般患者的 PMTL 预测结果(保存每个 PMTL 的截距)和每个一般患者的 PMTL 系数的文件路径。文件路径保存用于确定高风险亚组的特征列表,这也是AUC_gain_change_in_subgroups.py所需要的。 - 运行
AUC_gain_of_predictors_in_global_model_and_PMTL.py,输出 PMTL 和全局模型对一般患者的预测中各预测因子的 AUROC 增益(即移除一个预测因子后模型的 AUROC 变化量),然后可以用 Excel 对预测因子的重要性进行排序。 - 运行
AUC_gain_change_in_subgroups.py。它输出每个预测因子在预测不同子组时对 PMTL 和全局模型的 AUROC 增益。 - 编辑
scripts文件夹中的AUC_with_top_predictors_PMTL.py和AUC_with_top_predictors_global_model.py,指定训练集、测试集、您选择的重要特征列表和用于确定高风险子组的特征列表的文件路径。AUC_with_top_predictors_PMTL.py也需要保存每个一般患者的 PMTL 系数的文件路径。 - 运行
AUC_with_top_predictors_PMTL.py和AUC_with_top_predictors_global_model.py。当仅考虑重要预测因子时,它会输出 PMTL 和全局模型在预测不同子组时的 AUROC。 - 编辑
SE_analysis_for_PMTL.py,指定训练集、测试集以及在训练集中学习到的相似度度量的文件路径。 - 运行
SE_analysis_for_PMTL.py,输出 PMTL 估计系数的标准误差。当样本量不能显著大于潜在预测因子时,不建议使用此脚本;在这种情况下,例如我们在子组模型中估计系数的标准误差,我们多次抽样训练集并重建模型,但这种方法在 PMTL 中花费了相当长的时间。 - 通过指定目标预测因子列表、测试集、每个一般患者的 PMTL 系数以及 PMTL 中系数估计的标准误差的文件路径来编辑
Interaction_discover_by_meta_regression.py。 - 运行
Interaction_discover_by_meta_regression.py,返回的结果可以帮助我们分析哪些因素可能与目标预测因子相互作用。

