当前位置: 首页 > news >正文

R语言阈值效应函数cut.tab2.0版发布(支持线性回归、逻辑回归、cox回归,自定义拐点)

阈值效应和饱和效应是剂量-反应关系中常见的两种现象。阈值效应是指当某种物质的剂量达到一定高度时,才会对生物体产生影响,而低于这个剂量则不会产生影响。饱和效应是指当某种物质的剂量达到一定高度后,其影响不再随剂量的增加而增加,即产生饱和现象。这两种效应在药物、毒物、营养物质等剂量-反应关系中都有应用。
接下来聊聊RCS阈值函数是干什么用的,随便抓一篇论文给大家看看,粉丝发给我的。
L-shaped association of serum 25-hydroxyvitamin D concentrations
with cardiovascular and all-cause mortality in individuals with osteoarthritis: results
from the NHANES database prospective cohort study

在这里插入图片描述
我们看到它曲线拟合后直接就是一个表

在这里插入图片描述
在这里插入图片描述
列出了25(OH)D在54.4就是转弯处前对结局影响的HR,还有在转弯后对结局影响的HR。

在既往我们在文章《cox回归RCS阈值效应函数cut.tab1.3发布》发布了自写的阈值效应函数1.3版本,反应还不错,不过1.3版本只能支持cox回归,本次发布了新的2.0版本,支持线性回归、逻辑回归、cox回归, 还有自定义拐点功能。泊松回归还不支持,目前正在开发中。下面我来演示一下,怎么通过ggrcs包做出上面论文这样一个图和自写的函数cut.tab20版来做出这样一个表
我们先导入数据和R包,数据使用ggrcs包的自带数据

library(ggrcs)
library(rms)
library(ggplot2)
library(scales)
library(cowplot)
library(survey)
dt<-smoke

在这里插入图片描述
这是ggrcs包自带的吸烟数据status结局,time时间,age年龄,gender性别,我们先整理数据

dd<-datadist(dt)
options(datadist='dd')

建立模型

fit <- cph(Surv(time,status==1) ~ rcs(age,4), x=TRUE, y=TRUE,data=dt)

绘图

ggrcs(data=dt,fit=fit,x="age")

在这里插入图片描述
我们绘图好以后想要了解它的拐点,需要先导入我写的函数

source("E:/r/test/20final.R")

导入成功后,左侧应该生成19个函数,表明已经成功导入
在这里插入图片描述
接下来咱们还要建一个新的fit1和原来的fit稍微有点不一样的,这个是没有rcs函数的。自己比较一下。(划重点)

fit1 <-cph(Surv(time,status==1) ~ age,data=dt)

接下来使用cuttab函数生成拐点数据,这里注意一下,新版本和旧版本不同的是这里是cph生成生存模型,cuttab重点是没有点这个符号的。

out<-cuttab(fit1,"age",dt)

最终函数定义的拐点是38.449,新版本还支持自定义拐点设置,等会演示。这个表我要说明一下d6这里这个似然比只是表明它是不是直线,似然比大于0.05说明是个直线,并不是说直线就没有意义了(等下我再解释一下),P值这里主要看的是分段的P值。

最后生成节点的虚线

p<-ggrcs(data=dt,fit=fit,x="age")
p+geom_vline(aes(xintercept=40),colour="#BB0000", linetype="dashed")

在这里插入图片描述
发个旧版本的操作视频

代码+视频,手把手教你R语言ggrcs包绘制限制立方样条图+阈值效应分析

需要获取cut.tab2.0版函数的请看这篇文章:

R语言阈值效应函数cut.tab2.0版发布(支持线性回归、逻辑回归、cox回归,自定义拐点)

相关文章:

  • uTools工具使用
  • Redis-缓存问题及解决方案
  • Kafka系列之:Kafka集群同时设置基于时间和日志大小两种方式保存Topic的数据
  • 学习好并用好大模型
  • 【Cocos入门】场景切换(loadScene、preloadScene)
  • nginx slice模块的使用和源码分析
  • jmeter-06常用的几种断言方式
  • PdfFactory Pro软件下载以及序列号注册码生成器
  • Pandas 对带有 Multi-column(多列名称) 的数据排序并写入 Excel 中
  • vue 引入 百度地图API 和 路书
  • 功能强大的国外商业PHP在线教育系统LMS源码,直播课程系统
  • K8S之运用亲和性设置Pod的调度约束
  • 在centos7中利用pybind11构建C++的动态库供python调用
  • 初始web服务器(并基于idea来实现无需下载的tomcat)
  • Flink实战六_直播礼物统计
  • 【css3】浏览器内核及其兼容性
  • GitUp, 你不可错过的秀外慧中的git工具
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript函数式编程(一)
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 计算机常识 - 收藏集 - 掘金
  • 利用DataURL技术在网页上显示图片
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前端路由实现-history
  • 浅谈Golang中select的用法
  • 写代码的正确姿势
  • 一起参Ember.js讨论、问答社区。
  • 用Visual Studio开发以太坊智能合约
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 进程与线程(三)——进程/线程间通信
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • (02)vite环境变量配置
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 使用反射注册事件
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • @property @synthesize @dynamic 及相关属性作用探究
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [APUE]进程关系(下)
  • [BZOJ 3282] Tree 【LCT】
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [C/C++]数据结构 栈和队列()
  • [CSS] 点击事件触发的动画
  • [FC][常见Mapper IRQ研究]
  • [jobdu]不用加减乘除做加法
  • [LeetCode]—Permutations II 求全排列(有重复值)
  • [luoguP1666] 前缀单词(DP)
  • [NOI2005]月下柠檬树[计算几何(simpson)]
  • [openGL]在ubuntu20.06上搭建openGL环境
  • [POJ3067]Japan
  • [SpringBoot系列]进阶配置