Stata制作限制立方样条(RCS)(2)

本文介绍如何使用Stata软件的Xblc包绘制限制性立方条图,以展示自变量与因变量间的非线性关系。通过具体实例演示了如何生成节点、建立COX回归模型、获取HR值及置信区间,并最终完成图表制作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在许多研究中,识别、呈现和讨论定量或连续协变量(也称为预测变量、自变量或解释变量)与响应变量之间的估计关系非常重要。临床上,因变量和临床的结局有时候不是线性关系,而回归模型有一个重要的假设就是自变量和因变量呈线性关联,因此非线性关系模型用回归分析来拟合受到限制。因此,一个更好的解决方法是拟合自变量与因变量之间的非线性关系,限制性立方(Restricted cubic spline,RCS)就是分析非线性关系的最常见的方法之一。
既往文章《stata两种方法制作限制立方条图》中,我们已经介绍了怎么使用stata包绘制限制立方条图,但是由于xblc升级后,有部分代码无效了,部分粉丝说不会求P值,做不出来等等。今天我们重新来聊一聊,继续使用我们的乳腺癌数据。Xblc包要提前安装好,没有升级的要进行升级,怎么安装看我上一篇文章,这里不多说了。先导入数据,
在这里插入图片描述
我们先来看看数据:
age表示年龄,pathsize表示病理肿瘤大小(厘米),lnpos表示腋窝淋巴结阳性,histgrad表示病理组织学等级,er表示雌激素受体状态,pr表示孕激素受体状态,status结局事件是否死亡,pathscat表示病理肿瘤大小类别(分组变量),ln_yesno表示是否有淋巴结肿大,time是生存时间,后面的agec是我们自己设定的,不用管它。
假设我们想看年龄和死亡率的关系:
首先使用使用四分位数来设置样条的节点, 根据上面的四分位进行设置节点,46 56 67 78就是这么来的

generate all=1
table all, c(freq p25 age p50 age p75 age p95 age)
mkspline age = age, knots(46 56 67 78) cubic

由此得到age1-age3等3个节点
在这里插入图片描述
然后建立COX回归模型,如果你是其他模型的话就在这一步建立其他模型
在这里插入图片描述
通过菜单和命令都可以建模,我就不详细说了,可以看我的其他文章有详细说明

stset time, failure(status==1)
stcox age1 age2 age3 i.ln_yesno

在这里插入图片描述
然后通过下面命令得到一个年龄和HR的表, reference要指派一个参考指标,一般选临床有意义的指标,我这里选50岁为参考
在这里插入图片描述
接下来做出立方条图,更新xblc包主要在这个命令变化了,所以有些人做不出来

levelsof age if inrange(age, 35,79)

在这里插入图片描述
在at里面要把上个命令生成的数字全部复制进去

xblc age1-age3, covname(age) at(35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79) eform reference(50) line generate(pa hr lb ub)

在这里插入图片描述
除了生成图,还生成了pa hr lb ub这几个指标
在这里插入图片描述
我们可以通过这几个指标进一步做图

twoway (line hr pa, sort) (line lb ub pa, sort lc(black black) lp(- -)),legend(off) yscale(log) ylab(0.25 .5 1 2 5) xtitle(Age) ytitle(Hazard ratio) yline(1) title(Effect of age) subtitle (Adjusted for treatment)

在这里插入图片描述
很多人不会求P值,其实是用到testparm函数

testparm age2 age3

在这里插入图片描述
P值为0.0488,原假设是线性关系,我这里有点尴尬,到底是算小于0.05还是等于0.05呢,看临床需要吧

有些人不会怎么把P值添加到stata图片中,其实非常简单,stata有个图片编辑器,我们打开它
点反键调出菜单
在这里插入图片描述
点击文字编辑
在这里插入图片描述
填入P值
在这里插入图片描述
最后成图
在这里插入图片描述
觉得有用的话请把它分享给有需要的人

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天桥下的卖艺者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值