限制性立方样条RCS

  • 传统的回归分析(如线性回归或二元 Logistic 回归)中,通常会假设自变量X 和因变量Y的关系是一条直线。但现实世界中,很多关系是弯曲甚至是波浪形的。RCS的作用就是把这些复杂的曲线关系平滑地画出来,并用科学的方法告诉我们“弯曲”是否显著。RCS时其会涉及一个关键的术语即节点(Knot),其表示把直线在哪里“折”一下或者“拐”个弯,其用来捕捉数据里的转折点。RCS通过在关键位置(Knot)打几个关节,让统计模型学会“拐弯”,从而更真实地画出变量之间的曲线关系。

限制性立方样条RCS案例

  • 1、背景

    当前有一份关于“心脏病影响因素“研究数据,共计303个样本,部分数据如下:

    数据涉及年龄,性别,胸痛类型,静息血压,胆固醇水平和诊断情况。预期年龄与是否患心脏病之间具有非线性关系。而且希望性别、静息血压和胆固醇这3项作为协变量一并纳入RCS模型中。

  • 2、理论

    SPSSAU中进行RCS时,共支持几项设置,分别是模型类型,节点数量和X参考点。如述:

    参数 说明
    回归类型 共支持Linear线性、二元Logistic回归、Cox回归、Poisson回归和负二项回归
    节点数量 默认是4个节点,可选为3/4/4/5/6/7个节点
    X参考点 默认是以X的中位数作为基准点,研究者可自行进行设置

    关于‘回归类型’,当因变量Y的数据类型为连续变量时则使用‘Linear线性’,当因变量Y的类型为二分类0/1变量时则应使用‘二元Logistic回归’,如果是明确的Cox回归数据则使用Cox回归,如果因变量是离散数据可使用Poisson回归或负二项回归。特别提示的是,当为Cox回归时,因变量共有两项,分别是状态变量和时间变量。

    ‘节点数量’上,通常建议为4个节点,当然研究者可结合数据样本量情况选择,比如样本量较少时可考虑仅为3个节点。研究者也可尝试对比不同节点时模型的质量情况,通常对比AIC或BIC指标值来判断,AIC和BIC值用于多次分析时的对比,此两指标值越低越好;如果多次进行分析,可对比此两个值的变化情况,综合说明模型构建的优化过程。

    关于‘X参考点’,其是设定的‘基准线’,用来观察其他数值相对于它的效应(风险)变化,其关系到RCS样条图的解读,默认情况下以X最普通的值即其中位数作为‘X参考点’即可,当然研究者可结合实际情况设置比如X的最小值作为‘X参考点’,‘X参考点’的设置仅会影响到RCS样条图的实际意义解读,其并不会影响到其它拟合指标等。

  • 3、操作

    当前研究‘是否心脏病’的非线性关系,使用年龄age作为核心研究变量,因变量Y(target)为是否患病。共有3个协变量,分别是性别、静息血压和胆固醇。由于因变量target为是否患病,其为01二分变量,因此选择二元Logistic回归。X参考点不设置即默认为age的中位数值作为参考点。RCS节点数量默认为4,如下图所示:

  • 4、SPSSAU输出结果

    SPSSAU共输出6个表格和1个图,如下述:

    说明
    RCS立方样条基本参数 基本参数值的设置汇总表格
    RCS样条模型似然比检验结果 模型有效性的拟合优度检验
    RCS样条模型系数结果 RCS样条模型各项,包括自变量,样条和协变量的回归系数显著性检验等
    模型整体非线性关系检验 模型整体非线性关系的检验情况
    RCS立方样条图 RCS立方样条图直观展示X和Y的关系情况
    关键拐点识别 RCS立方样条图的关键拐点检测结果
    样本缺失情况汇总 分析样本数据缺失情况汇总
  • 5、SPSSAU文字分析

    本次分析时由于因变量为0/1变量,因此选择二元logistic回归,并且默认RCS节点个数为4,并且以自变量年龄的中位数作用为基准点。

    模型似然比检验用于对整体模型有效性进行分析,即针对RCS样条模型的有效性先进行判断,首先对p 值进行分析,如果该值小于0.05,则说明模型有效,反之则说明模型无效;从上表格可以看到本次的p 值=0.00<0.05,意味着RCS样条模型构建有意义。另外,AIC和BIC值用于多次分析时的对比;此两值越低越好;如果多次进行分析,可对比此两个值的变化情况,综合说明模型构建的优化过程。

    当模型构建有意义时,其意义着模型可以使用,但并不意味着有着非线性关系,接着查看非线性关系的显著性和‘模型整体非线性关系检验’表格。

    从上表格可以看到:两个样条即‘非线性项’,其均呈现出显著性,p 值分别为0.018和0.005,即意味着有着非线性关系,此是age项并没有呈现出显著性(其意味着传统的二元logistic回归时可能认为其并不会影响到是否患心脏病),但这并不影响非线性关系的分析,非线性关系的分析主要以‘模型整体非线性关系模型’、样条项的显著性和RCS样条图这三项为准。本案例数据时,2个样条项均呈现出显著性,而且样条1的回归系数为0.344>0,意味着有着RCS时会先有上升趋势,样条2的回归系数为-1.942,意味着RCS样条图时会有着下降趋势。

    至于sex, trestbps, chol这3个协变量的显著性,也可大致进行了解,似研究需要进行即可,当然表格中显示trestbps即静血血压并没有呈现出显著性,可以考虑将其从模型中直接移除出去。

    除此之外,‘模型整体非线性关系检验’,这个是对整体RCS样条模型时的非线性关系研究结果,即本案例时有2个样条(样条个数=节点数量-2),那么该2个样条整体上是否会呈现出显著性的综合检验。结果如下表格:

    模型整体非线性关系检验,其原理是:比较两个嵌套模型:全模型 (Full Model): 包含 RCS 样条项的完整模型,简化模型(Reduced Model): 去掉非线性样条项,只保留线性项的模型,使用Wald检验。其检验零假设 (H₀):非线性样条项的系数都为 0,即变量与结果之间是线性关系,备择假设 (H₁): 至少有一个非线性样条项的系数不为0,即存在非线性关系。所以如果拒绝原假设则意味着至少有1个样条项呈现出显著性即有着非线性关系。

    从上表格中可以看到:模型非线性关系整体检验时,p 值=0.006<0.05,即意味着RCS模型有着非线性关系。当然这与单独分析样条的显著性在目的是一致的,只是此处是整体的非线性检验,单独回归系数检验时是针对具体样条项。确定有着非线性关系时,最关键的分析在于非线性关系的直观展示即通过RCS样条图具体分析,结果如下:

    RCS立方样条图显示年龄与心脏病风险呈显著非线性关系(p 值=0.006 < 0.05)。风险随年龄增长呈非线性变化:大约在 50岁前风险较低且平稳;50 岁至 60 岁间风险迅速攀升,并在 60 岁左右达到峰值(OR大约为1.5,即60岁左右是心脏病最高点,其是整体水平(年龄中位数=56)的1.5倍);随后风险有所回落。这提示 50-60岁是心脏病筛查的关键年龄段。

    SPSSAU还自动提供关键拐点识别,从RCS样条图可以看,明显大约年龄在60岁时OR值最高为1.5左右,但SPSSAU还识别出较小值点即X年龄取44.03岁时,其效应值较低仅为0.268,即意味着年龄为44.03岁时,相对来看其患心脏病的情况是年龄为56岁时的0.268倍。

  • 6、剖析

    涉及以下几个关键点,分别如下:

    • 节点数量默认建议为4个,如果样本量很少比如小于100此时可设置为3个;

    • 样条的个数一定等于节点个数 - 2;

