一、概述
Restricted cubic splines (RCS)是一种基于样条函数的非参数化模型,它可以可靠地拟合非线性关系,可以自适应地调整分割结点。在统计学和机器学习领域,RCS通常用来对连续型自变量进行建模,并在解释自变量与响应变量的关系时更加准确和精细。之前有写一篇RCS的文章,但是还是有一定的难度,经过一段时间的研究,发现rcssci包更为简便好用。
二、数据集
1. 安装及其使用
在安装该包的时候需要预先安装rms4.2.3
的版本,我的R是4.2.1的版本,在安装rms报了如下的错误:
Warning: 无法在貯藏處http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.2中读写索引: 无法打开URL'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.2/PACKAGES' 试开URL’https://mirrors.bfsu.edu.cn/CRAN/bin/windows/contrib/4.2/Matrix_1.5-4.zip' Content type 'application/zip' length 4639619 bytes (4.4 MB) downloaded 4.4 MB 程序包‘Matrix’打开成功,MD5和检查也通过 Warning: 无法将拆除原来安装的程序包‘Matrix’ Warning: 回复了‘Matrix’ 下载的二进制程序包在 C:\Users\ASUS\AppData\Local\Temp\RtmpO8P4Xi\downloaded_packages里 Warning message: In file.copy(savedcopy, lib, recursive = TRUE) : 拷贝D:\Program Files\R\R-4.2.1\library\00LOCK\Matrix\libs\x64\Matrix.dll到D:\Program Files\R\R-4.
这个警告信息表示你在从 CRAN 上下载包时出现了读写索引失败的问题,可能是因为你的网络连接问题。然后你从北京外国语大学的镜像中下载并安装了“Matrix”包的最新版本1.5-4。然后你看到程序包已经成功安装但又收到了无法将拆除原来安装的程序包‘Matrix’的警告信息。这个警告信息是告诉你在安装新版本的‘Matrix’包时,R无法自动卸载原来的包。这通常是因为‘Matrix’包正在被占用,无法删除它。解决方法如下:
remove.packages("Matrix") install.packages("Matrix", version = "1.5-4")
安装依赖包
install.packages('rms') library(rms) install.packages('rcssci') library(rcssci)
2. 读取数据
首先,我们需要读取sbpdata数据集,查看数据集信息
data(sbpdata) head(sbpdata,3)
数据集展示:
# A tibble: 3 × 5 gender status age sbp time <dbl> <dbl> <dbl> <dbl> <dbl> 1 1 1 77 101. 177 2 2 1 53 113. 164 3 1 0 70 115. 197
三、基础用法
rcssci
包V1.0版核心函数有3个,rcssci_cox、rcssci_logistic、rcssci_linear,其分别适合于模型为等比例风险cox模型,经典二分类logistic和一般线性模型。前2者y轴为效应量HR、OR;后者y轴为原始y。rcssci包V1.0版Y为OR/HR/y效量非线性剂量关系。rcssci
包在工作目录下自动输出4套RCS双坐标图(PDF版,方便大家后续ppt编辑),图例包括:
- 总P值、非线性趋势P值,切点包括U型、∩型、及L型等等非线性形态切点的自动获取。
- 4套RCS双坐标图分别为:fig.proball.pdf,fig.ushapall.PDF,fig.nshapall.PDF,fig.lshapall.PDF。
- fig.proball.pdf,ABCD子图,均为位置参数refvalue=prob时RCS趋势图。
- fig.ushapall.PDF,ABCD子图,均为位置参数refvalue=prob时可能的更具有解释性的U型(U/J)图。
- fig.nshapall.PDF,ABCD子图,均为位置参数refvalue=prob时可能的更具有解释性的倒U(n)型图。
- fig.lshapall.PDF,ABCD子图,均为位置参数refvalue=prob时可能的更具有解释性的L(L/平原/log/-log/S)型图。rcssci_cox、rcssci_logistic可以输出带直方图或密度图的双坐标图,rcssci_linear则不输出直方图或密度图。
1. 实战cox分析
- 方法参数解释
参数 data 数据集 knot 结=3-7 或按 AIC 最小值自动计算 y 结果=0,1 time 审查时间 covs 协变量,不带“COVS”命令的单变量分析,使用“COVS”命令的多变量分析 prob 位置参数,范围从0-1 x X 轴 filepath 绘图输出的路径。
- 代码演示
rcssci_cox(data=sbpdata, y = "status",x = "sbp",covs=c("age","gender"),time = "time", prob=0.1,filepath= 'D:/log/cox')
- 结果展示
fig.cox_lshapall
fig.cox_lshapall
fig.cox_nshapall
image
fig.cox_proball
image
fig.cox_ushapall
image
2. 实战logistic分析
- 方法参数解释
参数 data 数据集 knot 结=3-7 或按 AIC 最小值自动计算 y 结果=0,1 time 审查时间 covs 协变量,不带“COVS”命令的单变量分析,使用“COVS”命令的多变量分析 prob 位置参数,范围从0-1 x X 轴 filepath 绘图输出的路径。
- 代码演示
rcssci_logistic(data=sbpdata, y = "status",x = "sbp", prob=0.1,filepath='D:/log/logic')
- 结果展示
fig.logistic_lshapall
fig.logistic_nshapall
fig.logistic_proball
fig.logistic_ushapall
3. 实战linear分析
- 方法参数解释
参数 data 数据集 knot 结=3-7 或按 AIC 最小值自动计算 y 结果=0,1 time 审查时间 covs 协变量,不带“COVS”命令的单变量分析,使用“COVS”命令的多变量分析 prob 位置参数,范围从0-1 x X 轴 filepath 绘图输出的路径。
- 代码演示
rcssci_linear(data=sbpdata, y = "status",x = "sbp", prob=0.1,filepath='D:/log/liner')
- 结果展示这里也有四组,差不太多,就不再展示。
四、图形讲解
结果解析:本例研究结果为:P-overall<0.001,P non-linear <0.001,表明总的检验有意义,非线性关联检验也有意义,呈现出平原阈值关联。大致在60岁-80岁,为平原阈值。y为连续型,往往更偏重描述曲线递增或递减趋势。本例从L型断点发现80岁是个断点。