网易首页 > 网易号 > 正文 申请入驻

非线性关系的分析方法---限制性立方样条(Restricted cubic spline,RCS)

0
分享至

作者:何强生,审稿:王九谊

在医学研究中,我们经常构建回归模型来分析自变量和因变量之间的关系。事实上,大多数的回归模型有一个重要的假设就是自变量和因变量呈线性关联,这个条件实际很难满足。常见的解决方法是将连续变量分类,但类别数目和节点位置的选择往往带有主观性,并且分类往往会损失信息。因此,一个更好的解决方法是拟合自变量与因变量之间的非线性关系,限制性立方(Restricted cubic spline,RCS)就是分析非线性关系的最常见的方法之一

近年来在Lancet、BMJ等杂志经常见到利用限制性立方样条来拟合非线性关系。在之前医咖会R语言入门课程第18课《展示非线性关系》中也简单介绍过限制性立方样条的应用()。

本文将以Lancet Diabetes Endocrinol杂志2018年的文章 《Association of BMI with overall and cause-specific mortality: a population-based cohort study of 3.6 million adults in the UK》 和作者模拟的数据为例,带领大家学习限制性立方样条的使用和结果解读。

在这篇文章中,作者使用限制性立方样条绘制BMI与死因之间的关系,第一个图形如下:

从图中我们可以看到,不管是在全人群还是非吸烟人群中,BMI与all-cause, communicable, and non-communicable disease mortality之间呈J型关系,死亡率最低点的BMI大概是25Kg/m2。另外,对于injuries and external causes mortality而言,随着BMI的增加,死亡率在降低,但当BMI超过27Kg/m2继续增加时,死亡率开始增加,但是增加幅度很小。

通过以上的例子,我们可以看到,使用限制性立方样条,可以很清晰的描述自变量与因变量之间的关系。事实上,限制性立方样条的应用范围非常广,凡是想描述自变量和因变量的关系都可以在回归模型中加入限制性立方样条,除了以上的例子中的COX回归外,还可以应用到线性回归、Logistic回归、以及Meta分析中剂量反应关系的Meta回归等。

什么是立方样条?

回归样条(regression spline)本质上是一个分段多项式, 但它一般要求每个分段点上连续并且二阶可导,这样可以保证曲线的平滑性。而限制性立方样条是在回归样条的基础上附加要求:样条函数在自变量数据范围两端的两个区间内为线性函数。

在利用限制性立方样条绘制曲线关系时,通常需要设置样条函数节点的个数(k)和位置(t i )。绝大多数情况下, 节点的位置对限制性立方样条的拟合影响不大, 而节点的个数则决定曲线的形状, 或者说平滑程度。当节点的个数为2时, 得到的拟合曲线就是一条直线,大多数研究者推荐的节点为3-5个

在 《Regression Modeling Strategies》 这本书中,Harrell建议节点数为4时,模型的拟合较好,同时可以兼顾曲线的平滑程度和避免过拟合造成的精度降低。而当样本量较大时,例如因变量为未删失的连续变量并且大于100时,5个节点是更好的选择。小样本(如n<30)可以选择3个节点。以下是Harrell推荐的节点数和相应的节点位置,大家可以参考。

案例说明(模拟数据)

目前SAS、STATA、R等软件都可以进行限制性立方样条分析。基于画图的方便,我们以R语言为例进行说明。首先参照rms包,生成一个模拟数据集,包括性别(sex),年龄(age)以及生存时间(time)和结局变量(death)。

若想分析年龄和生存率之间关系,传统的方法可以在Cox回归中将年龄作为连续变量处理,也可以对年龄进行分组,这样的做法都无法更直观的呈现年龄与死亡风险之间的关联。以下我们用限制性立方样条来分析年龄与死亡风险之间的关系

#####加载所需要的包

library(ggplot2)

library(rms) #####立方样条所需要的包

###参照rms包,先生成一个模拟数据集,包括性别(sex),年龄(age)以及生存时间(time)和结局变量(death);

n <- 1000

set.seed(731)

age <- 50 + 12*rnorm(n)

label(age) <- "Age"

sex <- factor(sample(c('Male','Female'), n, rep=TRUE, prob=c(.6, .4)))

cens <- 15*runif(n)

h <- .02*exp(.04*(age-50)+.8*(sex=='Female'))

time<- -log(runif(n))/h

label(time) <- 'Follow-up Time'

death<- ifelse(time <= cens,1,0)

time <- pmin(time, cens)

units(time) <- "Year"

data<-data.frame(age,sex,time,death)

#######开始正式画图

dd <- datadist(data) #为后续程序设定数据环境

options(datadist='dd') #为后续程序设定数据环境

####拟合cox回归模型,注意这里的R命令是“cph”,而不是常见的生存分析中用到的“coxph"命令

