Nhanes数据(复杂调查数据)绘制限制立方样条(rcs)函数svyggrcs1.8尝鲜版发布

news2024/9/21 0:29:17

临床上,因变量和临床的结局有时候不是线性关系,而回归模型有一个重要的假设就是自变量和因变量呈线性关联,因此非线性关系模型用回归分析来拟合受到限制。因此,一个更好的解决方法是拟合自变量与因变量之间的非线性关系,限制性立方样条(Restricted cubic spline,RCS)就是分析非线性关系的最常见的方法之一。

在这里插入图片描述
既往再文章《R语言绘制复杂抽样设计logistic回归限制立方样条图(RCS)》我已经介绍了nhanes数据(复杂调查抽样数据)怎么手动绘制限制立方样条图,但是手动相对麻烦,而且要清除异常离群值,绘制不好的话没有rms包绘制得漂亮,对新手有点难度。参考了网络上一些其他大神得画法,经过我自己改良后,svyggrcs1.8给出了两种绘图得方法,一个是常规方法,一个是重抽样绘图,重抽样绘图能很好的印证你的结果,增强结论的可靠性。因为survey包还要对残差进行加权,计算可信区间,因此我觉得重抽样绘制的图形更加可靠。总而言之,svyggrcs1.8还是一个新的函数包,还有很多待升级的空间,有意见或建议都可以私信我。

先说个结论,rms包绘图和我既往文章的绘图结果是一样的,间接证明了我文章《R语言绘制复杂抽样设计logistic回归限制立方样条图(RCS)》方法没有问题。

在这里插入图片描述
在这里插入图片描述
下面我来演示一下怎么使用svyggrcs1.8函数绘制nhanes数据(复杂调查数据)的限制立方样条图绘制。支持线性回归、逻辑回归和cox回归。
先要安装常规一些辅助包,如果没有安装的话我们要提前安装好

install.packages(c("stringr","ggplot2","rms","cowplot","survey"))

导入我写的函数,把函数放在指定的位置(我这里在E:/r/test/),然后用下面代码导入

source("E:/r/test/svyggrcs1.8.R")

在这里插入图片描述
正常导入的话应该生成5个函数,
我们先来做个cox回归的
先导入R包和数据

noNA<-read.csv("E:/r/test/noNA.csv",sep=',',header=TRUE)

在这里插入图片描述
这是一个转移性胃癌患者(Power、Capanu、Kelsen 和 Shah 2011)的数据(公众号回复:胃癌数据,可以获得数据),数据很多我们选取一部分建模,age_dx:年龄,group:分组变量,分为存活率小于2年的和大于两年的,inv_weight:概率权重,ssize:每个分组患者的人数,survival生存时间,surv_cens生存结局

建立调查函数表

dstr2 <- svydesign(id = ~1, strata = ~group, prob = ~inv_weight, 
                   fpc = ~ssize, data = noNA)

假设我们研究的是年龄和生产率关系。生成cox回归方程,我们研究的目前是年龄age这里需要给它rcs(Age,4)

svy.cox.fit <- svycoxph(Surv(survival, surv_cens) ~ ECOG + liver_only + 
                          Alb + Hb + rcs(Age,4) + Differentiation + Gt_1_m1site + lymph_only, x = TRUE, 
                        design = dstr2)

生成限制立方样条图,非常简单,一句话代码

out<-svyggrcs(svy.cox.fit)

生成结果在out这里

在这里插入图片描述
我们打开看一下,生成3个内容,newdat是绘图数据,你可以通过它手动绘图,这样自由度大一点,boot.p是重抽样生成的图片,p2是rms包生成的图片

在这里插入图片描述
我们点开看一下,常规绘图

out[["p2"]]

在这里插入图片描述
再看下重抽样的

out[["boot.p"]]

在这里插入图片描述
我们可以修改X轴和Y轴标题,P值的位置也可以通过px和py参数修改

out<-svyggrcs(svy.cox.fit,xlab = "血糖",ylab="预测值",ggtitle="血糖与预测值关系")

在这里插入图片描述
再看看提取的数据

dat<-out[["newdat"]]

在这里插入图片描述
手动绘制灵活一点

ggplot(dat,aes(Age,yhat))+
  geom_ribbon(aes(ymin=lower,ymax=upper),fill="red",alpha=.2)+
  geom_line(linewidth=1,col="red",alpha=.2)+
  theme_bw()+
  theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank())

在这里插入图片描述
接下来演示一下逻辑回归,差不多,直接上代码了

#逻辑回归
library(survey)
bc<-read.csv("E:/r/test/subtext.csv",sep=',',header=TRUE)
bc <- na.omit(bc)
bc$DMDMARTL<-ifelse(bc$DMDMARTL==1,1,0)
bc$RIAGENDR<-as.factor(bc$RIAGENDR)
bc$RIDRETH1<-as.factor(bc$RIDRETH1)
bc$DMDMARTL<-as.factor(bc$DMDMARTL)
#bc$factor.FVC<-as.factor(bc$factor.FVC)
bcSvy1<- svydesign(ids = ~ SDMVPSU, strata = ~ SDMVSTRA, weights = ~ WTMEC2YR,
                   nest=TRUE,data = bc)
