首页 > 其他分享 >R语言决策树、随机森林、逻辑回归临床决策分析NIPPV疗效和交叉验证|附代码数据

R语言决策树、随机森林、逻辑回归临床决策分析NIPPV疗效和交叉验证|附代码数据

时间:2023-09-16 20:47:18浏览次数:39  
标签:NIPPV 结局 ## 决策 效用 datanew 决策树 决策分析

全文链接:http://tecdat.cn/?p=32295

原文出处:拓端数据部落公众号

临床决策(clinical decision making)是医务人员在临床实践过程中,根据国内外医学科研的最新进展,不断提出新方案,与传统方案进行比较后,取其最优者付诸实施,从而提高疾病诊治水平的过程。

在临床医疗实践中,许多事件的发生是随机的,对个体患者来说治疗措施的疗效、远期预后常常是不确定的和不可准确预测的,究竟何种选择最好很难简单做出决定。

本文帮助客户进行决策分析NIPPV疗效数据,在充分评价不同方案的风险及利益之后推荐一个最佳的方案,最大限度地保障患者权益,减少临床实践及卫生决策失误。

决策树分析步骤

决策树分析法是通过决策树图形展示临床重要事件的可能发展过程及结局,比较各种备选方案的预期结果从而进行择优决策的方法。决策树分析法通常有6个步骤。

明确决策问题,确定备选方案

对欲解决的问题有清楚的界定,应列出所有可能的备选方案。在决策树上决策的选择应用决策结来代表,通常用方框表示,每个备选方案用从方框引出的臂表示,表示最终决策结果的决策结总是放在决策树的最左端。

用树形图展示决策事件决策

树的画法是从左至右,可能发生的最终结局总是放在决策树最右端,用小三角形表示,称为结局结。每一种结局都是一系列机会事件按时间顺序自然发展的结果,在决策树上这种事件,用圆圈符号表示,称为机会结。每一个机会事件的直接结局用与圆圈联结的臂表示,不同机会结从左至右的顺序是事件发生的时相关系的反映。一个机会结可以有多个直接结局,从每个机会结引出的结局必须是独立、互不包容的状态。

标明各种事件可能出现的概率

每一种事件出现的可能性用概率表示,一般应从质量可靠的文献中查找并结合专家的临床经验及本单位情况进行推测。从每一个事件发生的各种后续事件的可能性服从概率论的加法定律,即每一个机会结发出的直接结局的各臂概率之和必须为1.0。

对最终结局赋值

可用效用值为最终结局赋值,效用值是对患者健康状态偏好程度的测量,通常应用0~1的数字表示,最好的健康状态为1,死亡为0。有时可以用寿命年、质量调整寿命年表示。

计算每一种备选方案的期望值

计算备选方案期望值的方法是从“树尖”开始向“树根”的方向(从右向左)进行计算,效用值与其发生概率的乘积即是期望效用值,每个机会结的期望效用值为该机会结所有可能事件的期望效用值之总和。在决策树中如果有次级决策结时,与机会结期望效用值的计算方法不同,只能选择可提供最大期望效用值的决策臂,而忽略其他臂。最后,选择期望值最高的备选方案为决策方案。

对结论进行敏感性分析

由于临床实践中的事件发生概率值及健康状态的效用值等都可能在一定范围内变动,需要进行敏感性分析。敏感性分析要回答的问题是:当概率及结局效用值等在一个合理的范围内变动时,决策分析的结论方向会改变吗?敏感性分析的目的是测试决策分析结论的稳定性。

NIPPV疗效数据

image.png

剔除缺失数据

   
datanew=**na.omit**(datanew)

建立决策树:疗效

   
datanew.train1=datanew.train[train2,]  
datanew.train2=datanew.train[-train2,]

