R语言进行无序多分类Logistic回归

在临床研究中,接触最多的是二分类数据,如淋巴癌是否转移,是否死亡,这些因变量最后都可以转换成二分类0与1的问题。然后建立二元logistic回归方程,可以得到影响因素的OR值。但有时我们也会接触到多分类结局数据,今天咱们来演示一下怎么使用R语言进行多分类结局逻辑回归分析。

在这里插入图片描述
咱们先导入数据和R包

library(here)
library(tidyverse)
library(haven)
library(gtsummary)
library(VGAM)
library(kableExtra)
library(HSAUR)
library(reshape2)
setwd("E:/公众号文章2024年/R无序多分类Logistic回归")
load("hsbdemo.rda")
ms<-hsbdemo

在这里插入图片描述
这个数据是高中生毕业后的一个就业计划数据,Prog是结局变量,是个三分类变量,预测变量是ses社会经济地位,其他的是一些协变量。

变量比较多,咱们选出需要的变量,并且把字符变量转成因子

ms <- ms %>% select(ses, prog, female , write ) %>% mutate(across(where(is.labelled), as_factor)) 

在这里插入图片描述
咱们以prog为分类变量,绘制个基线表,了解相关数据分布

ms %>%tbl_summary(by = prog,statistic = list(all_continuous() ~ "{mean} ({sd})", all_categorical() ~ "{n} ({p}%)"),type = list(where(is.logical) ~ "categorical")) %>% modify_caption("**Table 1. Survey Participant Characteristic**")  %>%modify_header(label ~ "**Variable**") %>%modify_spanning_header(c("stat_1", "stat_2", "stat_3") ~ "**Baseline tables for three types of projects**") %>%modify_footnote(all_stat_cols() ~ "Mean (SD) or Frequency (%)") %>%bold_labels() %>%as_gt()

在这里插入图片描述
我们以academic为参考,建立新的变量

ms <- ms %>% mutate(prog2 = fct_relevel(prog, c("academic", 'general', 'vocation')))
levels(ms$prog2)

在这里插入图片描述
更改了参考类别后,咱们使用prog2为结局变量建立无序多分类逻辑回归模型,很多包可以建立这个模型,我这里用vglm包来建,我觉得比较简单点

fit <- vglm(prog2~ ses + write, multinomial, data = ms)
summary(fit)

在这里插入图片描述
这样结果就出来啦,seslow:1和seslow:2的这两个系数是针对academic这个结局的
还可以做交互效应的,把交互效应打上去就可以啦,我这里就不弄了。

查看系数和可惜区间

b_mlog <- coef(fit )
ci_mlog <- confint(fit)
b_ci_mlog <- data.frame(b_mlog,ci_mlog) %>%rename("log odds" = b_mlog, "Lower CI" = X2.5.., "Upper CI" = X97.5..)
b_ci_mlog %>% kbl(digits = 2, booktabs = T, caption = "Log odds from multinomial logistic regression") %>%kable_styling(position = "center")

在这里插入图片描述
查看各个结局概率的数据

predict.vgam(fit, type = 'response') %>% head(20)

在这里插入图片描述
构造一个新数据

ms2 <- data.frame(ses = rep(c("low", "middle", "high"), each = 41), write = rep(c(30:70), 3))
ms2<-predict(fit, newdata = ms2,type = 'response') %>% cbind(ms2)

转化数据

ms3 <- melt(ms2, id.vars = c("ses", "write"), value.name = "probability")

在这里插入图片描述
最后绘图

ggplot(ms3, aes(x = write, y = probability, colour = ses)) + geom_line() + facet_grid(variable ~ ., scales = "free")

在这里插入图片描述
表明随着write增加,不同的经济基础转向各个计划的概率不同。

参考文献

  1. https://xianxiongma.github.io/Clinical-model/chapter2/chapter2.html
  2. https://bookdown.org/drki_musa/dataanalysis/multinomial-logistic-regression.html

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C++:类和对象全解

C&#xff1a;类和对象全解 一、类的定义和初始化&#xff08;一&#xff09;类的定义1、类的成员变量&#xff08;1&#xff09;成员变量&#xff08;2&#xff09;成员函数 2、实例化对象&#xff08;1&#xff09;采用普通构造函数&#xff08;2&#xff09;采用初始化列表 …

【鸿蒙开发 day12】

鸿蒙开发-布局进阶 一.定位1.绝对定位2.相对定位3.定位案例-VIP 二.Z序控制三.层叠布局四.bilibili卡片案例五.list列表容器组件滚动条状态列表分割线 六.通用属性七.动画八.图形变换1.平移2.定位结合平移实现精准定位3.旋转和缩放 九.总结 一.定位 作用&#xff1a;改变组件位…

MOS管和三极管有什么区别?

MOS管是基于金属-氧化物-半导体结构的场效应晶体管&#xff0c;它的控制电压作用于氧化物层&#xff0c;通过调节栅极电势来控制源漏电流。MOS管是FET中的一种&#xff0c;现主要用增强型MOS管&#xff0c;分为PMOS和NMOS。 MOS管的三个极分别是G(栅极)&#xff0c;D(漏极)&…

PCL 点云基于高程渲染颜色

目录 一、概述 1.1原理 1.2实现步骤 1.3 应用场景 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#xff09; 一、概述 本文将介绍如何使用PCL库…

[通信原理]绪论2:信息量 × 信息熵

我们知道信息是一个抽象的概念&#xff0c;它既不是物质也不是能量。那么我们要如何对一个抽象的概念进行一个定量的研究呢&#xff1f; 信息量 1、信息的度量 通信的本质是传递信息&#xff0c;为了定量表征信息的度量&#xff0c;引入信息量的概念。消息中所含信息量与其不…

