代码+视频,手动绘制logistic回归预测模型校准曲线(Calibration curve)(1)

校准曲线图表示的是预测值和实际值的差距,作为预测模型的重要部分,目前很多函数能绘制校准曲线。
一般分为两种,一种是通过Hosmer-Lemeshow检验,把P值分为10等分,求出每等分的预测值和实际值的差距.

在这里插入图片描述
另外一种是calibration函数重抽样绘制连续的校准图

在这里插入图片描述
今天我们来视频演示第一种,手动绘制的好处在于加深你对绘图的理解,而且能个性化的进一步处理图形。第一种绘图本质就是我们的折线图,

R语言手动绘制logistic回归预测模型校准曲线(Calibration curve)(1)

代码

library(ggplot2)
library(rms)
#公众号:零基础说科研,公众号回复:早产数据,可以获得数据
bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
######
bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)
#########
fit<-glm(low ~ age + lwt + race + smoke + ptl + ht + ui + ftv,
         family = binomial("logit"),
         data = bc)
#得出预测概率
pr1 <- predict(fit,type = c("response"))#得出预测概率
p = pr1
##使用order函数对P值排序,这里注意一下,order§排的是位置
sor <- order(p)
#P值按order来排列
p <- p[sor]
#Y值也按order来排列
y = bc[, "low"]
y <- y[sor]
###把P值分为10个等分区间
groep <- cut2(p, g = 10) #来自rms包
###计算每个等分的P值和Y值
meanpred <- round(tapply(p, groep, mean), 3)
meanobs <- round(tapply(y, groep, mean), 3)
##绘图
plot(meanpred, meanobs)
###修饰一下
plot(meanpred, meanobs,xlab = "Predicted risk", 
     ylab = "Observed risk", pch = 16, ps = 2, xlim = c(0, 1), 
     ylim = c(0, 1), cex.lab = 1.2, cex.axis = 1.1, 
     las = 1)
abline(0, 1, col = "grey", lwd = 1, lty = 1)
######使用PredictABEL包的plotCalibration函数来验证一下我们计算的正确性
library(PredictABEL)
plotCalibration(data = bc,
                cOutcome = 2,#结果在第几行就选几
                predRisk = pr1,
                groups = 10,
                rangeaxis = c(0,1))
#########
source("E:/r/test/ggfit.R")

#gg2<-function(data,p,y,group=1,leb) 

y1<-bc[, "low"]
  
plot1<-gg2(bc,pr1,y1)

ggplot(plot1, aes(x=meanpred, y=meanobs)) + 
  geom_errorbar(aes(ymin=meanobs-1.96*se, ymax=meanobs+1.96*se), width=.02)+
  annotate(geom = "segment", x = 0, y = 0, xend =1, yend = 1)+
  expand_limits(x = 0, y = 0) + 
  scale_x_continuous(expand = c(0, 0)) + 
  scale_y_continuous(expand = c(0, 0))+
  geom_point(size=3, shape=21, fill="white")+
  xlab("预测概率")+
  ylab("实际概率")