疑难解惑

  • RCS如何判断非线性关系?
  • 一般通过模型整体非线性关系,样条的回归系数显著性和RCS样条图综合进行判断,默认情况下首先应该分析‘模型整体非线性关系’,如果其检验呈现出显著性则意味着‘至少有一个非线性样条项的系数不为0,即存在非线性关系’,具体是哪个样条,此时可具体查看RCS回归系数里面的样条项的显著性。当确保有着非线性关系时,此时进一步通过RCS样条图直观分析和解析。

  • RCS时‘模型整体呈现出非线性关系’但所有样条项均没有呈现出显著性?
  • 当模型整体检验即总体p 值<0.05且非线性样条项p 值部分或者全部<0.05,此时意味有着非线性关系,应重点描述曲线的拐点。如果总体p 值<0.05但非线性样条项p 值全部都>0.05,此时其本质还是线性关系,虽然 RCS也能画出图,但建议回归传统线性模型,避免过度解释曲线的微小波动。如果总体p 值>0.05但非线性样条项部分或者全部<0.05(也或者样条项均大于0.05),此时建议均以线性关系作为结论。

  • RCS如何选节点数?
  • 一般来说,3 个节点仅适用于样本量较小或预期趋势仅为简单 U 型的情况。4 个节点(推荐默认):平衡了灵活性与稳定性,是目前大多数临床医学论文的首选。5个及以上:仅建议在样本量巨大(如 >1000)且曲线极其复杂时使用,否则极易出现过拟合,导致曲线在数据边缘产生无意义的剧烈震荡。

  • RCS参考点(Reference)的临床意义?
  • 参考点决定了 Y 轴(OR/HR)为 1 的位置。中位数 vs 临床正常值:默认通常以中位数作为参考。但有时参考点也会以专业知识为准,比如设为临床公认的“正常值”会让图表更具医疗说服力。除此之外,参考点并不会改变趋势,参考点仅改变曲线在纵轴上的位移,不改变非线性显著性。

  • RCS时为什么样条个数=节点个数-2?
  • 限制性RCS要求曲线在第一个节点之前和最后一个节点之后必须是直线(线性)。因而其有2个约束分别是,曲线在左侧边界(第一个节点外)必须是线性,曲线在右侧边界(最后一个节点外)也必须是线性。因此,原本的K个参数在扣除这两个限制后,剩下的有效样条个数就是K-2个。