风暴统计案例复现 | logistic回归构建预测模型全流程(2)

Logistic构建临床预测模型案例复现系列主要以一篇基于logistic回归构建预测模型的文章为案例,从构建预测模型——验证模型,包括了随机数据拆分、②基线描述、③筛选预测因子、④绘制列线图、⑤绘制ROC曲线并计算AUC值、⑥HL检验、⑦绘制校准曲线、⑧绘制DCA曲线,基本涵盖了Logistic构建预测模型的全过程,复现过程将会分两篇文章开展,分别是模型构建、模型验证!

本文为Logistic构建预测模型案例复现的第二篇文章——logistic回归预测模型的评价,包括模型区分度检验-ROC曲线模型校准度检验-校准曲线模型拟合评价HL检验、模型的临床获益评价-DCA曲线

案例文献是一篇基于SEER公共数据库的一项回顾性研究,旨在开发和验证列线图以预测脑转移的非小细胞肺癌患者早期死亡。

fdad38e4fcded7950e074a27979ce3f0.jpeg

背景:在非小细胞肺癌(NSCLC)的整个病程中,很多患者会出现预后差、死亡率高的脑转移(BM)。然而,很少有模型能预测有脑转移的NSCLC患者的早期死亡(ED)。我们旨在开发列线图来预测NSCLC脑转移患者ED。

方法:从监测、流行病学和最终结果(SEER)数据库中选取了2010年至2015年间患有BM的NSCLC患者。纳入标准如下:(I)患者经病理诊断为NSCLC;(II)患者患有BM。患者按7:3的比例随机分为两组,分别为训练组和验证组。采用单因素和多因素Logistic回归方法来确定伴有BM的NSCLC患者发生ED的危险因素。建立了两个列线图,并通过校准曲线、ROC曲线和决策曲线分析(DCA)进行了验证。随访数据包括生存月数、死因和生命状态。初次诊断后3个月内的死亡定义为ED,终点为全因ED和癌症特异性ED。

结果:共纳入了4,920名患有BM的NSCLC患者,并随机分为两个队列(7:3),包括训练队列(n=3,444)和验证队列(n=1,476)。全因ED和癌症特异性ED的独立预后因素包括年龄、性别、种族、肿瘤大小、组织学、T分期、N分期、分级、手术、放疗、化疗、骨转移和肝转移。所有这些变量都用于建立列线图。在全因ED和癌症特异性ED的列线图中,训练数据集的ROC曲线下面积分别为0.813(95% CI:0.799-0.837)和0.808(95% CI:0.791-0.830),验证数据集的ROC曲线下面积分别为0.835(95% CI:0.805-0.862)和0.824(95% CI:0.790-0.849)。此外,校准曲线证明预测的ED与实际值一致。DCA临床应用前景良好。

结论:列线图可用来预测患者死亡的具体概率,有助于治疗决策和重点护理,以及医患沟通。‍

原文与实操数据获取方式:"Zstats风暴统计"公众号回复关键词“案例复现”

本文对已构建模型进行评价得思路十分经典清晰,下面我们分步介绍:

1.1 ROC曲线

AUC值均大于0.8,说明模型的区分效果佳!

d042a042c0d5dd8d790625a01b1f6213.png

训练集(全死因结局)

82e1e355e060dc0c9ba1c4292e3274fa.png

验证集(全死因结局)

1.2 校准曲线

可以看到曲线紧贴对角线延伸分布,说明模型的预测值与实际值较为一致!

300cd729879b9c373513a0605125e25a.png

训练集(全死因结局)

de2dabd7ea0bd0d65cf97ed78955cb5b.png

验证集(全死因结局)

1.3 DCA曲线

阈值范围内,其净获益均高于all线和none线,标明模型有实际价值!

82f6c392d7c9ab5cd80b12f7a187d3eb.png

训练集(全死因结局)

c2fe34a70479b56e839c599a0d4206f0.png

验证集(全死因结局)

暴统计平台是由浙江中医药大学郑卫军教授基于R语言开发的统计分析平台,它具有以下优点:

  • 结果输出简洁,直接生成三线表,支持word版下载!

  • 平台是基于R语言进行开发,结果准确性有保障

  • 全部菜单式操作,统计小白也可以轻松上手!

100ac5f6364d77bb6f6a508832b27385.png

原文与实操数据获取方式:"Zstats风暴统计"公众号回复关键词“案例复现”

前面一篇文章已经详细描述了数据的导入与整理——数据拆分——基线特征描述——logistic回归筛选预测因子——绘制列线图

详情可点击下方链接,这里不再过多赘述:

风暴统计案例复现 | logistic回归构建预测模型全流程(1)

