基于Logistic回归心脏病判断的统计分析*

2022-01-23 13:35赵胜利
关键词:静息患病心绞痛

徐 珂, 赵胜利

(曲阜师范大学统计学院,273165,山东省曲阜市)

0 引 言

根据国家卫生健康委员会的统计数据,在改革开放之后,我们国家的心脏病发病率一直呈现上升趋势. 世界卫生组织统计发现,世界上每年有近1700万人死于心血管疾病.如何快速、有效地对心脏病进行诊断始终是生命科学领域研究的重点问题之一[1].目前,对于心脏病的诊断问题研究,刘婷等利用SPSS软件基于逐步分析的QAS技术对定量参数与冠状动脉粥样硬化性心脏病关系进行了研究[2];程颖等利用PCA的决策树算法对心脏病诊断进行了研究[3];郭富强建立了基于LVQ网络的心脏病智能诊断模型[4].本文首先通过对心脏病诊断数据集进行数据可视化分析,再通过上述方式得出的结论建立Logistic回归模型进行统计分析,对于心脏病的诊断判别有一定的现实意义.

1 基本概念和研究方法

1.1 心脏病病理

心脏病是心血管疾病的总称,包括冠心病、风湿性心脏病、心肌炎、先天性心脏病等多种类型.不同心脏病类型的病理是不同的,例如:心脏的神经官能症属于心因性疾病,应以精神治疗为主,辅以药物及其他物理治疗,属于后天性疾病;先天性心脏病多以遗传为主,有一定的规律性,目前也针对其有专门的治疗手段;还有风湿性心脏病、高压性心脏病都是由其他疾病引起的并发症[5].因此,在文章最后的分析中,可以通过指标的特征分析判别出该数据集大部分属于什么类型的心血管类疾病.

1.2 专业名词

THAL:一种称为地中海贫血的血液疾病(包括正常、固定缺陷和可逆缺陷三种情况),地中海贫血(Thalassemia)是遗传性的血液疾病,会造成血红蛋白合成障碍,程度从无症状到严重.通常病发后会伴随典型的贫血症状——红血球细胞水平低下,可以作为检测心脏病的一种方式.

血浆类固醇:血浆中胆固醇的含量,胆固醇属类固醇族,是血液脂类成分之一,因此血液中脂类物质的变化对于是否患有心血管疾病有判别意义.

ST:指的是心电图中一个特殊阶段的变化,心电图ST改变一般都表明心脏存在一定的问题.最常见的有ST段抬高和ST段的压低.ST段抬高可见于急性心肌梗死和心肌缺血的患者,而ST段的压低常见于稳定性心绞痛患者病发时.

1.3 研究方法

本文的主要研究方法有两个,数据可视化和Logistic回归模型;所需要的辅助软件有R语言软件和SPSS软件.数据可视化是一种媒介,将繁杂的数据以清晰可查的图像呈现出来;另外,Logistic回归是一种广义线性回归,选择Logistic回归模型主要是基于数据的因变量是0-1型分类变量,且残差和因变量都服从二项分布,选择的自变量和Logistic概率是线性关系[6].

2 数据说明与处理

2.1 数据说明

本数据来源于Kaggle数据集中的医疗健康分类属性中的《心脏病诊断数据集》,该数据集也曾用于“联创黔线”杯大数据应用创新大赛.数据集中包括来自于来自克利夫兰医学中心的270个病人实例数据,含有13个属性记录,无缺失值,表1展示了数据集的具体情况.

表1 数据解释和代号说明

2.2 数据处理

由于本文中的数据类型涉及整型、实数型以及二进制数,在数据可视化和数据回归分析时需要对数据进行标准化处理,必要时可以继续进行归一化处理,但是在数据的描述性分析环节,最好使用原数据,能更好地将数据的特征展示出来.

另外,需要特殊说明的是,本文中的自变量部分不能直接称为“自变量”,因为心脏病的患病原因应该是类似于是否抽烟、是否熬夜、是否遗传、是否作息规律等此类生活因素.而数据中展示的是通过一定的科技手段得到的诊断结果和身体指标,将这些指标称为“自变量”不够严谨.但由于目前找不到患者生活习惯因素的数据,本文中为了叙述及分析模型的方便,以下出现“自变量”都是指除患病情况外的所有变量.

