功能介绍

基于临床试验和病例研究数据建立统计或者机器学习预测模型,预测病人服用某一药品后,发生不良反应的概率。

方法介绍

在真实世界主动监测数据中,不良反应的发生率较低。例如,对于某种药物只有1%的患者服药后会出现不良反应,这种问题在统计学中为分类标签不平衡问题。如果简单地使用传统的分类算法进行建模可能导致预测的结果偏向于无不良反应,难以进行准确的预测。

本方法针对真实世界的主动监测的高维分类标签不平衡数据,设计了集成聚类重采样提升学习方法。使用基于谱聚类的集成重采样算法处理高维类不平衡问题,进而基于XGBoost算法建立分类模型,可有效预测病人服药后发生不良反应的概率。其中基于谱聚类的集成采样算法能快速且高效的从大量未发生不良反应的患者中采样出具有代表性的患者样本,降低初始数据的不平衡程度;XGBoost是一种结合L1和L2正则化方法的梯度提升树算法。其中L1正则化可以使得一些决策树的叶节点权重为0,剪枝一些不必要的决策树。L2正则化使得算法中各决策树的权重更加平滑,提高模型的泛化能力。因而能良好适应高维稀疏的医疗领域结构性数据。并且XGBoost使用了加权梯度下降算法,根据损失函数的梯度和二阶导数来自适应地调整学习率,提高模型的准确性。

操作流程

操作流程图


新模型对处理后的数据上传要求

数据上传要求说明

  • 模型训练需要使用处理后的数据, 所以如果数据未处理, 需要先对数据进行预处理( 附不良反应数据常用的数据清洗, 预处理方法).
  • 数据需要包括一个二分类变量(Y), 即不良反应是否发生和至少一个自变量(X).
  • 数据集中的样本被随机的分为两个子数据集, 用于构建模型的数据称为训练集, 用于预测的数据称为测试集.

数据清洗及预处理方法

一.缺失数据与异常观测值

  1. 如果数据有异常观测值, 判断异常值产生的原因, 若为一些外在原因, 如产生的乱码, 则删除异常值, 若为人为因素, 请考虑如下处理方法:
  • 统一单位, 例如身高的单位为cm、体重的单位为Kg;
  • 保留超出正常用药年龄区间的观测, 不可轻易删除;
  • 删除存在异常给药次数、滴注速度的观测.
  1. 如果数据有缺失数据, 根据缺失数据所在协变量的类型填补:
  • 如果缺失的观测值所在的协变量为连续型变量, 可参考系统中连续缺失数据填补方法, 或使用R package MICE;
  • 如果缺失的观测值所在的协变量为离散型变量, 即分类变量, 可参考系统中离散缺失数据填补方法, 或使用R package MICE.

二.数据清洗及字符型变量转换

  1. 可考虑对连续型变量进行标准化处理.
  2. 离散型变量转化为二分类变量, 比如询问是否有合并用药, 是否与A, B, C, D药联合使用, 取值为0或者1, 0代表否, 1代表是.
  3. 离散变量内容医学标准化:既往病史、主要诊断、次要诊断信息请按ICD10国际疾病分类标准编码进行标准化处理;合并用药名称、合并用药类别名称请按世界卫生组织药物词典进行标准化处理.
  4. 对于为各观测记录中取多个值的变量, 如既往病史、次要诊断、合并用药名称等, 请使用R package tmcn中createDTM函数, 创建中文术语-文档矩阵(每个取值作为一个变量, 取值为0或者1, 取值1表示对应术语在观测中存在, 0表示不存在).

三.其他数据清洗及处理注意事项

  • 使用药物剂量单位请规范为mg、ml、u, 若涉及药物浓度换算请严格统一相应溶质单位及溶媒单位.
  • 用药时间记录要准确, 要有统一标准. 比如最后一次用药日期 - 首次用药日期 + 1.
  • 对不良反应标签的定义要准确: 应为是否发生某一类或者某一不良反应.

示例数据介绍

本数据集共收集了30071例患者的数据, 其中108例发生了某一不良反应, 不良反应发生率为0.35%. 该数据集主要记录了患者的基本信息、病症情况、给药方案、合并用药、不良反应情况、疗效情况、实验室检查及给药合理性评价等信息. 不良反应主要涉及皮肤及其附属物、中枢及周围神经系统、心外血管系统的损害, 共占68.35%, 表现为瘙痒、皮疹、头晕、头痛、浅表静脉炎、潮红、心悸等. 数据集包含107个变量, 转换后共有1834个变量. 最终筛选出74个自变量和1个结局变量, 并将数据集按8:2划分为训练集和测试集, 分别包含24056例和6015例患者. 此外, 我们收集了一些新的患者信息用于预测.




新模型构建及不良反应预测



数据确认


Loading...


1. 数值变量


Loading...


2. 分类变量


Loading...


直方图

Loading...


当分箱数为0时,绘图将使用默认分箱数。


概率密度函数图

Loading...


说明
  • 直方图:通过描述某一数值范围内出现的观察值频率,粗略评估给定变量的概率分布
  • 密度图:估计数据的概率密度函数

变量描述

上传的数据转换为模型中的变量如下:

Loading...


Loading...


Loading...


说明
  • ROC 曲线是根据一系列不同的二分类方式,以灵敏度为纵坐标,1 - 特异度为横坐标绘制的曲线。
  • 灵敏度(Sensitivity, 也称为真阳性率)测量被正确识别的实际不良反应发生的比例。
  • 特异度(Specificity, 也称为真阴性率)测量被正确识别的实际不良反应未发生的比例。
Loading...

Loading...


验证结果



数据确认


Loading...


数据确认




                    
Loading...


说明
  • ROC 曲线是根据一系列不同的二分类方式,以灵敏度为纵坐标,1 - 特异度为横坐标绘制的曲线。
  • 灵敏度(Sensitivity, 也称为真阳性率)测量被正确识别的实际不良反应发生的比例。
  • 特异度(Specificity, 也称为真阴性率)测量被正确识别的实际不良反应未发生的比例。
Loading...


数据确认



说明
  • ROC 曲线是根据一系列不同的二分类方式,以灵敏度为纵坐标,1 - 特异度为横坐标绘制的曲线。
  • 灵敏度(Sensitivity, 也称为真阳性率)测量被正确识别的实际不良反应发生的比例。
  • 特异度(Specificity, 也称为真阴性率)测量被正确识别的实际不良反应未发生的比例。
Loading...

预测结果



数据确认