李 杰 张 睿 芮 晨, 王欣然
【提 要】 目的 在C5.0决策树算法的基础上,结合处理不平衡样本集的EasyEnsemble思想,建立患者非医嘱离院预测模型,有效识别非医嘱离院倾向患者。方法 基于EasyEnsemble思想,通过Bootstrap采样方法抽取多数类样本子集组建多个新的均衡数据样本集,运用C5.0决策树算法并结合交叉验证方法与代价矩阵,训练多个基分类器,最后经Bagging算法集成,得到最终预测模型。结果 在10组测试集下平均总分类准确率、平均平衡准确率、少数类别样本平均召回率和平均AUC值分别达到74.27%、82.34%、91.70%、86.21%。结论 基于EasyEnsemble和C5.0决策树算法的患者非医嘱离院预测模型有较好较稳定的识别性能,为医院提升医疗质量和服务水平,降低非医嘱离院率提供了有力依据。
非医嘱离院率是重要的医疗统计指标之一,能客观地衡量医疗质量和服务水平[1]。非医嘱离院是指患者的病情需要继续住院进行治疗,但患者自身或者其家属由于个人原因没有按照医嘱要求而自行出院。非医嘱离院使本应得到治疗的患者没有得到相应的救治,可能导致病情加剧。对于医院来说,过多非医嘱离院不利于医院医疗活动的正常开展,降低医院自身的社会效益和经济效益[2-3]。因此,亟需科学分析非医嘱离院倾向患者特征并有效识别非医嘱离院倾向患者,从而帮助医院提前开展针对性工作,降低非医嘱离院率。
C5.0算法[4]是在C4.5的基础上结合误判成本矩阵和Boosting等先进技术的一种复杂度更低的决策树分类算法。它进一步提高了决策树对样本的识别率,可同时处理数值型数据和非数值型数据,作为个体学习器有较好的性能表现,非常适合医疗领域数据统计分析[5],但其在不平衡训练集中识别少数类别样本能力较差,因此需要借助EasyEnsemble思想对不平衡训练集进行平衡化处理。EasyEnsemble思想是指通过不断从多数类中抽取样本,使每个模型中各类样本数量相同,最后集成所有模型,从而较好地处理不平衡数据下分类器的识别率偏向于多数类别样本的这一问题[6]。
在现实离院方式数据中,非医嘱离院数据量通常与医嘱离院数据量有较大差距。因此,本文借助EasyEnsemble思想,通过抽取多数类别样本子集组建多个新的均衡训练集训练出多个C5.0分类器,然后借助Bagging算法集成最终分类结果,从而使非医嘱离院倾向患者能更好地被识别出来。
在某医院数据库中检索2015年1月至2017年6月间离院方式不为空值的106457例出院患者的完整数据。其中,非医嘱离院数据量和医嘱离院数据量比例低于1:10,数据具有不平衡的特征。根据需要,提取出13个有效字段,用于模型训练和测试。前12个字段分别为付款方式、性别、年龄、婚姻、职业、民族、入院途径、入院科别、住院天数、主要诊断病况分类号、患者转归、手术级别,最后一个字段为是否为非医嘱离院。将数据进行离散化处理,除住院天数字段设置为连续型变量外,其余字段均设置为类别变量,并用10折交叉验证法将整个数据集划分为10组训练集和测试集。
在进行模型测试时,将医嘱离院识别为非医嘱离院的错误作为假阳性,用COST(A)表示;将非医嘱离院识别为医嘱离院的错误作为假阴性,用COST(B)表示[7]。由于非医嘱离院患者倾向识别是一个在不平衡样本集上识别少数类别样本问题,总体错误率无法全面反应该模型的优劣,而应着重考虑少数类别识别错误率。采用excel软件,选择CHITEST()函数,运用卡方检验分别比较COST(B)取不同值时模型两两之间的差异,以P<0.05为差异有统计学意义。
R语言是统计领域较为流行的模型编程和统计分析工具[8],因此患者非医嘱离院预测模型基于R语言实现。将β设置为1.5,用RODBC中的函数提取原始数据,主要采用C5.0()函数作为基学习器的模型训练,predict()函数进行验证集和测试集的非医嘱离院识别,其余流程代码自己编程实现。
非医嘱离院识别是一个在不平衡样本集上识别少数类的分类问题。在预测结果的真阳性(true positive,TP)、假阳性(false positive,FP)、真阴性(true negative,TN)、假阴性(false negative,FN)基础上,综合考虑总的分类准确率(accuracy,ACC)=(TP+TN)/ (TP+FN+FP+TN)、平衡准确率(blanace accuracy,BA)= (TP/(TP+FN)+TN/(TN+FP))/2、少数类别样本召回率(recall,R)=TP/(TP+FN)、以及AUC值(area under ROC curve)来衡量该模型的性能[9]。
本文通过多次实验的方法确定最有成本矩阵。在其他模型参数固定不变的前提下,将COST(A)固定为1,COST(B)值由1开始逐步增大进行设定,然后训练出多个模型并用同一组测试集进行测试,得到的各个模型的分类错误率如表1所示。从B类错误率来看,COST(B)=1与COST(B)=2、3、4、5分别比较,经过卡方检验得到P<0.001。即COST(B)=1与其他取值相比,差异有统计学意义,且COST(B)=1时B类错误率较高,则COST(B)应设置为2≤COST(B)≤5。COST(B)=2、3、4、5两两之间P值均大于0.05,差异无统计学意义,而COST(B)=2总错误率相对较低,即COST(B)=2是比较合适的选择。
表1 COST(B)取不同值时模型的错误率(%)
患者非医嘱离院预测模型在10组测试集上预测结果的TP、FP、TN、FN以及各性能度量指标计算结果如表2所示。计算10组测试集下4种性能指标平均值,ACC、BA、R、AUC均值依次为74.27%、82.34%、91.70%、86.21%。
表2 10组测试集下各性能度量结果表
用全训练集进行模型训练,生成决策树模型,选择涵盖训练样本较多的决策分类规则,绘制决策树如图1所示。根据训练出的模型分析非医嘱离院患者主要特征。首先,入院科别在非医嘱离院识别模型中是最为重要的变量。其中,重症医学科、肿瘤内科、老年内科等为非医嘱离院高发科室。第二,住院天数和患者转归为次重要变量,其中非医嘱离院患者的住院天数基本集中两周以内,患者转归则以未愈为主。第三,非医嘱离院患者的付款方式主要为全自费和城乡居民医疗保险;入院途径以急诊为主;大多没有进行手术;老年年龄段居多。
基于某医院106457位患者的数据,采用C5.0决策树算法和EasyEnsemble思想,误判成本值设定为COST(A):COST(B)=1:2,进行非医嘱离院预测模型的训练与测试,取得了令人满意的结果。患者非医嘱离院模型在10组测试集上表现较为稳定,测试的总体准确率均值达到74.27%,AUC均值达到86.21%,尤其是对于非医嘱离院患者的识别率均值高达91.70%,即模型能将绝大多数非医嘱离院倾向患者识别出来,预测效果好且性能稳定。
图1 患者非医嘱离院预测的决策树模型
在非医嘱离院预测的决策树模型中,入院科室、住院天数、患者转归、付款方式、入院途径和患者年龄等是重要的预测变量。不同科室间收治患者的病种和危重程度不同,所以各科室非医嘱离院情况有较大差别。其中,由于经济因素、疾病因素、子女因素等[10],重症医学科非医嘱离院率较高。与何丽萍等发现相类似[1],住院时间较短的患者非医嘱离院率较高,大多为短期住院后转院、放弃治疗或自觉好转出院。患者转归以未愈为主,说明患者应尽量遵从医嘱,否则有可能会造成治疗延误、病情加剧。非医嘱离院患者中大多为自费,其原因主要与缺乏有效的医疗保障和治疗带来的经济压力过大有关[11]。另外,非医嘱离院患者以老年患者居多,大多由于老年患者预后差,家属放弃治疗比例高。已有非医嘱离院研究中鲜有考虑入院途径这一因素,研究发现急诊患者非医嘱离院率较高,由于为急诊出院患者制定好出院医嘱非常关键[12],因此医院应高度重视急诊患者群体。
根据本研究得到的决策树模型,能够帮助医院提前识别有非医嘱离院倾向的患者,并采取针对性措施,使患者按医嘱离院。非医嘱离院是一个综合因素影响的结果,医院应针对可控因素开展工作,全面提高医疗服务质量,降低非医嘱离院率,获取更大社会和经济效益[2]。