3 描述性统计分析

3.1 描述统计表

我们分析目标即心脏病患病的状况(数据集中1代表患病,0代表不患病),总共有270个无缺失值的数据,其中没有患心脏病人数是150,没有患心脏病的比例是55.6%;患有心脏病的人数是120,患有心脏病的比例是44.4%.在探究变量时,会发现变量之间的关系具有一定的相关关系,各变量与因变量之间的特征在数据可视化部分具体描述.

表2 心脏病数据集描述统计表

3.2 变量间的相关性

目前,对于医学以及社会学研究,通常需要对两个甚至多个变量进行相关性分析,因此对该数据中的所有变量用统计软件进行相关性分析.已有研究表示,如果此数据中两个变量其中一个是定性变量或者两者都是定性变量,则需要用Spearman相关分析法分析,如果两个变量都是连续性的变量,则选择Pearson分析方法更加适合[7].依据此观点,对变量之间相关关系由整体到细节逐步分析.

图1 变量间相关性热云图

首先利用SPSS软件得到Spearman和Pearson相关性分析表(包含双尾显著性检验的数值),依据上述原理筛选整理出合适的相关性数值,并用R语言绘制了可以通过上三角的颜色深浅度、圆圈大小、下三角的具体数值来衡量变量间相关性性质、强度的相关性热云图.因此,根据图1,得到了如下具体结论:

(1) 心脏病和cp(心绞痛类型),thal(地中海贫血),ca(使用荧光染色法测定的主血管数),thalach(最高心率),exang(运动引起的心绞痛),oldpeak(ST段抑制)几个特征之间有较强的相关性,相关系数超过0.4.

(2) 心脏病和age(年龄),sex(性别),slope(运动高峰ST段斜率)几个特征存在一定的相关性.

(3) 心脏病和chol(胆固醇),fbs(空腹血糖),trestbps(静息血压),restecg(静息心电图结果)之间的相关性较弱.

(4) oldpeak(ST段抑制)和slope(运动高峰ST段斜率),thalach(最高心率)与age(年龄)等自变量之间的相关性较高,可能会造成后续进行回归时产生多重共线性,还有一些自变量之间存在较弱的相关性,可以暂时忽略不计.

3.3 各自变量与因变量的关系

3.3.1 心脏病和年龄、性别的关系

首先,按照一般标准定义年龄阶段:18岁以下为儿童,19~45为青年,46~59为中年,大于等于60岁为老年,可以得到如下结论:

(1)性别方面来看,男性的患病率是远大于女性的,患病比例超过了不患病比例,可以推测这或许与不健康的生活习惯有关.

(2)该数据集中并没有检测儿童这个年龄阶段作为病例,按常识来说,儿童的心脏病多是以遗传病的形式出现的,对于本文的研究没有太大的意义.

(3)根据各年龄段患病比例可以看出,以此数据为前提下,年龄越大患心脏病的概率就会越大,因此,除遗传因素影响外,可以称心脏病为中老年病.

3.3.2 心脏病和胸痛类型、最高心率的关系

图2(左)中展示出了心脏病与胸痛类型的关系,显然在患病的群体中具有典型心绞痛的人数是最多的,并且胸痛症状随着症状的体现变轻,患病人数减少.甚至除典型心绞痛外,其余症状表现者的正常人是远高于患病患者的.

图2(右)可以观察到最高心率的变化趋势是随着年龄的增长而不断的降低的,而且可以发现,同一年龄段内,正常人心率普遍比患者的心率更高,患者一般年纪较大.这些结论都是与我们的常识是相符合的,证实了心率变慢可能是患有心脏病的一种表现.

图2 心脏病和胸痛类型、最高心率的关系

3.3.3 心脏病和心绞痛、静息血压的关系

