首页 > 其他分享 >R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为

R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为

时间:2024-03-22 23:44:56浏览次数:24  
标签:偏差 变量 模型 ROC conc 可视化 logistic 数据 回归

全文链接:https://tecdat.cn/?p=35426

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

本文利用R语言,通过逐步逻辑回归模型帮助客户分析两个实际案例:麻醉剂用量对手术病人移动的影响以及汽车购买行为预测。通过构建模型并解释结果,我们探究了各自变量对因变量的影响程度。同时,借助ROC曲线可视化分析,评估了模型的预测性能。本文旨在为相关领域的研究提供方法学参考和实际应用指导。

R语言分析麻醉剂用量(conc)对手术病人是否移动(nomove)的影响

在医学实践中,麻醉剂用量的精确控制对于手术过程的顺利进行和病人的术后恢复至关重要。随着医疗技术的不断发展,数据分析和统计学方法在医学研究中的应用日益广泛。本文旨在通过逻辑回归模型,探究麻醉剂用量(conc)对手术病人是否移动(nomove)的影响。逻辑回归是一种广泛应用于二元响应变量分析的统计方法,它可以帮助我们理解自变量与因变量之间的概率关系。本文使用的数据集包含了一组医学数据,其中变量conc表示麻醉剂的用量,而nomove作为因变量,用于表示手术病人是否有所移动。

首先载入数据集并读取部分文件,为了观察两个变量之间关系,我们可以利cdplot函数来绘制条件密度图

   
head(anesthetic)

image.png

   
chart.Correlation(anesthetic,  
                  method="spearman",  
                  histogram=TRUE,  
                  pch=16)
                  

image.png

   
cdplot(factor(nomove)~conc,data=anesthetic,main='条件密度图',ylab='病人移动',xlab='麻醉剂量')

image.png

从图中可见,随着麻醉剂量加大,手术病人倾向于静止。下面利用logistic回归进行建模,得到intercept和conc的系数为-6.47和5.57,由此可见麻醉剂量超过1.16(6.47/5.57)时,病人静止概率超过50%。

image.png

偏差残差:这是逻辑回归模型拟合后每个观测值与模型预测值之间的差异。从最小值-1.76666到最大值2.06900,我们可以看到数据点的分布。通常,我们希望这些残差接近0,并且分布均匀。

系数

  • 截距 (Intercept) : -6.469。这是当模型中的其他变量都为0时,预测值的起点。这里的截距为负,可能意味着在没有其他因素影响时,某个特定的结果(例如,响应变量为1的概率)是较低的。
  • conc: 5.567。这是anes1数据集中conc变量的系数。它表示当conc每增加一个单位时,响应变量(通常是二元结果,如1或0)的对数几率平均增加5.567个单位。这通常意味着conc与响应变量之间存在正相关关系。

显著性代码:输出还提供了系数的显著性水平。例如,'***' 表示该系数的p值小于0.001,是非常显著的。这意味着我们可以非常确信conc与响应变量之间的关系不仅仅是偶然的。

分散参数:对于二项分布家族,分散参数通常被设为1,这里也是如此。

偏差统计

  • Null偏差:这是仅包含截距的模型的偏差,用于比较完整模型的效果。在这里,Null偏差为82.911,表示在没有其他预测变量的情况下,模型与数据的拟合程度。
  • 残差偏差:这是包含所有预测变量的完整模型的偏差。残差偏差为55.508,比Null偏差小,说明添加conc变量后,模型对数据的拟合度有所提高。

AIC (赤池信息准则) :这是一个衡量模型拟合度的指标,同时考虑了模型的复杂性和拟合度。较低的AIC值通常表示模型更好。这里的AIC为59.508。

Fisher评分迭代次数:在逻辑回归模型拟合过程中,算法使用了5次迭代来收敛到最终的系数估计。

综上所述,anes1数据集中的conc变量与响应变量之间存在显著的正相关关系,而逻辑回归模型在拟合数据方面表现良好。这些结果提供了关于conc如何影响响应变量的有用信息。

对模型做出预测结果

