imd 统计教程 · RCS非线性建模
← 教程首页 返回本模块

「转」Med Research | rcssci,欢迎引用:限制性立方样条可视化R包

Med Research实战医学统计2025-08-14 10:29:40江西

 


Med Research |rcssci:一种用于限制性立方样条可视化的R包


2025年7月,广东省人民医院 广东省心血管病研究所聂志强团队在Med Research发表了题为“rcssci: An R Package for Visualization of Restricted Cubic Spline”的文章。

rcssci是一款新型限制性立方样条(RCS)曲线优化R包。这一工具通过生成兼具统计严谨性与艺术美感的密度分布,能够精确揭示不同效应大小下RCS曲线间的关联性,并直观呈现关键图形元素的参考阈值以及经形态优化的切点值。

期刊Med Research
第一作者:徐鸿彬(助理研究员)、陈晨(副主任医师)
参与作者:卢祖洵 教授
通讯作者:聂志强 副主任医师(niezhiqiang@gdph.org.cn
主要单位: 广东省人民医院广东省心血管病研究所、华中科技大学同济医学院公共卫生学院、广州医科大学附属广州市妇女儿童医疗中心


亮点

1.多模型适用性与自动化功能

rcssci提供了多种函数,支持不同类型模型和分析需求,增强其在科研中的应用范围。rcssci支持多种回归模型,包括等比例风险Cox回归、Logistic回归、线性回归和Quasi-Poisson回归。用户可通过从rcssci包中的 rcssci_cox 、 rcssci_logistic 、 rcssci_linear 和 rcssci_quasipoisson 等函数,自动生成限制性立方样条(RCS)图形,Y轴可选择为OR、HR、RR等效应量指标,极大简化非线性关系的探索过程。

2.结点自动选择与模型优化

该包可自动根据AIC值最小原则来选择最佳结点(knot)数量,或由用户指定结点数。结点位置通常基于连续变量的Q分位数分布,确保样条曲线在整个取值范围内平滑过渡。

3.多样化曲线形态识别

rcssci可识别多种非线性关系形态,如U型、倒U型、J型、直线型等型态,亦可识别出呈现上升趋势或下降趋势等的线性关联,适用于多种研究场景。其中,在非线性关联中,该包额可以探索曲线的切点值(cutoff-point),即将x变量进行2分类或3分类之后再进行后续分段或分组分析。

4.高质量可视化输出

该包生成的RCS图形具有高质量的视觉效果,支持输出为多种格式,便于在科研论文和报告中使用。rcssci包在工作目录(setwd对应的文件夹)下自动输出4套RCS双坐标图PDF版,以方便使用者后续可在ppt中进行编辑。图例包括总P值、非线性趋势P值,切点包括U型、∩型、L型等非线性形态切点的自动获取。4套RCS双坐标图分别为:fig.proball.pdf,fig.ushapall.PDF,fig.nshapall.PDF,fig.lshapall.PDF。rcssci_cox、rcssci_logistic可以输出带直方图或密度图的双坐标图,rcssci_linear则不输出直方图或密度图。


摘要

rcssci是一款新型限制性立方样条(RCS)曲线优化R包,旨在显著增强传统RCS曲线的视觉呈现效果。这一先进的统计可视化工具,通过生成兼具统计严谨性与艺术美观度的密度分布图,能够精确揭示不同效应量RCS曲线之间的适宜关联,并直观呈现关键图形元素,如OR/ RR/ HR的参考阈值及经形态优化的最佳切点值。该包安装便捷且界面友好,是研究者不可或缺的分析工具,有助于深入理解连续性暴露与结局之间的可视化关系,为后续更复杂的机器学习相关性分析奠定基础。rcssci包可免费获取使用,但使用需引用本论文(Xu H B, Chen C, Lu Z X, et al. rcssci: An R Package for Visualization of Restricted Cubic Spline[J]. Med Research, 2025.)。有关安装流程、错误修复及持续更新的详细指导,请查阅微信公众号“实战医学统计”发布的rcssci包相关推文。


引言

现有研究通过线性回归、Logistic回归、Cox回归等回归方法来探讨连续型自变量与因变量的关系,但上述模型要求合适的链接函数g(y),同时保证自变量和因变量须服从一般或广义线性前提条件。需要注意的是,当上述假设不成立时,可采用平滑函数来探讨两者间的线性或非线性关联。非线性关系可采用核平滑、多项式平滑和样条平滑等工具实现。其中核平滑是使用一组局部权重来生成平滑的估计,在实际应用中很难实现。多项式平滑是最简单的函数平滑结构,但该方法只是一种粗略估计,可能存在过拟合、共线性、全局性等诸多问题。样条(spline)本质上是一个分段多项式,它一般要求每个分段点上连续且二阶可导,以此保证曲线的平滑性。样条的适用条件包括:数据x与y关系不符合直线或广义线性的前提;数据多项式回归R2低;某个节点前后趋势发生明显改变。

限制性立方样条(RCS)本质上是连续平滑的分段三次多项式。它是通过选择节点的位置和数量,拟合样条函数RCS(x),使得连续变量x在整个取值范围内呈现光滑的曲线。RCS通过样条函数RCS(x)转换自变量x后,根据因变量的分布类型选择合适的链接函数,进而拟合模型g(y)=常数项+RCS(x)+其他自变量,其中g为链接函数。节点的位置对样条函数的拟合影响较小,一般根据连续变量的百分位数选择。节点数量对样条函数的影响较大,决定曲线形状。研究显示,节点数量为3~5时样条函数拟合较好,一般推荐knot=4。RCS形状受 knots影响很大,knot越多曲线约复杂。由此可见,RCS 只能用来判断非线性趋势,为切点选择提供线索,而不能精确提供切点。此外,现有RCS图形不够优美,也没有OR/ HR参考线条及不同形态切点(cutoff)的选取介绍,仅有的R包ggrcs也过于简单,且密度图错误Y2轴非动态比例。为此,本研究开发了rcssci包以逐步探索解决上述不足。为系统解决这些局限,rcssci包应运而生,旨在提升基于RCS探索分析的精确度与图形复杂度,且每个rcssci命令可生成四种不同风格的RCS图。


实例

rcssci包V 0.4.0的核心函数有4个: rcssci_cox 、 rcssci_logistic 、 rcssci_linear 、 rcssci_quasipoisson 。本文使用自带数据对上述四个函数进行分析,不同函数的使用示例如下。

实例一 rcssci_cox的使用

#一次输出4个PDF图,设置knot=4(推荐3或4)则手动建模,注意,此时需要前期类似研究或者文章中多个rcs表众数knot。也可以使用命令rcs_cox.prob,rcs_ cox.lshap,rcs_ cox.nshap,rcs_ cox.ushap进行单个图的选择性输出(图1)。该函数的相应代码为:
rcssci_cox(knot=4,data=sbpdata, y = "status",x = "sbp",time="time",covs=c("age","gender"),prob=0.1,filepath= "bugfig")

过程解析:rms包做RCS时,默认prob=0.5中位数。但是很多时候图形跑出来并非均衡对称。此时,灵活的rcssci可仿照模板论文设定prob位置参数(本研究建议设定prob=0.1)进行趋势与cutoff的自动输出。本例AIC最小原则,自动选择knot=4,采用默认Q分位数为0.05、0.35、0.65、0.95。

结果解析:在setwd()工作路径下,自动输出4套RCS双坐标图分别为:fig.proball.pdf,fig.ushapall.PDF,fig.nshapall.PDF,fig.lshapall.PDF。本例的结果为:P-overall<0.001,P non-linear <0.001,表明总的检验有意义,非线性关联检验也有意义,呈现出Ushap关联。由于最高点不呈现n型分布,本数据不适合采用n型态。由于右侧拖尾阴影过高且翘尾,本数据也不适合采用L型,prob=0.1更适合直线下降或上升,故案例文件最终采用U型曲线图。RCS分析可为x是否存在非线性关联与型态,及其切点,为后续cox分析中x的P-trend,或四分位,或2分类提供分类依据。这里需要注意,本例仅作为数据演示,模拟数据不符合PH假设时,后续仍需要进行其他非等比例cox分析。

图1 rcssci_cox分析结果
(A)基线数据集(sbpdata)。(B)比例风险假设的Schoenfeld残差。全局检验p<0.001,表明比例风险假设被违反。(C)限制性立方样条模型显示收缩压(SBP)与风险比(HR)之间存在非线性关联,p-overall<0.001,p-nonlinear<0.001。(D)限制性立方样条模型显示收缩压(SBP)与风险比(HR)之间呈L形关联,总体p值<0.001,非线性p值<0.001。

实例二 rcssci_logistic的使用

rcssci_logistic命令实现logistic分析的RCS绘制,prob推荐0.1,不写默认0.5。在setwd()路径下,自动输出4套RCS双坐标图分别为:fig.logistic_proball.pdf,fig.logistic_ushapall.PDF,fig.logistic_nshapall.PDF,fig.logistic_lshapall.PDF(图2)。相应代码为:
sbpdata <- rcssci::sbpdata pacman::p_load(rcssci) #一次输出4个PDF图,不设置knot则默认根据AIC最小全自动建模 rcssci_logistic(data=sbpdata, y = "status",x = "sbp",covs=c("age","gender"),prob=0.1,filepath= "bugfig") #一次输出4个PDF图,设置knot=4(推荐3或4)则手动建模,注意,此时需要前期类似研究或者文章中多个RCS表众数knot rcssci_logistic(knot=4,data=sbpdata, y = "status",x = "sbp",covs=c("age","gender"),prob=0.1,filepath= "bugfig")

图2 rcssci_logistic分析结果
(A)限制性立方样条模型显示收缩压(SBP)与风险比(HR)之间存在非线性关联,总体p值<0.001,非线性p值<0.001。(B)限制性三次样条模型显示收缩压(SBP)与危险比(HR)之间存在U型关联,总体p值<0.001,非线性p值<0.001。

实例三 rcssci_linear的使用

#一次输出4个PDF图,设置knot=4(推荐3或4)则手动建模,注意,此时需要前期类似研究或者文章中多个rcs表众数。相应代码为:
knotrcssci_linear(knot=4,data=sbpdata, y = "status",x = "sbp",covs=c("age","gender"),prob=0.1,filepath= "bugfig") 。当然,也可以使用命令 rcs_linear.prob , rcs_linear.lshap , rcs_linear.nshap , rcs_linear.ushap 进行单个图的选择性输出。

实例四 rcssci_quasipoisson的使用

首先加载rcssci v0.4.0包,通过命令 pacman::p load(rcssci) 予以实现。然后使用 rcssci_quasipoisson 命令,一键搞定效应值为RR的poisson分析的RCS绘制。prob推荐0.1,不写默认0.5。在setwd()工作路径下,自动输出4套RCS双坐标图分别为:fig. quasipoisson_proball.pdf,fig. quasipoisson _ushapall.PDF,fig. quasipoisson_nshapall.PDF,fig. quasipoisson_lshapall.PDF。当然,也可以使用命令 rcs_logistic.prob , rcs_logistic.lshap , rcs_logistic.nshap , rcs_logistic.ushap 进行单个图的选择性输出。
相应代码如下:
sbpdata <- rcssci::sbpdata pacman::p_load(rcssci) #一次输出4个PDF图,不设置knot则默认根据AIC最小全自动建模 rcssci_quasipoisson(data=sbpdata, y = "status",x = "sbp",prob=0.1,filepath="./temp") #一次输出4个PDF图,设置knot=4(推荐3或4)则手动建模,注意,此时需要前期类似研究或者文章中多个RCS表众数knot rcssci_quasipoisson(knot=4, data=sbpdata, y = "status",x = "sbp",prob=0.1,filepath="./temp") #单个图单独输出,例如 rcs_quasipoisson.prob(knot=4,data=sbpdata, y = "status",x = "sbp",covs=c("age","gender"),prob=0.1,filepath= "bugfig") #需要考虑某cov多参考水平,则使用as.factor即可 rcs_quasipoisson.ushap(knot=4,data=sbpdata, y = "status",x = "sbp",covs=c("age", as.factor("gender")),prob=0.1,filepath= "bugfig")
除了上述四个函数之外,本研究也给出了亚组RCS和交互RCS曲线的绘制实例。

实例五 亚组RCS

现有文献中绝大部分并未详细描写究竟是ab 还是arcs(b)的交互,描述较为清楚的是ab,即在glm模型中直接计算主效应+相乘交互项ab,判断是否存在相乘交互。而在Harrel编写的《Regression Modeling Strategies》书中案例是arcs(b)。本文作者计算后发现二者的统计p值相距甚远,而且arcs(b)的解释会比ab更加困难。由于arcs(b)并未推广,且与ab这一主流交互项存在矛盾,故本文依然遵从主流的a*b进行后续分析。

正确的RCS亚组曲线,当变量多时可先计算a*b相乘交互项,若有意义,后续再分亚组逐步绘制曲线。当然也可以直接全部分析亚组后再一起呈现。注意:请勿直接用rms包或ggrcs包的group参数绘制RCS亚组图!要是不会将2条曲线绘于一幅图中,可使用subset函数提取亚组数据集后,再使用rcssci包函数进行分别绘制。

以rcs_cox.group函数为例,与rcs_cox.prob等类似,rcssci包可一键输出分亚组曲线,亚组overall、nonlinear、interaction P值(图3)。相应代码如下:
rcs_cox.group (data=indf,time= “CHDMl_scxf_timecox" ,y="CHDMI_ scxf",x="SBP",prob=0.1,group="chdmipcistrokehf_oldbaseline", knot=4,covs=c("age65","Female","High_school_graduated"),flepath="D:/test")
图3 rcs_cox的亚组分析结果

实例六 交互RCS

通过检索发现,现有顶尖学术期刊有发表涉及交互RCS的研究,例如Journal of the American College of Cardiology的一项研究展示了三因素交互的RCS交互图,以及分层后x(二分类)z交互表。而JAMA Cardiology的一项研究展示了两因素交互RCS图(连续xz)。
交互RCS用于探究和解释变量之间的相互作用,尤其适用于x=研究治疗组(比如是否接受药物治疗,干预0, 1二分),或x=感兴趣连续因素,与某个也感兴趣的连续变量z(常见的有年龄、血压、BMI等)之间的相乘交互效应。该方法通过采用RCS来对连续变量进行灵活模型flexibly model (带RCS参数)或者log-linear interaction model(不带RCS参数),使研究者能够精确评估治疗效果随着连续变量不同水平的变化情况。


方法

rcssci包核心函数有4个, rcssci_cox 、 rcssci_logistic 、 rcssci_linear 和 rcssci_quasipoisson ,分别适合于模型为等比例风险cox模型,经典二分类logistic、一般线性模型和广义线性模型。前两个函数的y轴为效应量HR、OR,第三个函数的y轴为原始y,最后一个函数的y轴为效应量RR。rcssci包中,y为OR/HR/y非线性剂量关系,本研究将拟合理想的结果概况为:首先,剂量关联呈现出典型的非线性U型、倒U型、J型、直线型等型态。其次,线性关联,呈现上升趋势或下降趋势。第三,非线性关联探索cutoff,将x变量2分、3分类,再进行后续分段或分组分析。rcssci包在工作目录(setwd对应的文件夹)下自动输出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 则不输出直方图或密度图。


结论

本文提出了一种新型的RCS曲线优化方法,为模型精化和解释清晰度提供了全面框架。本研究证实,这种可视化技术提升了传统RCS图的美学一致性,生成既具有统计学意义又提升视觉美观度的密度分布。该方法揭示了不同效应量的RCS曲线之间的细微相关性,同时突出了关键要素,包括OR/RR/HR参考阈值和形态学优化的切点。在应用先进机器学习技术处理复杂非线性关系之前,rcssci作为不可或缺的探索性工具,通过图形分析揭示连续暴露与结局之间的可视化关联。值得注意的是,基于RCS的剂量-反应关系本质上依赖于结点位置和数量,这限制了更高阶参数解释的整合。增加结点分配和自由度会成比例地放大模型复杂性,往往损害解释透明度。此外,RCS 函数的内在复杂性要求严格的操作方法以减轻因编程不准确性引起的潜在偏倚。


作者简介


聂志强(通讯作者)
现任广东省人民医院(广东省心血管病研究所)副主任医师,流行病与卫生统计学博士(毕业于华中科技大学同济医学院公共卫生学院)。其研究聚焦于临床研究、生物统计与机器学习及环境暴露组学交叉领域。科研能力突出,主持广东省自然科学基金面上项目、广东省医学科学技术研究基金项目等多项课题,并作为骨干参与多项国家重大科技支撑计划。近五年以第一/共一作者身份发表SCI论文36篇,累计影响因子达210分,其中5篇影响因子大于10分,19篇大于5分;代表作发表于 JAMA Network Open (1篇)、Environment International (2篇)、Science of the Total Environment (2篇)等知名期刊。同时作为统计师为包括 Lancet Oncology、Circulation、Intensive Care Medicine、Radiology等顶级期刊的多篇高影响力论著提供数据分析支持。担任中华医学会心血管分会临床研究学组委员、广东省预防医学会流行病学专业委员会青年委员、粤港澳大湾区高血压联盟委员等学术职务,并受邀为 Cardiovascular Diabetology、Science of The Total Environment、BMC medicine、Chest、Computers in Biology and Medicine、The Lancet Regional Health、Clinical Epidemiology、Chinese Medicine等国际权威期刊审稿。积极推动方法学应用,开发了智荟统计软件、rccsci、interactsci等实用软件与R包,主编《使用mlr3应用机器学习》专著,并通过“实战医学统计”微信公众号(关注者超4万+),实战医学系列统计精品课程ABC(《实战医学统计精品课程》A款-1折!精美课件一键R包深度统计预测模型公共数据库解析复现),分享统计专业知识。

资讯

文章发表


期刊简介

《Med Research》是由 Wiley 与本领域数十位杰出华人科学家共同合作出版的综合性医学期刊, 期刊由香港大学袁硕峰教授和中南大学刘志雄教授担任主编,致力于推动基础科学、转化研究与临床实践的深度融合
作为 Wiley 出版集团旗下的全新医学综合类期刊,《Med Research》对标国际一流医学期刊如Med、eBioMedicine 和 eClinicalMedicine, 涵盖临床医学与基础医学的各个学科领域。 期刊预计将获得超过20分的影响因子。其核心目标是发表全球医学研究领域前 10% 的高影响力论文,推动医学前沿研究的发展。《Med Research》旨在通过提供高水平的学术平台,传播创新性研究成果、临床观察以及深入的学术讨论,从而提升全球患者的医疗护理质量。期刊将刊登多种类型的文章,包括原创研究、综述、评论和通讯, 涵盖生物医学科学的各个领域,重点关注对人类健康和疾病具有重大影响的研究成果。为鼓励和支持更多高质量研究的发表,在期刊成立的前三年,作者无需支付任何版面费用, 即可发表其研究成果。


期刊信息

  • ? ?? 期刊主页: https://onlinelibrary.wiley.com/journal/29984971
  • ? ?? 出版社: https://www.wiley.com
  • ? ?? 邮箱: office@medresearch.org.cn
  • ? ?? 公众号:Med Research