图3(左)是心绞痛症状与心脏病患病的关系,此处可以结合上个部分胸痛类型与心脏病的关系一起分析.该图的结论是具有心绞痛症状的人患有心脏病的可能性更大,与上述具有典型心绞痛的人患心脏病的概率较大的结论是相同的.因此提醒人们当患有心绞痛症状时,及时就医,可以最大效率地检测出是否患有心脏病.

图3(右)是静息血压与患病情况的箱线图,可以看出患病人群的血压是较高于普通人群的,尤其是高血压性心血管疾病,当然正常或低于普通人血压不一定意味着是健康的,还要进行更加全面的检查才得以判断.

图3 心脏病和心绞痛、静息血压的关系

3.4 自变量之间的关系

在最初的变量间的相关性检验中,发现了一些可能具有相关性的变量,下面进行具体的相关性阐释.

3.4.1 年龄、最高心率和静息血压的关系

日常生活中,老年人更容易患高血压、高血糖、高血脂等疾病,一般是随着年龄的增长,血压逐渐升高.但是从绘制出的散点图(为节省篇幅未展示)来观察,不同类群的人们在血压方面都是均匀分布的,随着年龄增长没有明显的分层变化,所以并不能直接从静息血压很好的判断出是否患心脏病.

另外,血压、心率这两个指标都属于心脏的动能,相当于发动机力量和发动机转速,普遍认为这两者之间有一定关系.但现实情况是,这个数据集中,除了能显示出患者的心率更高这个已有结果外,并没有发现血压和心率的相关性,或许有一定相关,但在此数据集的研究中可以忽略不计.

3.4.2 胸痛类型和静息血压、心绞痛和心率的关系

根据这三者两两间的箱线图发现具有典型心脏病的人静息血压普遍高于其他人,这与上述具有典型心绞痛和较高血压特征更容易患病的结论有了对应.而且,运动引起心绞痛的患者的最高心率要低于正常人,这与最高心率较低的人患有心脏病概率大的结论也是相对应的.另外,推测易引起心绞痛患者在运动时易产生胸痛,从而运动强度不高,因此,最高心率就更容易低于正常人.

3.4.3 主血管数和静息血压、年龄和胆固醇的关系

目前,主血管数的检测多是通过超声显像或者彩色血流成像的方式进行的,而此数据集中是用荧光染色法着色的原理进行的,选择这种方式可能是为了更好的将结果进行数据展现,但对于目前医学的技术进程来说现实意义是不大的.通过图4(左)可以发现为显色为0的主血管数和患病有很大的相关性,且有略微按照0、1、2、3的顺序递减的可能.

图4 主血管数和静息血压、年龄和胆固醇蜂窝图和散点图

血浆类固醇含量,就是我们俗称的胆固醇,胆固醇侧面反映了血脂,那么如图4(右)生成了胆固醇、年龄、患病三者之间的关系散点图.在这个数据集中,患病者和非患病者胆固醇含量分布没有明显的分层现象,且箱线图(未展示)显示的结果是两类人群胆固醇含量的上下限是一样的,只是在25%、50%、75%三条线上患病者胆固醇含量比非患病者稍微低一些.因此,结论就是血浆类固醇含量(胆固醇含量)并不能直接反映是否患有心脏病这件事.

3.5 根据结论判断心脏病类型

在此部分,分析数据集中患病者最多的出现的指标状态来判断心脏病类型.例如:静息血压偏高,最高心率偏低,且运动时容易引起心绞痛,通过这3点特征,依据心脏病的诊断学,怀疑是动脉粥样硬化这种心血管类疾病;还有一部分静息血压偏高,最高心率也偏高的患者怀疑是心律失常;年龄较大且静息血压较高的患者怀疑是高血压性心脏病,等等.当然这些疾病类型的判断都是依据病理指征,在目前的现实生活中需要专业医生的判断和指导.

也有一部分研究人员希望通过现代科技的方式进行判断,例如图像检验技术,将检测图像(心电图、超声图等)输入到系统中,系统给出结论,但是为了结果的正确性,依旧需要专业医生的检验.目前,人工智能也在医学方面有更专业的应用,利用人工智能识别人类体征,再结合机器的检测结果综合判断,结果将更加的准确.