根据不同的临界值threshold来计算TPR和FPR,之后绘制成图

   
for (i in 1:n){  
   
  threshold=data$prob[i]  
   
  tp=sum(data$prob>threshld&data$obs==1)  
   
  fp=sum(data$prob>thresold&data$obs==0)  
   
  tn=sum(data$prob)

image.png

image.png

上面的方法是使用原始的0-1数据进行建模,即每一行数据均表示一个个体,另一种是使用汇总数据进行建模,先将原始数据按下面步骤进行汇总

  js
gate(aneshetic[,c('move','nostheic$conc),FUN=sum)

对于汇总数据,有两种方法可以得到同样的结果,一种是将两种结果的向量合并做为因变量,如anes2模型。另一种是将比率做为因变量,总量做为权重进行建模,如anes3模型。这两种建模结果是一样的。

image.png

根据logistic模型,我们可以使用predict函数来预测结果,下面根据上述模型来绘图:

下载.png

R语言逻辑回归模型分析汽车购买行为

数据描述

用R语言做logistic regression,建模及分析报告,得出结论,数据有一些小问题,  现已改正重发:改成以“是否有汽车购买意愿(1买0不买)”为因变量,以其他的一些  项目为自变量,来建模分析,目的是研究哪些变量对用户的汽车购买行为的影响较为  显著。

问题描述

  我们尝试并预测个人是否可以根据数据中可用的人口统计学变量使用逻辑回归预测是否有汽车购买意愿(1买0不买)。 在这个过程中,我们将:
1.导入数据
2.检查类别偏差
3.创建训练和测试样本
4.建立logit模型并预测测试数据
5.模型诊断

数据描述分析

查看部分数据

image.png

对数据进行描述统计分析:

 

image.png

从上面的结果中我们可以看到每个变量的最大最小值中位数和分位数等等。

image.png

检查类偏差

 

理想情况下,Y变量中事件和非事件的比例大致相同。 所以,我们首先检查因变量是否有汽车购买意愿中的类的比例。

 

image.png

显然,不同购买意愿.人群比例 有偏差 。 所以我们必须以大致相等的比例对观测值进行抽样,以获得更好的模型。

建模分析

创建训练和试验样本

解决类别偏差问题的一个方法是以相等的比例绘制训练数据(开发样本)的0和1。 在这样做的时候,我们将把其余的inputData不包含在testData 中。

构建Logit模型和预测

全变量模型

 

image.png

从全变量模型的结果来看,可以发现得到的模型变量并不显著,因此需要重新建模

筛选出显著的变量:

逐步回归筛选后模型

  image.png

从上面的回归结果中,我们可以看到公共汽.电.车车辆数.辆.,公交客运总量.万人次. ,私人汽车保有量.辆.,地铁长度 ,日最高温度.F.的最大值 ,摩托车数量  对是否有汽车购买意愿有重要的影响。从中同时可以看到公交客运总量.万人次. ,私人汽车保有量.辆.,地铁长度 , 日最高温度.F.的最大值和是否有汽车购买意愿存在正相关的关系。

确定模型的最优预测概率截止值

默认的截止预测概率分数为0.5或训练数据中1和0的比值。 但有时,调整概率截止值可以提高开发和验证样本的准确性。InformationValue :: optimalCutoff功能提供了找到最佳截止值以提高1,0,1和0的预测的方法,并减少错误分类错误。 可以计算最小化上述模型的错误分类错误的最优分数。

 

   
misClassError(testData$是否有汽车购买意愿.1买0不买., predicted, threshold = optCutOff)

image.png

ROC

ROC曲线指受试者工作特征曲线 / 接收器操作特性曲线(receiver operating characteristic curve), 是反映敏感性和特异性连续变量的综合指标,是用构图法揭示敏感性和特异性的相互关系,它通过将连续变量设定出多个不同的临界值,从而计算出一系列敏感性和特异性,再以敏感性为纵坐标、(1-特异性)为横坐标绘制成曲线,曲线下面积越大,诊断准确性越高。在ROC曲线上,最靠近坐标图左上方的点为敏感性和特异性均较高的临界值。

image.png

上述型号的ROC曲线面积为61%,相当不错。

 

一致性

简单来说,在1-0  的所有组合中,一致性是预测对的百分比 ,一致性越高,模型的质量越好。

 

image.png

 上述的61%的一致性确实是一个很好的模型。

特异性和敏感性

敏感度(或真正正率)是模型正确预测的1(实际)的百分比,而特异性是0(实际)正确预测的百分比。 特异性也可以计算为1-假阳性率。

 

   
 specificity(testData$是否有汽车购买意愿.1买0不买., predicted, threshold = optCutOff)

image.png

 

 以上数字是在不用于训练模型的验证样本上计算的。 所以测试数据的真实检测率为99%是好的。


Bias-busters-Lifting-your-head-1536x1536.jpg

最受欢迎的见解

1.R语言多元Logistic逻辑回归 应用案例

2.面板平滑转移回归(PSTR)分析案例实现

3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R语言泊松Poisson回归模型分析案例

5.R语言回归中的Hosmer-Lemeshow拟合优度检验

6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

7.在R语言中实现Logistic逻辑回归

8.python用线性回归预测股票价格

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

标签:偏差,变量,模型,ROC,conc,可视化,logistic,数据,回归
From: https://www.cnblogs.com/tecdat/p/18090610

相关文章

  • WEB组态可视化软件
    体验地址:http://www.byzt.net:60/sm/1.什么是组态?组态的概念来自于20世纪70年代中期出现的第一代集散控制系统(DistributedControlSystem),可理解为“配置”、“设置”等,是指通过人机开发界面,用类似“搭积木”的简单方式来搭建软件功能,而不需要编写计算机程序。我们也可称之......
  • CF1927F Microcycle
    环的权值为边权最小值,可以想到从大到小遍历权值,如果一条边加入后出现了环说明这条边的边权就是整个环的权值。类似Kruskal,我们把边权从大到小排序,然后用并查集维护连通情况,算出最小的权值。然后跑dfs找环输出方案。时间复杂度\(\mathcal{O}(m\log{m}+n)\)。#include<bits......
  • Amazon Bedrock 实践 | 动手玩转 Claude 3
    生成式AI和大模型在2024年已经进入落地实践阶段。因此,围绕开发者在生成式应用程序开发中的主要痛点和需求,我们组织了这个“AmazonBedrock实践”的系列,希望可以帮助开发者高效地上手生成式AI和大模型的应用开发,本篇为第一篇。亚马逊云科技开发者社区为开发者们提供全球......
  • 【GIT】最好用的git可视化教程网站推荐
    最好用可视化学习git网站:https://learngitbranching.js.org/?demo=&locale=zh_CN玩遍所有关卡,花半天时间便能掌握git......
  • 吴恩达2022机器学习专项课程(一) 3.5 可视化成本函数
    问题预览为什么要可视化成本函数?可视化之后的成本函数是什么样子?如何在三维空间里通过w和b找到一个成本函数的值?如何在三维空间里找到成本函数的最小值?解读可视化成本函数:为了更加方便的看到不同的w和b,是如何影响成本函数的。上节课只看到了w如何影响成本函数,这节课回归......
  • 智慧城管源码 可视化系统平台 可直接应用的系统源码
    智慧城管源码可视化系统平台可直接应用的系统源码   智慧城管利用视频+AI等技术可实现对城市管理中违规、违法事件的实时监管、主动发现、智能分析,解决人工巡查不及时、监管不足、巡检效率低等问题,打造动态监测、提前预警、精准指挥的智慧城管模式。   借助前......
  • 3D模型优化服务+三维可视化+数字孪生+元宇宙=眸瑞科技
    眸瑞科技:老子云平台+AMRT3D数字孪生引擎老子云概述老子云3D可视化快速开发平台,集云压缩、云烘焙、云存储云展示于一体,使3D模型资源自动输出至移动端PC端、Web端,能在多设备、全平台进行展示和交互,是全球领先、自主可控的自动化3D云引擎。平台架构平台特性1、基于HTML5......
  • C++ Qt开发:QProcess进程管理模块
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QProcess组件实现针对进程的控制管理等。当你在使用Qt进行跨平台应用程序开发时,经常需要......
  • 新能源汽车充电桩消防安全视频智能可视化监管建设方案
    一、方案背景据应急管理部门统计公布的数据显示,仅2023年第一季度,新能源汽车自燃率就上涨了32%,平均每天就有8辆新能源汽车发生火灾(含自燃)。在已查明起火原因中,58%源于电池问题,19%源于碰撞问题,还有部分源于浸水、零部件故障、使用问题等。新能源汽车电池在充电的情况下,由于大电流的......
  • Antd+ProComponent管理系统中的部分业务封装
    本文记录在我司后台管理系统中,自己对部分业务的一些封装。业务封装涉及的技术栈为Antd+ProComponent+zustand权限由于此项目的权限精度并没那么高,后台采用ACL权限控制而不是RBAC,仅根据角色来判断权限,因此可能无法适配所有业务场景,但是可以参考思路。此处封装了两个权限......