svy.glm<- svyglm(factor.FVC ~ RIAGENDR + RIDAGEYR+RIDRETH1+ DMDMARTL + rcs(LBXGH,4),
                design = bcSvy1)

也是一句话生成图,

out<-svyggrcs(svy.glm)
out[["p2"]]

在这里插入图片描述
最后展示线性回归,也是直接上代码

##线性回归
library(survey)
bc<-read.csv("E:/nhanes/nhanes.csv",sep=',',header=TRUE)
bc <- na.omit(bc)
bc$DMDMARTL<-ifelse(bc$DMDMARTL==1,1,0)
bc$RIAGENDR<-as.factor(bc$RIAGENDR)
bc$RIDRETH1<-as.factor(bc$RIDRETH1)
bc$DMDMARTL<-as.factor(bc$DMDMARTL)
bcSvy2<- svydesign(ids = ~ SDMVPSU, strata = ~ SDMVSTRA, weights = ~ WTMEC2YR,
                   nest=TRUE,data = bc)
svy.glm.fit <- svyglm(SPXNFVC ~ RIAGENDR + RIDAGEYR+RIDRETH1+ DMDMARTL + LBXGH,
                      design = bcSvy2)
svy.lm<- svyglm(SPXNFVC ~ RIAGENDR + RIDAGEYR+RIDRETH1+ DMDMARTL + rcs(LBXGH,4),
                design = bcSvy2)
out<-svyggrcs(svy.lm)
out[["p2"]]

在这里插入图片描述

如果你还不会,可以看下面视频

Nhanes数据(复杂调查数据)绘制限制立方样条图(rcs)

需要获得svyggrcs1.8函数尝鲜版,可以看下面这篇文章

Nhanes数据(复杂调查数据)绘制限制立方样条(rcs)函数svyggrcs1.8尝鲜版发布

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

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

相关文章

智慧公厕:城市公共卫生管理的新篇章‌@卓振思众

在快节奏的现代生活中&#xff0c;公共厕所作为城市基础设施的重要组成部分&#xff0c;其使用体验和管理效率直接影响着市民的生活质量与城市形象。随着科技的飞速发展&#xff0c;智慧公厕应运而生&#xff0c;它以一种全新的姿态&#xff0c;为城市公共卫生管理带来了前所未…

【吊打面试官系列-Redis面试题】Pipeline 有什么好处,为什么要用 pipeline?

大家好&#xff0c;我是锋哥。今天分享关于 【Pipeline 有什么好处&#xff0c;为什么要用 pipeline&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Pipeline 有什么好处&#xff0c;为什么要用 pipeline&#xff1f; 1000道 互联网大厂Java工程师 精选面试题…

ABAP 报错 提示 Use the associated entity XXX

警告&#xff0c;我们可以忽略&#xff0c;但是报错了&#xff0c;却不知道怎么改&#xff1f; 后面发现是 在ABAP里面 对CDS的字段做 substring 或者concat是不允许的

常见加解密算法06 - 分组密码的填充与工作模式

各位英姿焕发&#xff0c;风华正茂的读者们你们好啊&#xff0c;今天我们讨论一下分组密码的填充与工作模式。 分组密码中&#xff0c;需要将明文按指定大小进行分组&#xff0c;由于明文并非指定大小的整数倍&#xff0c;因此在明文的最后一个分组需要将其填充至加密算法所要…

向 ADC 模型和 DAC 建模添加低通滤波器

与单音测试信号相比&#xff0c;双音测试信号可提供更多有关 ADC 性能的信息。您的作者的模型与特定 ADC 的制造商模型非常匹配&#xff0c;因此可以方便地运行误码率模拟。该 ADC 恰好具有非常宽的输入带宽。 对于带宽较低的 ADC&#xff0c;添加如图 1 所示的低通滤波器将提…

[SUCTF 2018]annonymous1

知识点&#xff1a; 匿名函数创建其实有自己的名字&#xff08;%00lambda_%d&#xff09; 进入页面开始代码审计. <?php // 使用 create_function 创建一个匿名函数&#xff0c;该函数调用 die() 函数并执行 cat flag.php 命令&#xff08;在服务器上执行&#xff0c;如果…

BFF层聚合查询服务异步改造及治理实践

首先感谢王晓老师的[ 接口优化的常见方案实战总结]一文总结&#xff0c;恰巧最近在对稳健理财BFF层聚合查询服务优化治理&#xff0c;针对文章内的串行改并行章节进行展开&#xff0c;分享下实践经验&#xff0c;主要涉及原同步改异步的过程、全异步化后衍生的问题以及治理方面…

实训day42(9.3)