fit<- cph(Surv(time,death) ~ rcs(age,4) + sex,data=data)

dd$limits$age[2] <- 50 ###这里是设置参考点,也就是HR为1的点,常见的为中位数或者临床有意义的点

fit=update(fit)

HR<-Predict(fit, age,fun=exp,ref.zero = TRUE) ####预测HR值

P1<-ggplot(HR)#####用ggplot2直接画图

P1

######自己画图

P2<-ggplot()+geom_line(data=HR, aes(age,yhat),linetype="solid",size=1,alpha = 0.7,colour="red")+

geom_ribbon(data=HR, aes(age,ymin = lower, ymax = upper),alpha = 0.1,fill="red")

######进一步设置图形

P2<-P2+theme_classic()+geom_hline(yintercept=1, linetype=2,size=1)+

labs(title = "RCS", x="age", y="HR (95%CI)")

P2

####如果想看是否存在非线性关系,可以使用anova()

anova(fit)

可以看到age整体是有意义的(包括线性或者非线性关联),然后看P-Nonlinear =0.0168<0.05,这里我们可以说年龄与死亡风险之间存在非线性关联。

如果自变量与关注的结局变量存在非线性关系,如何在文章中对结果更详细的描述呢,建议大家可以参照上文中提到的Lancet的文章。

个人还发现BMJ的一篇文章 《Predicted lean body mass, fat mass, and all cause and cause specific mortality in men: prospective US cohort study》 对于非线性关系描述的非常好,摘抄一部分放在这里供大家参考:

In figure 1, we used restricted cubic splines to flexibly model and visualize the relation of predicted fat mass and lean body mass with all cause mortality in men. The risk of all cause mortality was relatively flat until around 21 kg of predicted fat mass and then started to increase rapidly afterwards (P for non-linearity <0.001). The average BMI for men with 21 kg of predicted fat mass was 25. Above 21 kg, the hazard ratio per standard deviation higher predicted fat mass was 1.22 (1.18 to 1.26). Regarding the strong U shaped relation between predicted lean body mass and all cause mortality, the plot showed a substantial reduction of the risk within the lower range of predicted lean body mass, which reached the lowest risk around 56 kg and then increased thereafter (P for non-linearity <0.001). Below 56 kg, the hazard ratio per standard deviation higher predicted lean body mass was 0.87 (0.82 to 0.92).

那么在方法部分如何描述使用了限制性立方样条,还是可以参照这篇文章: We also used restricted cubic splines with five knots at the 5th, 35th, 50th, 65th, and 95th centiles to flexibly model the association of lean body mass, fat mass, and BMI with mortality.

以上就是对限制性立方样条的简单介绍,原理和操作都比较简单。但加入到分析中,能更直观的描述感兴趣的自变量和因变量之间的关系,发现更有趣的点,可以为文章增色不少。对R不熟悉也不要紧,在sas和stata中也可以实现,感兴趣的同学可以去尝试。

[1] Bhaskaran K, Dos-Santos-Silva I, Leon DA, Douglas IJ, Smeeth L. Association of BMI with overall and cause-specific mortality: a population-based cohort study of 3·6 million adults in the UK. Lancet Diabetes Endocrinol. 2018;6(12):944–953. doi:10.1016/S2213-8587(18)30288-2.

[2] Lee DH, Keum N, Hu FB, et al. Predicted lean body mass, fat mass, and all cause and cause specific mortality in men: prospective US cohort study. BMJ. 2018;362:k2575. Published 2018 Jul 3. doi:10.1136/bmj.k2575

[3] 罗剑锋, et al. "限制性立方样条在非线性回归中的应用研究%The Application of Restricted Cubic Spline in Nonlinear Regression." 中国卫生统计 027.003(2010):229-232.

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
同是穆斯林都信真主,爱吃烤肉,土耳其和阿拉伯为何相互看不顺眼

同是穆斯林都信真主,爱吃烤肉,土耳其和阿拉伯为何相互看不顺眼

孤痞野猫
2026-06-27 17:08:05
戴安娜王妃的侄女们亮相再次引起轰动,蓝宝石项链引人注目

戴安娜王妃的侄女们亮相再次引起轰动,蓝宝石项链引人注目

过期少女致幻录
2026-07-03 21:51:06
168厘米硅胶仿生人上架预售,30多公斤,还会记住你的每一句话

168厘米硅胶仿生人上架预售,30多公斤,还会记住你的每一句话

泠泠说史
2026-07-02 11:22:10
曾志伟单干拍新剧,TVB老将集体出走,港娱生态悄悄变了

曾志伟单干拍新剧,TVB老将集体出走,港娱生态悄悄变了

乡野小珥
2026-07-04 17:44:35
江苏环保集团原董事长方斌斌被查半年后,中吴公司董事长王恺被查

