基于python实现心血管疾病风险预测分析

一、项目简介

项目背景

利用心血管疾病风险预测数据集进行深入分析,探究不同因素与心血管疾病风险之间的关联。

数据源

Kaggle上的心血管疾病风险预测数据集。(Cardiovascular Diseases Risk Prediction Dataset | Kaggle

二、数据预处理

导入数据集

数据清洗和处理

三、数据分析

单变量分析

对身高、体重、BMI、酒精消费等数值特征进行分析。

结果解释

  • 身高(cm):患者的身高似乎遵循正态分布,大多数患者的身高在 160 至 180 厘米左右。

  • 体重(公斤):患者的体重似乎也呈正态分布,大多数患者体重大约在 60 至 100 公斤之间。

  • BMI:身体质量指数的分布有些右偏。 大量患者的BMI在20至30之间,属于正常至超重范围。 然而,也有大量患者的 BMI 处于肥胖范围 (>30)。

  • 喝酒频率:大多数患者饮酒量较低,但也有少数患者饮酒量较高。

  • 食用水果:大多数患者经常食用水果,但也有少数患者食用频率较低。

  • 食用绿色蔬菜:大多数患者适度食用绿色蔬菜,但也有少数患者食用频率较低。

  • 食用炸薯条:基本上所有患者都很少吃炸薯条。

分类特征分析

分析一般健康状况、体检情况、锻炼习惯、心脏病历史等分类特征。

结果解释

  • 总体健康状况:大多数患者将其总体健康状况描述为"良好","非常好"是第二常见的反应。 很少有患者将自己的健康状况评为"一般"或"差"。

  • 体检:大多数患者在过去一年内接受过体检。 很少有患者在 2 年前或 5 年前进行最后一次体检。

  • 锻炼:与不锻炼的患者相比,更多的患者表示他们锻炼过。

  • 心脏病:绝大多数患者没有心脏病。 只有一小部分患者患有心脏病。

  • 皮肤癌:绝大多数患者没有皮肤癌。

  • 其他癌症:与皮肤癌类似,大多数患者没有其他形式的癌症。

  • 抑郁症:大多数患者没有抑郁症。 然而,确实有不少患者报告患有抑郁症。

  • 糖尿病:与上述疾病相关特征类似,大多数患者并没有糖尿病。 然而,一小部分人确实患有糖尿病。

  • 关节炎:大多数患者没有关节炎,但也有相当一部分患者患有关节炎。

  • 性别:数据集中女性患者略多于男性患者。

  • 年龄区间:数据集包含各种年龄类别的患者。 65-69岁年龄段的患者最多,其次是70-74岁和60-64岁年龄段。

  • 吸烟史:大多数患者没有吸烟史。

双变量分析

探究不同变量与疾病之间的关系。

结果解释

  • 心脏病:

  • 心脏病在一般健康状况评价为"良好"或"一般"的患者中更为普遍。

  • 在运动的患者中稍微常见一些。

  • 男性比女性更容易患心脏病。

  • 心脏病的患病率随着年龄的增长而增加,在80岁以上年龄组中最为常见。

  • 心脏病在有吸烟史的患者中也更常见。

  • 皮肤癌:

  • 皮肤癌在一般健康状况评价为"良好"或"非常好"的患者中更为常见。

  • 在运动的患者中稍微常见一些。

  • 不同性别的患病率没有太大差异。

  • 皮肤癌的患病率随着年龄的增长而增加,在80岁以上的年龄组中最常见。

  • 根据吸烟史,患病率没有太大差异。

  • 其他癌症:

  • 其他癌症在总体健康状况评价为"良好"或"非常好"的患者中更为常见。

  • 在运动的患者中,这种情况稍微常见一些。

  • 不同性别的患病率没有太大差异。

  • 其他癌症的患病率随着年龄的增长而增加,其中在70-74岁年龄段最常见。

  • 根据吸烟史,患病率没有太大差异。

  • 糖尿病:

  • 在一般健康状况评价为"一般"或"良好"的患者中,糖尿病更为普遍。

  • 在运动的患者中更为常见。

  • 不同性别的患病率没有太大差异。

  • 糖尿病的患病率随着年龄的增长而增加,在70-74岁年龄段最常见。

  • 根据吸烟史,患病率没有太大差异。

  • 关节炎:

  • 关节炎在一般健康状况评价为"良好"或"非常好"的患者中更为普遍。

  • 在运动的患者中稍微常见一些。

  • 女性比男性更容易患关节炎。

  • 关节炎的患病率随着年龄的增长而增加,在70-74岁年龄段最常见。

  • 根据吸烟史,患病率没有太大差异。

多变量分析

综合考虑多个变量,分析它们与疾病风险之间的相互作用。

结果解释

  • 按年龄类别划分的总体健康状况分布显示,随着年龄的增长,将健康状况评价为"良好"或"非常好"的个体比例下降,而将健康状况评价为"一般"或"差"的比例增加。

  • 一般健康状况与疾病状况(心脏病、皮肤癌、其他癌症、糖尿病、关节炎)之间的关系显示出一些有趣的模式:

  • 对于心脏病、其他癌症、糖尿病、皮肤癌和关节炎,健康状况被评为"差"或"一般"的人群的患病率较高。 这表明这些状况可能不会影响个人对其整体健康状况的看法。

结果解释

  • 按运动划分的BMI类别分布显示,经常运动的人的"正常"BMI 比例较高,而不经常运动的人的"超重"和"肥胖"BMI 比例较高。 这表明运动与更健康的体重指数相关。

  • BMI类别与疾病状况(心脏病、皮肤癌、其他癌症、糖尿病、关节炎)之间的关系显示出以下模式:

  • 对于糖尿病和关节炎,BMI"超重"和"肥胖"的人群患病率较高。 这表明这些情况可能与较高的BMI水平有关。

  • 对于心脏病、皮肤癌和其他癌症,不同BMI类别的患病率似乎分布更均匀。 这可能表明这些类型的癌症可能不像其他疾病那样与体重指数密切相关。

四、数据可视化

统计图表

使用Seaborn和Matplotlib生成的各类图表。

相关性热力图

展示不同特征之间的相关性。

结果解释

  • 相关性热力图提供数据集中不同特征之间相关性的直观表示。 每个方块显示每个轴上变量之间的相关性。 相关性值的范围为-1到1。值接近1表示强正相关,值接近-1表示强负相关,值在0附近表示不相关。

  • 以下是热图中的一些观察结果:

  • BMI和体重(kg)与糖尿病呈正相关。 这表明体重指数和体重较高或不锻炼的人更有可能患糖尿病。

  • 一般健康状况与糖尿病、心脏病、关节炎和抑郁症呈负相关。 这表明,总体健康状况较差的人更有可能患有这些疾病。

  • 年龄类别与心脏病、皮肤癌、其他癌症、糖尿病和关节炎呈正相关。 这表明这些疾病的风险随着年龄的增长而增加。

  • 男性与心脏病和皮肤癌呈正相关,与关节炎呈负相关。 这表明男性更容易患心脏病或皮肤癌,但患关节炎的可能性较小。

相关推荐
云空3 分钟前
《Python 与 SQLite:强大的数据库组合》
数据库·python·sqlite
童先生15 分钟前
Go 项目中实现类似 Java Shiro 的权限控制中间件?
开发语言·go
lulu_gh_yu16 分钟前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
Re.不晚40 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
老秦包你会42 分钟前
Qt第三课 ----------容器类控件
开发语言·qt
凤枭香1 小时前
Python OpenCV 傅里叶变换
开发语言·图像处理·python·opencv
ULTRA??1 小时前
C加加中的结构化绑定(解包,折叠展开)
开发语言·c++
测试杂货铺1 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
艾派森1 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
远望清一色1 小时前
基于MATLAB的实现垃圾分类Matlab源码
开发语言·matlab