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

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

本文利用R语言,通过逐步逻辑回归模型帮助客户分析两个实际案例:麻醉剂用量对手术病人移动的影响以及汽车购买行为预测点击文末“阅读原文”获取完整代码数据

相关视频


image.png

通过构建模型并解释结果,我们探究了各自变量对因变量的影响程度。同时,借助ROC曲线可视化分析,评估了模型的预测性能。本文旨在为相关领域的研究提供方法学参考和实际应用指导。

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

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

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

head(anesthetic)

d3d7fb4806ec1b13bcbab242408cf496.png

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

518b10b69ab7d8c95386a3a5506ee3b4.png

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

cb1cfe4c6793a58eb2c34824771f8d47.png

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

00c03702d48817701e82cbf6ee7dc728.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)

c78c49c2c60ca6bbdd58ab85ba7d73d2.png

61b8d403b1f43d045e4dbc8c1a29080d.png

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

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


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

796027e363f91ec0ac211e51d50d5c61.png

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


18269e02613154b96a320d6553fc2d21.png


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

相关文章
|
3月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
4月前
|
数据可视化 数据挖掘 图形学
R语言基础可视化:使用ggplot2构建精美图形的探索
【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
|
4月前
|
数据可视化 数据挖掘 数据处理
R语言高级可视化技巧:使用Plotly与Shiny制作互动图表
【8月更文挑战第30天】通过使用`plotly`和`shiny`,我们可以轻松地创建高度互动的数据可视化图表。这不仅增强了图表的表现力,还提高了用户与数据的交互性,使得数据探索变得更加直观和高效。本文仅介绍了基本的使用方法,`plotly`和`shiny`还提供了更多高级功能和自定义选项,等待你去探索和发现。希望这篇文章能帮助你掌握使用`plotly`和`shiny`制作互动图表的技巧,并在你的数据分析和可视化工作中发挥更大的作用。
|
2月前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
53 3
|
3月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
3月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
3月前
|
机器学习/深度学习
R语言模型评估:深入理解混淆矩阵与ROC曲线
【9月更文挑战第2天】混淆矩阵和ROC曲线是评估分类模型性能的两种重要工具。混淆矩阵提供了模型在不同类别上的详细表现,而ROC曲线则通过综合考虑真正率和假正率来全面评估模型的分类能力。在R语言中,利用`caret`和`pROC`等包可以方便地实现这两种评估方法,从而帮助我们更好地理解和选择最适合当前任务的模型。
|
4月前
|
数据可视化
R语言可视化设计原则:打造吸引力十足的数据可视化
【8月更文挑战第30天】R语言可视化设计是一个综合性的过程,需要综合运用多个设计原则来创作出吸引力十足的作品。通过明确目标、选择合适的图表类型、合理运用色彩与视觉层次、明确标注与引导视线以及引入互动性与动态效果等原则的应用,你可以显著提升你的数据可视化作品的吸引力和实用性。希望本文能为你提供一些有益的启示和帮助。
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
R语言在数据科学中的应用实例:探索与预测分析
【8月更文挑战第31天】通过上述实例,我们展示了R语言在数据科学中的强大应用。从数据准备、探索、预处理到建模与预测,R语言提供了完整的解决方案和丰富的工具集。当然,数据科学远不止于此,随着技术的不断发展和业务需求的不断变化,我们需要不断学习和探索新的方法和工具,以更好地应对挑战,挖掘数据的潜在价值。 未来,随着大数据和人工智能技术的普及,R语言在数据科学领域的应用将更加广泛和深入。我们期待看到更多创新的应用实例,为各行各业的发展注入新的动力。
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。