江苏环保集团原董事长方斌斌被查半年后,中吴公司董事长王恺被查

江南江南
2026-07-04 17:14:39
4换1!火箭达成交易!彻底甩掉水货前锋

4换1!火箭达成交易!彻底甩掉水货前锋

篮球实战宝典
2026-07-04 01:38:35
朱珠一家意大利被偶遇:最高级的老钱风,是活成了自己

朱珠一家意大利被偶遇:最高级的老钱风,是活成了自己

TVB的四小花
2026-07-02 09:13:51
美媒评今夏5大溢价新合同!凯斯勒4年1.3亿排第2 吹杨2.12亿居首

美媒评今夏5大溢价新合同!凯斯勒4年1.3亿排第2 吹杨2.12亿居首

罗说NBA
2026-07-04 05:59:43
现场画面!美媒:美空军多架B-52轰炸机从英国费尔福德皇家空军基地撤离

现场画面!美媒:美空军多架B-52轰炸机从英国费尔福德皇家空军基地撤离

环球网资讯
2026-07-02 16:01:24
赛格最初创始人公开举报西安赛格:赵贵亲口说,我拿着你的钱跟你打官司,耗死你,你能搞的过我?

赛格最初创始人公开举报西安赛格:赵贵亲口说,我拿着你的钱跟你打官司,耗死你,你能搞的过我?

贴小君
2026-07-04 13:12:59
“尖叫瓶子”的邪修用法太厉害了!网友:尖叫可千万别涨价啊

“尖叫瓶子”的邪修用法太厉害了!网友:尖叫可千万别涨价啊

甜茶极简记
2026-07-03 13:06:09
俄下届总统可能被敲定,普京恐提前“下岗”?中方或成最大赢家?

俄下届总统可能被敲定,普京恐提前“下岗”?中方或成最大赢家?

孤城落叶
2026-07-03 16:15:53
HTC手机不死:但公司已转型的你快不认识

HTC手机不死:但公司已转型的你快不认识

快科技
2026-07-03 09:24:05
宝马X5内饰首曝:2027款不要副驾屏,仪表台反而更清爽

宝马X5内饰首曝:2027款不要副驾屏,仪表台反而更清爽

体育硬核说
2026-07-03 00:53:10
梅西再写世界杯进球纪录 佛得角球迷:我们也一样创造了历史|封面头条

梅西再写世界杯进球纪录 佛得角球迷:我们也一样创造了历史|封面头条

封面新闻
2026-07-04 14:45:50
北京一女子称捐韩红慈善基金会57元退款成功,网友:何必呢

北京一女子称捐韩红慈善基金会57元退款成功,网友:何必呢

映射生活的身影
2026-07-03 22:09:51
2026年广东9万本科滑档生涌入专科,填报志愿最该避开哪三大坑?

2026年广东9万本科滑档生涌入专科,填报志愿最该避开哪三大坑?

音乐时光的娱乐
2026-07-04 18:37:58
137亿易主紫金:从小酒家到首富,肖永明败局揭秘

137亿易主紫金:从小酒家到首富,肖永明败局揭秘

一号位故事
2026-07-04 13:40:43
巴西美女问我一个问题:你们中国人,为什么非要自己造所有东西?

巴西美女问我一个问题:你们中国人,为什么非要自己造所有东西?

步论天下事
2026-07-03 16:13:36
韬定律更新!华为展示麒麟2026-2029 主频提升明显:功耗降近50%、已开始流片

韬定律更新!华为展示麒麟2026-2029 主频提升明显:功耗降近50%、已开始流片

快科技
2026-07-04 14:36:04
2026-07-04 19:51:00
医咖会
医咖会
生动有趣的形式传递医学新进展
2885文章数 11015关注度
往期回顾 全部

科技要闻

韬定律论文V2版,充工程细节和实测数据

头条要闻

特朗普:美国很善良 给伊朗一周的时间办丧事

头条要闻

特朗普:美国很善良 给伊朗一周的时间办丧事

体育要闻

揭法国锋线最大优势 有人比姆巴佩还快?

娱乐要闻

白鹿打戏抠图惹非议 连累丞磊遭扒皮

财经要闻

韩国股市杠杆失控:450亿美元资金狂飙

汽车要闻

方程豹钛9内饰曝光 用上了长联屏设计/下半年上市

态度原创

教育
时尚
房产
家居
军事航空

教育要闻

南阳2026年中考成绩将于7月5日公布!

万万没想到,30多年后最让我佩服的还是她!

房产要闻

总裁空缺17个月、现金缺口超1000亿:金融局“局外人”入局万科

家居要闻

传奇筑 日常诗

军事要闻

普京宣布俄军“完全解放”卢甘斯克

无障碍浏览 进入关怀版