⼀、编排分类 单机容器编排: docker-compose 容器集群编排: docker swarm、mesosmarathon、kubernetes 应⽤编排: ansible(模块&#xff0c;剧本&#xff0c;⻆⾊) ⼆、系统管理进化史 1. 传统部署时代 早期&#xff0c;各个组织是在物理服务器上运⾏应⽤程序。 由于⽆法限…

Mac搭建音视频开发环境

1.安装软件 打开终端&#xff0c;依次输入如下命令&#xff1a; brew install ffmpeg brew install qt brew install --cask qt-creator 2.配置qt 打开Qt Creator&#xff0c;在首选项—>Qt版本设置qt路径 3.设置默认Kits 3.创建项目 输入项目名称和存放目录&#xff0c…

在国产芯片上实现YOLOv5/v8图像AI识别-【4.2】RK3588获取USB摄像头图像推流RTSP更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案&#xff0c;专栏中实现了YOLOv5/v8在国产化芯片上的使用部署&#xff0c;并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。 B站配套视频&#xff1a;https://www.bilibili.com/video/BV1or421T74f 前言…

大屏适配各分辨率屏幕方案及整合动画性能

每个公司都不可避免会有一些数据可视化的需求&#xff0c;大数据时代&#xff0c;更是一发不可收拾&#xff0c;各种花里胡哨的大屏效果&#xff0c;让前端既烦恼又有些许刺激&#xff0c;刺激是新的挑战带来的&#xff0c;完成了各种风骚的展示效果&#xff0c;那种成就感让人…

荆州农商行资产质量下行压力不减,参股多家银行均有股权被冻结

撰稿|芋圆 2023年&#xff0c;湖北荆州农商行的业绩表现不佳&#xff0c;营收、利润双降。其中&#xff0c;2023年的营收6.8亿元&#xff0c;延续2022年的下滑趋势&#xff0c;同比降幅4.06%&#xff1b;利润总额2.2亿元&#xff0c;同比下滑15%&#xff1b;净利润1.8亿元&…

新疆火炬燃气安康杯知识竞赛活动策划方案

以赛促学&#xff0c;以学促安。为深入贯彻落实国家安全生产法律法规&#xff0c;增强公司员工的安全意识和法律素养&#xff0c;6月28日&#xff0c;新疆火炬燃气股份有限公司举办2024年安全生产法律法规“安康杯”知识竞赛。28支队提前抽好PK对手&#xff0c;两两PK&#xff…

Nginx 负载均衡+高可用 集群部署(Keepalived+LVS DR模式)

一、LVS负载均衡简介 1.1 LVS基本介绍 LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;是由章文嵩博士主导开发的开源负载均衡项目&#xff0c;目前LVS已经被集成在Linux内核中。该项目在Linux内核中实现了基于IP地址的请求数据负载均衡调度方…

【C语言从不挂科到高绩点】09-作业练习-循环结构02

Hello!彦祖们,俺又回来了!!!,继续给大家分享 《C语言从不挂科到高绩点》课程,前面课程中给大家讲解了一些常规的知识点,那么本次课,我们一起来练习挑战一下!! 本套课程将会从0基础讲解C语言核心技术,适合人群: 大学中开设了C语言课程的同学想要专升本或者考研的同…

年薪98w!产品人的新赛道,我决定入局!

现在做产品经理&#xff0c;真的挺累的。 现在产品越来越难做&#xff0c;晋升困难&#xff0c;工资迟迟不涨……公司裁员&#xff0c;产品经理首当其冲&#xff01;&#xff01; 做产品几年了&#xff0c;还没升职&#xff0c;就先到了“职业天花板”。 想凭工作几年积累的…

提升编程效率的秘密武器:精选编程工具解析

引言 在软件开发的世界里&#xff0c;时间就是金钱。选择合适的编程工具不仅可以帮助开发者节省时间&#xff0c;还能提高代码质量&#xff0c;优化团队协作。本文将深入探讨几款能够显著提升工作效率的编程工具&#xff0c;并分析它们的特点、使用场景以及如何帮助开发者提高…

数字人直播阿凡达模式2.0版本揭秘:灰豚运用了哪些黑技术?

随着数字人直播的应用频率不断提升&#xff0c;其在帮助企业降本增效方面的潜力也随之显现&#xff0c;刺激市场需求的同时&#xff0c;也让用户对它的期待值持续增长。在此背景下数字人源码厂商开始不断加大研发力度&#xff0c;以推动数字人直播技术的持续升级&#xff0c;数…

青少年护眼台灯哪个牌子好?五款质量好又专业的护眼台灯

现在的青少年学习压力很大&#xff0c;在学校课程已经塞满了大半天&#xff0c;课后的作业更是不少&#xff0c;空闲时间还需要去课后补习班的数不胜数。用眼的次数非常的高&#xff0c;眼睛很容易感到疲惫&#xff0c;这时候我们一个“宝贝”大有作用&#xff0c;就是我们的护…

【书生3.3】LMDeploy 量化部署进阶实践

LMDeploy 量化部署进阶实践 1、环境准备1.1 创建模型软链接1.2 LMdeploy部署验证 2、api接口服务2.1 启动API服务器2.1.1 以命令行形式连接API服务器2.1.2 以Gradio网页形式连接API服务器 2.2 LMDeploy Lite2.2.1 不设置kv2.2.2 设置kv2.2.3 设置**在线** kv cache int4/int8 量…