2.1 区分度检验——ROC曲线

和列线图一样,在"模型呈现、评价与验证"这里,点击"ROC曲线与AUC面积"。

ec632757d8a3cfa2a030e1f7218b1c41.png

接着就会有ROC曲线了,包括训练集ROC、验证集ROC以及训练集和验证集合并后的图像。

f286a7572df4f85231178cf2107f50e2.png

并且风暴统计还将R语言复杂的参数调整,简化为了菜单式操作!轻轻松松完成诸如:图例显示位置曲线色彩粗细坐标轴间隔与标题等个性化调整。

cf504bd69b0096d2ad368009c8a1ca4a.png

2.2 校准度检验——校准曲线

ROC曲线的旁边就是校准曲线了!有R语言提供的原生态曲线样式,还有风暴统计后台调整过线条粗细与颜色后的优化版

8aa762bdab32fde691f6d0509a536e33.png

优化版校准曲线看着更醒目清晰一些!默认图上会标有HL检验P值!

HL检验结果解读:如果p值大于0.05,则说明通过HL检验,即说明预测值与真实值之间并无非常明显的差异。反之如果p值小于0.05,则说明没有通过HL检验,预测值与真实值之间有着明显的差异,即说明模型拟合度较差。

de03eb4a881e6bea0511b0407507ea24.png

校准曲线同样支持个性化调整哦!包括图像中是否展示HL检验结果,曲线颜色、坐标轴与标签设置!

需要注意的是!这些细节调整都是对优化后的版本进行调整,原生态图形不支持调整。

71f71543fcbac5e72ccc25e7c88797e6.png

2.3 临床获益评价——DCA曲线

同样包括原生态和优化版,并且提供了两种常用R包的绘图结果:rmda包和dcurves包!大家可以跟据偏好,选择自己喜欢的!

def8fb65999c54bc745da9d03360a3fd.png

7b9c028240b4f08dc1945d558a2fb42b.png

当然,曲线的颜色坐标轴间隔与标签也可以自定义,曲线是否平滑处理也给出了选择!

c537e169bc6eac82815916f0f70c4f13.png

2.4 模型混淆矩阵

这是预测模型更新后,才有的新板块,可以根据约登指数计算cutoff点,还可以计算特定截断点的灵敏度(Sensitivity)特异度(Specificity)阳性预测率(PPV)阴性预测率(NPV)

约登指数cutoff:

ee49473c856972153ba00389bfe8e71b.png

自定义cutoff:

25af99fa3e90c0b0dd54418c185ac2ee.png

原文与实操数据获取方式:"Zstats风暴统计"公众号回复关键词“案例复现”

我们关于"seer数据库数据的logistic回归构建预测模型的案例复现"就全部结束啦!之后还会给大家带来更多的案例复现分享内容,敬请期待!

如果您在风暴统计平台的使用过程中有任何的建议或疑问,欢迎加入我们的讨论群!群里郑老师与助教会在群内解答!

0df86b4136edf85ccff66ca73425307d.png

统计机器人交流群

好的,构建逻辑回归模型预测企业违约概率的过程可以分为以下几个步骤: 1. 收集数据。收集包括企业基本信息、财务数据、信用记录、历史业绩等方面的数据。 2. 数据预处理。对收集到的数据进行清洗、缺失值处理、异常值处理、归一化等处理。 3. 特征工程。根据实际情况,选择合适的特征进行处理,比如将分类特征进行独热编码,对连续特征进行离散化等。 4. 划分数据集。将处理好的数据集划分为训练集和测试集。 5. 构建逻辑回归模型。使用 Python 的 Scikit-learn 库中的 LogisticRegression 类来构建逻辑回归模型。 6. 训练模型。使用训练集对模型进行训练。 7. 评估模型。使用测试集对模型进行评估,可以通过计算准确率、召回率、F1 值等指标来评估模型的性能。 8. 应用模型。使用训练好的模型进行违约概率预测。 下面是一个简单的 Python 代码示例,用于构建和训练逻辑回归模型: ```python import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, f1_score # 读取数据集 data = pd.read_csv('data.csv') # 数据预处理 # ... # 特征工程 # ... # 划分数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 构建逻辑回归模型 model = LogisticRegression() # 训练模型 model.fit(X_train, y_train) # 评估模型 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) f1 = f1_score(y_test, y_pred) print('Accuracy:', accuracy) print('F1 score:', f1) # 应用模型进行违约概率预测 prob = model.predict_proba(X_new)[:, 1] ``` 其中,`X` 是特征矩阵,`y` 是标签向量,`X_new` 是新数据的特征矩阵,`prob` 是预测的违约概率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值