4 模型的建立和优化

4.1 模型的初步回归

已知Logistic回归模型有寻找危险因素、预测和判别3个作用,那么本文的主题就是根据已存在数据集建立模型,在以后有相同属性数据条出现时,代入模型就可以判断某人患心脏病或预测心脏病出现情况的概率有多大.

用SPSS软件分析—回归—多元Logistic回归,将所有自变量放入协变量中,进行回归得到参数分析表,此时剔除部分不显著的变量age、slope、restecg、oldpeak和fbs,再进行回归,得到参数分析估值表如表3.此时模型总体的显著性和各变量参数的显著性都达到了最优,得到了回归模型如下:

(1)

LLR=193.054,df=8,p=0.

此模型是直接进行Logistic回归,然后根据模型和参数的显著性剔除部分变量进行的,是最简单直接的方法.由于Logistic回归中因变量为分类变量,其计算方法与普通线性回归中的R2不同,其值一般较小,不能通过此因素解析模型,后续模型的优化中也最好不用此因素进行比较.另外,通过此模型我们可以发现,除了最高心率是负相关之外其余都是正相关,跟我们在数据可视化部分的分析所得结论是可以相对应的.

表3 参数分析估值表

4.2 多重共线性检验

第一部分直接进行了Logistic回归,没有进行任何检验来优化变量,最初在数据可视化部分进行了相关性检验,有部分解释变量具有较高的相关性,因此怀疑这个模型可能具有多重共线性,但是SPSS在Logistic回归中并没有共线性诊断这个选项.

Logistic回归检测多重共线性的方式为[8]:先选择一个和目标变量患病情况有较高相关性的解释变量,例如最高心率thalach,然后将其余所有变量,包括解释变量与它做多元线性回归,然后利用方差扩大因子法检测多重共线性,得到:

R2=0.407,1≤VIF≤10,p=0.

系数表的共线性诊断如表4,发现所有的变量都不具有较强的多重共线性,那么此模型的变量的多重共线性可以忽略不计,并不能通过这种方式剔除自变量,因此到此为止,模型(1)依旧是最优的.

表4 系数的共线性统计

4.3 加入因子变量

SPSS的Logistic回归功能中可以将分类自变量作为“因子”输入,其余连续性变量依旧放入“协变量”输入.称为无序多分类Logistic回归,此作用可以找到风险因素,多用于病例对照的研究当中,但是不限于病例对照类型.只要分析时指定对照,且与指定的对照进行比较,得出的回归结果可以说明想探究的问题即可[9].

比如,此数据集在模型(1)的基础上,可以探究一下性别(sex)、胸痛类型(cp)和运动引起的心绞痛(exang)这三个风险因素.选择分析—回归—多元Logistic回归,选定sex、cp、exang放入因子框中,得到模型和模型的拟合信息如下:

(2)

LLR=186.381,df=10,p=0.

通过和模型(1)的-2倍的对数似然比进行比较,发现模型(2)的-2倍的对数似然比比模型(1)的小一些,所以模型(2)相对优化一点.

另外,以性别(sex)为例,X=0相比于X=1,系数值Exp(B)为5.091,说明性别因素使得男性患病的风险是女性患病风险的5.091倍,P(Sig.)<0.005,说明差异有统计学意义,其他两组系数解释同上.

4.4 标准归一化后回归

通过SPSS软件描述统计中的数据标准化功能,将所有变量进行标准归一化后进行Logistic回归,通过得到的参数分析表中参数的显著性逐步剔除变量.剔除age、fbs、restcg、oldpeak后,剩下9个自变量再次进行Logistic回归,得到模型的拟合信息一.

然后再将sex和exang两个自变量放入“因子”,其余自变量放入“协变量”,依旧进行Logistic回归,得到模型的拟合信息二.最后,对比模型的拟合信息一和二中的R2,发现是相同的,那么两者的优化程度是一样的,选取表达形式较为简单的一种,所以最终得到最优的模型方程和模型的拟合信息如下:

(3)

LLR=187.641,df=9,p=0.

4.5 模型的检验

将数据集中的自变量标准归一化后,分别带入模型方程,得到每条数据即每个病例的患病概率,并判断其患病情况用定性变量表示,称为预测集,并将原数据集中患病指标作为检测集.定义如下计算方式

预测正确率=正确的预测集个数/检测集对应的个数.

也可以再次通过这种方式验证上述3个模型方程的优劣,选取模型方程(1)与(3)进行对比,得到如下的汇总表5.可以明显看出模型(3)的正确率要高于模型(1),且最终模型的预测正确率达到了78.1%,说明该模型有较高的现实意义,在获得一定医学指标时,可以通过这种方式快速判断病例的患病情况.

表5 模型的预测正确率汇总表

5 结论和建议

5.1 结论

患心脏病的情况与性别、胸痛类型、静息血压、血浆类固醇含量(胆固醇)、最高心率、运动引起的心绞痛、主血管数和THAL都有比较强的关系.男性相对于女性更容易患心脏病;另外,虽然数据分析中年龄并没有特别显著,但是依据生活常识,中老年人更容易患病一些.

静息血压较高、最高心率较低以及在运动时容易引起心绞痛的人群更容易患心脏病,并且认为容易在运动时引起心绞痛的人在运动时达不到一定的运动强度,所以导致了最高心率较低的状态.

主血管数显色为0时,患心脏病的概率较高,因为目前多采用更高科技的检测方式,通过荧光染色法使主血管着色的原理并没有特别清楚,只能得到上述结论,原因目前无法详述.

胸痛类型为典型心绞痛的人群更容易患病,并且随着心绞痛的症状减轻,患心脏病的概率减小.这个结论和运动时容易引起心绞痛这个因素有一定对应,最后通过一定步骤和分析方法,得到最优的Logistic回归模型(3).在得到相关因素的数据后,代入模型(3),就可以得知此因素组的患病概率有多大,对于患心脏病情况判别有一定的现实意义.

5.2 建议

首先,提醒现实生活中的人们,当身体出现不舒服,尤其是心悸、呼吸困难、发绀、咳嗽、咯血、胸痛等症状或者心脏增大征、异常心音、心律失常征、脉搏异常等外部表现体征出现时,这些特征都是与本文中研究的因素有所对应的.建议立即就医,通过现代科技手段判别是否患有心脏病以及患有心脏病的类型,针对不同表现实行不同的救治方法.另外,高血压人群要尤其注意,除了判别是否属于心脏病外,高血压本身就是一种非常危险的疾病.

本文对于心脏病的医学研究也具有一定的意义,通过每一个因素所可能对应的现实生活特征、生活因素、遗传等来进行更具体的研究,通过规避一些生活中不好的习惯来减少心脏病的患病率,在遗传方面可以通过研究上一辈的遗传概率来实现目前国家的“优生”政策.

5.3 模型的缺点与不足

第一,利用Python可以用梯度下降法对Logistic回归进行训练,利用梯度下降法可以计算损失函数,可以添加某些忽略不计的误差因素,让模型更加完美.

第二,可以通过KNN临近算法[11]、决策树以及随机三个方法进行模型的建立,然后与本文的Logistic回归进行对比,最终得到最优模型.

第三,由于目前现代科技手段有更加先进的图像呈现和检测技术,比数据分析更直观更准确,所以本文结论应与图像呈现和检测技术相结合,从而得到更加完整的结论报告等.

猜你喜欢
静息患病心绞痛
冠心病心绞痛应用中医辨证治疗的效果观察
辽中区患病草鱼体内嗜水气单胞菌分离、鉴定与致病力测定
中秋
CCTA联合静息心肌灌注对PCI术后的评估价值
不准时睡觉堪比熬夜
老年人声音诱发闪光错觉的大脑静息态低频振幅*
心绞痛
老年冠心病患者警惕卧位性心绞痛
抗心绞痛联合抗焦虑—抑郁药物治疗41例心绞痛伴焦虑抑郁症状的临床观察
完形填空训练