AIGC-初体验

线性分类 提问&#xff0c;目的试图让AI自动线性分类 A类&#xff1a;(10,21),&#xff08;3,7&#xff09;,(9,20&#xff09;(121,242) B类&#xff1a;(3,9),(5,11),(70,212),(11,34) 根据线性关系分类 请问 (100,300)&#xff0c;&#xff08;100&#xff0c;201&#xff…

Netty笔记06-组件ByteBuf

文章目录 概述ByteBuf 的特点ByteBuf的组成ByteBuf 的生命周期 ByteBuf 相关api1. ByteBuf 的创建2. 直接内存 vs 堆内存3. 池化 vs 非池化4. ByteBuf写入代码示例 5. ByteBuffer扩容6. ByteBuf 读取7. retain() & release()TailContext 释放未处理消息逻辑HeadContext 8. …

2024最新版零基础学习Modbus通信协议(保姆级教程)

合集 - 上位机开发(2) 1.零基础学习Modbus通信协议09-13 2.RS485与ModbusRTU09-10 收起 大家好&#xff01;我是付工。 2012年开始接触Modbus协议&#xff0c;至今已经有10多年了&#xff0c;从开始的懵懂&#xff0c;到后来的顿悟&#xff0c;再到现在的开悟&#xff0c;…

YOLOv8改进 | 融合改进 | C2f融合重写星辰网络⭐以及CAA【二次融合 +​ CVPR2024】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

win10安装JDK12并配置环境

Java SE 、Java EE和Java ME的区别 Java SE&#xff08;Standard Edition&#xff09;‌ 是Java语言的标准版&#xff0c;也被称为Java平台标准版。 Java EE&#xff08;Enterprise Edition&#xff09;‌ 是基于Java SE构建的企业版&#xff0c;专门用于开发企业级应用。它扩…

ESP32聊天机器人之一

想做情感陪伴机器人&#xff0c;看到B站有个项目很有趣&#xff0c;使用一块esp32复刻了B站MeteWu的ESP32大模型聊天项目。 自己做了一些修改&#xff0c;加了一些简单的表情&#xff0c;角色扮演&#xff0c;切换大模型和温湿度传感器等功能。可以用于玩具&#xff0c;聊天机…

【React源码解析】深入理解react时间切片和fiber架构

时间切片 假如React一个更新需要耗时200ms&#xff0c;我们可以将其拆分为40个5ms的更新&#xff08;后续会讲到如何拆分&#xff09;&#xff0c;然后每一帧里只花5ms来执行更新。那么&#xff0c;每一帧里不就剩余16.7 - 5 11.7ms的时间可以进行用户事件&#xff0c;渲染等…

立足本土,面向全球 | 全视通闪耀亮相Medical Fair Asia新加坡医疗展

Medical Fair Asia是亚洲地区最大的医疗设备、医疗器械和医疗技术展览会之一&#xff0c;自1997年创办以来&#xff0c;每两年在新加坡举办一次。该展会不仅是新加坡医疗行业交流的龙头平台&#xff0c;也是亚洲乃至全球医疗企业和专业人士共聚一堂、展示最新产品和技术的重要舞…

非关系型数据库Redis

文章目录 一&#xff0c;关系型数据库和非关系型数据可区别1.关系型数据库2.非关系型数据库3.区别3.1存储方式3.2扩展方式3.2事务性的支持 二&#xff0c;非关系型数据为什么产生三&#xff0c;Redis1.Redis是什么2.Redis优点3.Redis适用范围4. Redis 快的原因4.1 基于内存运行…

某讯/企鹅滑块验证码逆向(一)

文章目录 免责声明前言请求分析collect参数 总结 免责声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由…

面试爱考 | 设计模式

一、概述二、创建型 1. 单例&#xff08;Singleton&#xff09; IntentClass DiagramImplementationExamplesJDK 2. 简单工厂&#xff08;Simple Factory&#xff09; IntentClass DiagramImplementation 3. 工厂方法&#xff08;Factory Method&#xff09; IntentClass Diagr…

C/C++教程学习视频网盘资源分享

正如大家所了解的&#xff0c;C语言和C是两种编程语言&#xff0c;它们有一些相似之处&#xff0c;也有一些明显的区别。今天与大家一起来探讨、学习和回顾一下&#xff0c;希望对正在学习或准备学习编程语言的小伙伴&#xff0c;能有帮助哦&#xff01; C/C区别之处&#xff…

Linux环境使用Git同步教程

&#x1f4d6; 前言&#xff1a;由于CentOS 7已于2024年06月30日停止维护&#xff0c;为了避免操作系统停止维护带来的影响&#xff0c;我们将把系统更换为Ubuntu并迁移数据&#xff0c;在此之前简要的学习Git的上传下载操作。 目录 &#x1f552; 1. 连接&#x1f558; 1.1 配…

路由策略原理与配置

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; 目录 一. 原理概述 二. 实验目的 实验内容 实验拓扑 实验配置 三. 实验结果 一. 原理概述 路由策略Route-P…

【docker】docker 关键技术 —— 镜像制作

docker 镜像制作 镜像制作及原因Docker 镜像制作方式快照方式制作镜像制作命令 Dockerfile 制作镜像Dockerfile 是什么Dockerfile 格式为什么需要 Dockerfilegitee 详细使用 Dockerfile 教程 镜像制作及原因 镜像制作是因为某种需求&#xff0c;官方的镜像无法满足需求&#x…