剪枝

   
CARTmodel1 = **rpart**( (疗效) ~.

image.png

   
**printcp**(CARTmodel1)

image.png

不剪枝

image.png

输出决策树cp值

image.png

根据cp值对决策树进行剪枝

   
able[**which.min**(CARTmodel$c
**prune**(CARTmodel, cp= C

image.png image.png

对数据进行预测

image.png

得到训练集混淆矩阵准确度和MSE

   
#########################################准确度  
**sum**(**diag**(tab))/**sum**(tab)

## [1] 0.7755102

###############################################MSE##############  
  
MSE=function(y,pred)**sqrt**(**mean**(**as.numeric**(y)-**as.numeric**(pred))^2)  
  
**MSE**(tree.pred,datanew.test$疗效)

## [1] 0.06122449

用predict的算下错率

image.png

预测分类号

image.png

输出结果到excel

   

**brules.table**(CARTmodel2)[,**c**("Subrule","Variable","Value")]

image.png

变量重要程度

image.png

随机森林

image.png

图片1.png

变量重要程度

   
**importance**(rf)

image.png

   
**plot**(d,center=TRUE,leaflab=

image.png

混淆矩阵

 

   

###########################################准确率  
**sum**(**diag**(tab))/**sum**(tab)

## [1] 0.8163265

*# [1] 0.7755102*  
  
###############################################MSE##############  
**MSE**(**predict**(rf,datanew.test),datanew.test$疗效)

## [1] 0.02040816

预测分类号

image.png

image.png

逻辑回归模型

   
M2 <- **glm**(formula = 疗效 ~ .,fami

迭代回归之前的回归模型参数

image.png

迭代回归后的模型参数

image.png

逻辑回归预测

image.png

   
#########################################准确度  
**sum**(**diag**(tab))/**sum**(tab)

## [1] 0.7755102

##############################################预测分类号  
pred

##   2   3   9  13  14  15  17  22  23  26  29  30  32  35  38  39  42  44  
##   1   1   1   1   1   1   1   1   1   2   1   1   2   2   1   1   1   2  
##  52  53  56  57  60  61  63  64  66  68  69  79  83  87  88  92  94  99  
##   1   2   1   1   1   2   1   1   2   1   1   2   1   2   2   1   2   1  
## 102 105 106 108 109 112 113 118 123 134 139 140 143  
##   2   2   2   2   2   2   1   1   1   2   2   2   1

交叉验证

决策树交叉验证

   
cv.model=**cv.tree**(cpus.ltr, , prune.tree,K =10)  
best.size <- cv.model$size[**which**(cv.model$dev==**min**(cv.model$dev))] *# wh*

image.png

十折交叉验证

   
k=10  
for(kk in 1:k){  
  index=**sample**(1:**dim**(data)[1],**floor**(**dim**(data)[1]*(1/k)),replace=F) *#筛选样本*  
  test=**as.data.frame**(data[index,]) *#训练集*
  
  
  *#正确率*  
precisek/k

## [1] 0.7285714

随机森林交叉验证

   
**rfcv**(**na.omit**(datanew.train), **na.omit**(datanew.train)$疗效, cv.fold=10)

image.png

十折交叉验证

   
*#正确率*  
precisek/k

## [1] 0.8424495

逻辑回归交叉验证

   
(cv.err <- **cv**

image.png

   
summary(cv.err)

image.png

十折交叉验证

   
*#正确率*  
precisek/k

## [1] 0.6416667

QQ截图20220110153203.png

最受欢迎的见解

1.R语言分布式滞后非线性模型(DLNM)空气污染研究温度对死亡率影响建模

2.R语言分布滞后线性和非线性模型(DLNM)分析空气污染(臭氧)、温度对死亡率时间序列数据

3.R语言群组变量选择、组惩罚GROUP LASSO套索模型预测分析新生儿出生体重风险因素数据和交叉验证、可视化

4.R语言逻辑回归、随机森林、SVM支持向量机预测FRAMINGHAM心脏病风险和模型诊断可视化

5.R语言非线性混合效应 NLME模型(固定效应&随机效应)对抗哮喘药物茶碱动力学研究

6.R语言使用限制平均生存时间RMST比较两条生存曲线分析肝硬化患者

7.分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集

8.PYTHON深度学习实现自编码器AUTOENCODER神经网络异常检测心电图ECG时间序列

9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

标签:NIPPV,结局,##,决策,效用,datanew,决策树,决策分析
From: https://www.cnblogs.com/tecdat/p/17707274.html

相关文章

  • 基于机器学习的情绪识别算法matlab仿真,对比SVM,LDA以及决策树
    1.算法理论概述      情绪识别是一种重要的情感分析任务,旨在从文本、语音或图像等数据中识别出人的情绪状态,如高兴、悲伤、愤怒等。本文介绍一种基于机器学习的情绪识别算法,使用三种常见的分类算法:支持向量机(SVM)、线性判别分析(LDA)和决策树,通过对比这三种算法在情绪识别任......
  • 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、
    全文链接:http://tecdat.cn/?p=27384最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出。在本文中,数据包含有关葡萄牙“VinhoVerde”葡萄酒的信息介绍该数据集(查看文末了解数据获取方式)有1599个观测值和12个变量,分别是固定酸度、挥发性酸度、柠檬酸、残糖、......
  • 数据分享|R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病|附代码
    全文链接:http://tecdat.cn/?p=23061最近我们被客户要求撰写关于预测心脏病的研究报告,包括一些图形和统计输出。这个数据集可以追溯到1988年,由四个数据库组成。克利夫兰、匈牙利、瑞士和长滩。"目标"字段是指病人是否有心脏病。它的数值为整数,0=无病,1=有病数据集信息:目标:主......
  • 机器学习算法原理实现——cart决策树
      cart决策树示例: 本文目标,仿照sklearn写一个cart树,但是仅仅使用max_depth作为剪枝依据。   我们本次实现cart分类,因此用到gini指数: 为了帮助理解:  好了,理解了基尼指数。我们看下cart树的构建步骤:注意还有几个细节: cart树每个treenode存储......
  • 机器学习算法原理实现——决策树里根据信息增益选择特征
    先说熵的定义:  再看信息增益信息增益是一种用于特征选择的指标,用于衡量特征对于数据集分类的贡献程度。它基于信息熵的概念,通过比较特征划分前后的信息熵差异来评估特征的重要性。信息熵是衡量数据集纯度的指标,表示数据集中的不确定性或混乱程度。信息熵越高,数据集的不确......
  • R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验
    全文链接:https://tecdat.cn/?p=33609原文出处:拓端数据部落公众号背景Reaven和Miller(1979)研究了145名非肥胖成年人的葡萄糖耐量和胰岛素血液化学指标之间的关系。他们使用斯坦福线性加速器中心的PRIM9系统将数据可视化为3D,并发现了一个奇特的图案,看起来像是一个有两个翼的大斑点......
  • SAS数据挖掘EM贷款违约预测分析:逐步Logistic逻辑回归、决策树、随机森林|附代码数据
    全文链接:http://tecdat.cn/?p=31745原文出处:拓端数据部落公众号最近我们被客户要求撰写关于贷款违约预测的研究报告,包括一些图形和统计输出。近几年来,各家商业银行陆续推出多种贷款业务,如何识别贷款违约因素已经成为各家商业银行健康有序发展贷款业务的关键。在贷款违约预测的......
  • 监督学习算法中梯度提升决策树(Gradient Boosting Decision Trees)
    梯度提升决策树(GradientBoostingDecisionTrees,简称GBDT)是一种监督学习算法,它是以决策树为基础分类器的集成学习方法。GBDT通过迭代地训练多个弱分类器(决策树),每个弱分类器都在前一个弱分类器的残差上进行训练,从而逐步减小残差,最终将多个弱分类器组合成一个强分类器。具体而言,GB......
  • 监督学习算法中决策树(Decision Tree)
    决策树(DecisionTree)是一种常见的监督学习算法,被广泛应用于分类和回归问题中。它通过构建一棵树状结构来对输入数据进行分类或预测。决策树的构建过程基于特征的条件划分,每个内部节点代表一个特征,每个叶子节点代表一个类别或一个数值。决策树的根节点表示整个数据集,通过不断地对数......
  • 用案例带你认识决策树,解锁洞察力
    本文分享自华为云社区《【机器学习|决策树】利用数据的潜力:用决策树解锁洞察力》,作者:计算机魔术师。决策树1.1分类决策树是一种基于树形结构的分类模型,它通过对数据属性的逐步划分,将数据集分成多个小的决策单元。每个小的决策单元都对应着一个叶节点,在该节点上进行分类决......