1.项目背景
心力衰竭是一种严重的公共卫生问题,影响着全球数百万人的生活质量和寿命,心力衰竭的病因复杂多样,既有个体生理因素的影响,也受到环境和社会因素的制约,个体的生活方式、饮食结构和医疗状况在很大程度上决定了其心力衰竭的风险。在现代社会,随着生活水平的提高和医疗技术的进步,人们的寿命显著延长,但心血管疾病的发病率也在逐年增加,高盐、高脂饮食、不规律的作息和缺乏运动等不健康的生活方式是心力衰竭的主要诱因。此外,心理因素如压力、焦虑和抑郁等也会加重心力衰竭的风险。随着人口老龄化趋势的加剧,心力衰竭问题变得尤为突出。
本项目通过可视化分析对心力衰竭患者的数据进行初步探索,再通过绘制Kaplan-Meier生存曲线和建立Cox比例风险回归模型进行生存分析,探讨导致患者死亡的主要因素。同时,通过斯皮尔曼相关性分析、t检验和卡方检验,从统计角度进一步验证这些因素的显著性。最后,建立随机森林模型,预测患者死亡的概率,并分析模型的重要特征,以此帮助医疗机构和患者制定更有效的预防和治疗策略。
2.数据说明
列名(英文) | 列名(中文) | 说明 |
---|---|---|
Age | 年龄 | 记录患者的年龄,心脏病的风险随年龄增长而增加。 |
Anaemia | 贫血 | 贫血可能影响心脏功能,记录患者是否患有贫血。 |
High blood pressure | 高血压 | 高血压是心脏病的主要风险因素之一。 |
Creatinine phosphokinase (CPK) | 肌酸激酶 | 血液中的CPK水平可以反映心肌损伤。 |
Diabetes | 糖尿病 | 糖尿病与心脏病风险增加有关。 |
Ejection fraction | 射血分数 | 心脏每次收缩时泵出的血液百分比,是心脏功能的重要指标。 |
Sex | 性别 | 性别可能影响心脏病的风险和表现形式。 |
Platelets | 血小板 | 血小板水平可能与血液凝固和心脏病风险相关。 |
Serum creatinine | 血清肌酐 | 血液中的肌酐水平可以反映肾脏功能,与心脏病风险有关。 |
Serum sodium | 血清钠 | 钠水平的异常可能与心脏疾病相关。 |
Smoking | 吸烟 | 吸烟是心脏病的一个重要可预防风险因素。 |
Time | 时间 | 记录患者的随访期,用于观察长期健康变化。 |
Death event | 死亡事件 | 记录患者在随访期间是否发生了死亡事件,作为研究的主要结果指标。 |
3.Python库导入及数据读取
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from lifelines import KaplanMeierFitter,CoxPHFitter
import scipy.stats as stats
from sklearn.model_selection import train_test_split
from imblearn.over_sampling import RandomOverSampler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report,confusion_matrix,roc_curve, auc
import warnings
warnings.filterwarnings('ignore')
data = pd.read_csv(r'D:\Desktop\商业数据分析案例\心衰患者特征数据集\heart_failure_clinical_records_dataset.csv')
4.数据预览
查看数据维度
(299, 13)
查看数据信息
查看各列缺失值
查看重复值
0
查看分类特征的唯一值
绘制箱线图,查看是否存在异常值
数据集包含299条记录和13个特征列,不存在缺失值与重复值,分类特征不存在异常值,箱线图中年龄分布较正常,无明显异常值;血液中肌酸激酶水平: 存在明显的异常高值,可能需要进一步确认是否为测量误差或特殊病例;心脏每次收缩时泵出的血液百分比: 分布较集中,无明显异常值;血液中的血小板数量: 存在一些较低或较高的异常值;血液中的肌酐水平: 有较高的异常值,可能需要医学解释;血液中的钠水平: 有少量低值和高值,但这些可能是临床上正常的变异范围;随访期: 分布较正常,无明显异常值。
从统计图表来看,存在潜在的异常值。由于医学数据的复杂性,这里不采取剔除或进一步分析这些数据点。
5.描述性分析
数值特征统计信息:
-
年龄 (age)
- 平均值:60.84
- 标准差:11.89
- 最小值:40
- 最大值:95
-
肌酸激酶 (creatinine_phosphokinase)
- 平均值:581.84
- 标准差:970.29
- 最小值:23
- 最大值:7861
-
射血分数 (ejection_fraction)
- 平均值:38.08
- 标准差:11.83
- 最小值:14
- 最大值:80
-
血小板 (platelets)
- 平均值:263358.03
- 标准差:97804.24
- 最小值:25100
- 最大值:850000
-
血清肌酐 (serum_creatinine)
- 平均值:1.39
- 标准差:1.03
- 最小值:0.5
- 最大值:9.4
-
血清钠 (serum_so