gg3(bc,pr1,y1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/503615.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Adaboost集成学习 | Matlab实现基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习 | 基于SVM-Adaboost支持向量机结合Adaboost集成学习时间序列预测(股票价格预测)基于SVM(支持向量机)和AdaBoost集成学习的时间序列预测(如股票价格预测)是一种结合了两种强大机器学习算…

【Frida】【Android】工具篇:ZenTracer

&#x1f6eb; 系列文章导航 【Frida】【Android】01_手把手教你环境搭建 https://blog.csdn.net/kinghzking/article/details/136986950【Frida】【Android】02_JAVA层HOOK https://blog.csdn.net/kinghzking/article/details/137008446【Frida】【Android】03_RPC https://bl…

如何使用 ChatGPT 进行编码和编程

文章目录 一、初学者1.1 生成代码片段1.2 解释功能 二、自信的初学者2.1 修复错误2.2 完成部分代码 三、中级水平3.1 研究库3.2 改进旧代码 四、进阶水平4.1 比较示例代码4.2 编程语言之间的翻译 五、专业人士5.1 模拟 Linux 终端 总结 大多数程序员都知道&#xff0c;ChatGPT …

mac+win10虚拟机+phpstudy便捷运行php+pgsql的方法

痛点&#xff1a;mac下要搭建nginxphp&#xff08;含pdo_pgsql&#xff09;pgsql比较麻烦 另类解决方法&#xff1a; 前提&#xff1a;mac下需要已安装win10虚拟机 方法&#xff1a; 1. win10虚拟机下安装phpstudy8.1 -> 开启php扩展&#xff08;pdo_pgsql&#xff09;&a…

竞赛 python+深度学习+opencv实现植物识别算法系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的植物识别算法研究与实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;4分工作量&#xff1a;4分创新点&#xff1a;4分 &#x1f9ff; 更多…

荣誉 | 人大金仓连续三年入选“金融信创优秀解决方案”

3月28日&#xff0c;由中国人民银行领导&#xff0c;中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布“第三期金融信创优秀解决方案”&#xff0c;人大金仓新一代手机银行系统解决方案成功入选&#xff0c;这也是人大金仓金融行业解决方案连续第三年获得用户认可。…

OSI七层参考模型

osi即开放系统互联参考模型。 osi的目的是为了解决主机间的通信 从下到上&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示出、应用层 上三层&#xff08;应用层、表示出、会话层&#xff09;负责产生数据&#xff0c;下四层&#xff08;传输层、网络层、数据…

类加载 双亲委派 内存模型 对象内存分配 逃逸分析学习记录

类加载双亲委派 main方法运行过程 C语言实现的java.exe来创建jvm,和引导类加载器&#xff0c;并由引导类加载器来创建类加载器的启动器launcher&#xff0c;在类加载器启动器空参构造中就对剩下的拓展类加载器&#xff0c;应用程序加载器&#xff0c;和自定义加载器来进行了加…

前端第一天练习

一、安装Node.js和搭建前端环境 安装 Node.js&#xff1a;访问 Node.js 官网 下载并安装最新版本的 Node.js。 LTS 为长期稳定的版本, Current 为新特性尝鲜版本, 可能存在隐藏的 bug 或者安全漏洞打开终端, 在终端输入命令 node -v后, 即可查看已安装的 Node.js 版本号 使用 …

JWFD流程图转换为矩阵数据库的过程说明

在最开始设计流程图的时候&#xff0c;请务必先把开始节点和结束节点画到流程图上面&#xff0c;就是设计器面板的最开始两个按钮&#xff0c;先画开始点和结束点&#xff0c;再画中间的流程&#xff0c;然后保存&#xff0c;这样提交到矩阵数据库就不会出任何问题&#xff0c;…

linux命令之tput

1.tput介绍 linux命令tput是可以在终端中进行文本和颜色的控制和格式化&#xff0c;其是一个非常有用的命令 2.tput用法 命令&#xff1a; man tput 3.样例 3.1.清除屏幕 命令&#xff1a; tput clear [rootelasticsearch ~]# tput clear [rootelasticsearch ~]# 3.2.…

32-2 APP渗透 - 移动APP架构

前言 app渗透和web渗透最大的区别就是抓包不一样 一、客户端: 反编译: 静态分析的基础手段,将可执行文件转换回高级编程语言源代码的过程。可用于了解应用的内部实现细节,进行漏洞挖掘和算法分析等。调试: 排查软件错误的一种手段,用于分析应用内部原理和行为。篡改/重打…

数据分析之POWER Piovt透视表分析

将几个数据表之间进行关联 生成数据透视表 超级透视表这里的字段包含子字段 这三个月份在前面的解决办法 1.选中这三个月份&#xff0c;鼠标可移动的时候移动到后面 2.在原数据进行修改 添加列获取月份&#xff0c;借助month的函数双击日期 选择月份这列----按列排序-----选择月…

wps斜线表头并分别打字教程

wps斜线表头怎么做并分别打字&#xff1a; 1、首先选中我们想要设置的表头。 2、接着右键选中它&#xff0c;点击“设置单元格格式” 3、然后点击上方“边框”选项卡。 4、随后选择图示的斜线&#xff0c;点击“确定” 5、设置完成后&#xff0c;我们只要在其中打字就可以在斜…

UniFace:深度人脸识别的统一交叉熵损失

UniFace: Unified Cross-Entropy Loss for Deep Face Recognition softmax损失 缺点&#xff1a;不能保证最小正样本类相似度大于最大负样本类相似度 问题&#xff1a;没有统一的阈值可用于将正样本与类对与负样本与类对分开 创新点 设计了用于人脸识别模型训练的UCE&#xf…

设计模式之装饰模式精讲

概念&#xff1a;动态地给一个对象添加一些额外的职责。 装饰器模式侧重于在不改变接口的前提下动态地给对象添加新功能&#xff0c;保持对象结构的透明性&#xff0c;客户端无感知。 以一个咖啡制作和装饰的例子来帮助大家理解&#xff1a; public interface Coffee {double…

汽车租赁(源码+文档)

汽车租赁&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端登录界面首页订单个人信息我的界面新手指引注册界面车型选择支付界面修改信息 管理端用户管理订单管理分类管理 文件包含内容 1、搭建视频 2、流程图 3、开题报告 …

校园招聘管理系统(源码+文档)

校园招聘管理系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端热门岗位校园招聘首页个人简历添加个人简历我的界面注册界面查看个人简历界面个人资料界面登录界面消息界面退出登录 管理端登录界面![请添加图片描述](htt…

【shell】select in实现终端交互场景

文章目录 序言1. select in语句及其语法2. select in和case语句相结合3. 执行界面示例 序言 shell脚本实现简单的终端交互功能&#xff0c;根据用户不同输入执行不同功能脚本 1. select in语句及其语法 select in是shell独有的一种循环&#xff0c;非常适合终端交互场景 该语…

什么是nginx正向代理和反向代理?

什么是代理&#xff1f; 代理(Proxy), 简单理解就是自己做不了的事情或实现不了的功能&#xff0c;委托别人去做。 什么是正向代理&#xff1f; 在nginx中&#xff0c;正向代理指委托者是客户端&#xff0c;即被代理的对象是客户端 在这幅图中&#xff0c;由于左边内网中…