亚群疗效模式图(subpopulation treatment effect pattern plot,STEPP)法是一种通过制作STEPP,反映研究治疗效应与连续协变量之间关系的方法,其特征为将研究人群根据连续协变量值划分为多个重叠的亚群进行分析。STEPP法与传统亚组分析目的不同,在探究治疗效应与连续协变量的关系上STEPP法有着明显优势。本研究对STEPP法的概念、优势以及亚群划分方法进行了介绍,并以实例介绍了采用R语言的STEPP包进行STEPP法分析的具体操作过程和结果解读方法。
引用本文: 李宇飞, 刘建平, 梁士兵, 程红杰, 张巧妍, 张颖. 亚群疗效模式图(STEPP)法在临床试验中的应用. 中国循证医学杂志, 2024, 24(8): 980-985. doi: 10.7507/1672-2531.202308169 复制
在干预性临床疗效评价试验中,研究者主要通过结局效应量大小评估干预措施治疗效果[1, 2],而效应量大小会受到协变量的影响[3],即根据协变量对总体治疗人群所划分的不同亚群中,效应量可能有所不同(反映真实世界的随机效应)。因此,效应量大小基于协变量的变化在疗效影响因素探讨中十分重要,通常能够基于这种探讨,找出干预措施的优势人群,从而给个体化治疗提供信息参考,最大程度发挥该干预措施优势,提高临床疗效[4]。人用药品注册技术要求国际协调会、欧洲药品监督管理局、美国食品药品监督管理局也分别提出协变量在临床试验中的重要性[5-7]。亚群疗效模式图(subpopulation treatment effect pattern plot,STEPP)法能够分析连续协变量是否影响治疗效应,相比传统亚组分析,其在一些方面具有明显优势。本文对STEPP法的概念、优势以及亚群划分方法进行了介绍,并以实例介绍了采用R语言的STEPP包进行STEPP法分析的具体操作过程和结果解读方法。
1 STEPP法概念、优势及亚群划分方法
1.1 STEPP法概念
STEPP法是一种研究治疗效应与连续协变量之间关系的方法[8]。它的目的在于确定治疗效果的大小是否作为连续协变量值的函数而变化。单纯从概念上讲,亚群(subpopulation)与亚组(subgroup)没有实质区别。协变量是在研究中未被研究者操纵、会对研究结果产生影响的变量,比如临床试验中常常对性别、年龄、身高、体重等不加限制,这些变量可能会对研究结果造成影响,此时这些变量就是潜在的协变量,因此对协变量与治疗效应之间关系的研究有利于未来根据协变量变化而对治疗效果进行一定的预测。
该方法在2000年由Bonetti和Gelber首次引入[8],此后作者团队多次对STEPP法进行应用探索[9, 10],并对该方法拓展更新[11-13]。STEPP法的R包由Sergio Venturini等组成的团队所制作,并在2023年1月对该方法在R上的应用进行说明[14]。目前已有临床研究使用STEPP法分析的案例[15-17]。STEPP法将研究人群根据连续协变量值分为多个重叠的亚群,每个亚群以该亚群的中位协变量作为该亚群的协变量值,并对每一个亚群进行描述(如两组生存时间差异、率比等),同时对所有亚群进行一个整体的统计推断,判断治疗效应量与协变量间是否存在函数关系。STEPP法还能生成图像,可以反映随着亚群的变化组间效应的变化趋势。STEPP法同时生成的三个图像分别展示测量结果、绝对治疗效应估计和相对治疗效应估计。STEPP法当前版本的R包可在CRAN网站上免费获取[18, 19]。
1.2 STEPP法优势
亚组分析是常用的研究治疗效应根据不同协变量是否有差异的方法。STEPP法与传统亚组分析的目的有所不同。亚组分析将研究人群根据协变量值划分为不重叠的多个亚组,并针对每一个亚组进行描述及统计推断,目的在于分析各亚组是否存在有意义的治疗效应;而STEPP法则是生成重叠亚群,目的在于研究治疗效应与连续协变量值是否存在关系。亚组分析操作简便易行,但存在一些缺点[14, 20]:
① 亚组分析对每个亚组都进行了一次假设检验。多次假设检验存在第一类错误膨胀的风险,此时表现出的统计学差异可信度低,需要调整显著性水准才能控制第一类错误。然而调整显著性水准可能会降低检验效能,使两组间的效应差更难以满足统计学差异。
② 亚组分析中的每一次检验都是限制在单个亚组内的,无法判断不同亚组间的治疗效果是否有差异。
③ 亚组分析划分亚组常常是根据连续协变量的中位数、四分位数等简便值进行划分,然而根据这些简便值划分的亚组不一定具有临床意义。此外,这种划分方法划分出的一些亚组可能仅有很少的患者数,这会导致该亚组的统计精确度降低。
STEPP法对于以上缺点有一定程度弥补:
① STEPP法对于每一个亚群都仅进行统计描述,而没有统计推断。STEPP法仅对所有亚群整体进行一次假设检验,旨在证明治疗效应与连续协变量之间是否存在函数关系。如此整个STEPP法过程只包含一次假设检验,不存在多重性问题,也无需调整显著性水准。
② STEPP法的假设检验是横跨所有亚群的,能够判断所有亚群间的治疗效应是否有差异,从而判断治疗效应与连续协变量是否有交互作用。
③ STEPP法的亚群划分主要分为两类,推荐使用的基于人数滑窗法(unit-based sliding window)根据事先确定好的参数生成相互重叠的亚群,增大每个亚群的样本量,如此可以保证每一个亚群有足够的治疗效应估计精度。此外与传统亚组分析研究各亚组是否存在有意义的治疗效应不同,STEPP法是研究治疗效应与协变量之间是否存在函数关系,并不具体关注某一个亚群,因此无需说明划分出的亚群是否具有临床意义。
除了上述与亚组分析对比所体现出的优势以外,STEPP法还有一些其他方面的优势:
① 划分的亚群间是重叠的,使得连续的两个亚群共享一些患者,如此连续两个亚群的结果之间存在相互联系,变化更显平滑,能够更好地体现出治疗效应随着连续协变量变化的变化趋势。
② 生成了STEPP,能够反映组间效应随着亚群的变化而变化的趋势,使研究者更加直观地观察数据,辅助研究者解释结果,并提示治疗效应与连续协变量间是否存在潜在的相互作用关系。
STEPP法的优势及所弥补的亚组分析不足见表1。

STEPP法独特的亚群划分方法是其具有优势的关键,我们详细说明STEPP法将整体人群划分为相互重叠亚群的机制。
1.3 STEPP法的亚群划分方法
STEPP法的人群划分主要分为两类,分别是滑窗法(sliding window)以及尾部定向法(tail-oriented)。在滑窗法中还分为基于人数滑窗法以及基于事件滑窗法(event-based sliding window)。
1.3.1 基于人数滑窗法
首先指定r1、r2两个参数,其大小关系为r1<r2(两参数均小于样本量)。其中r1是每一对连续亚群间共有的人数,反映着构建亚群时的受试者重叠程度;r2是每一个亚群的人数。
① 对于第一个亚群p1,其协变量范围的最小值l1即为整体协变量最小值,其协变量范围最大值u1对应的是可以纳入(r2/n×100)%样本所对应的协变量值。如果实际拥有的样本不存在对应的协变量百分位数,则选择的u1就使p1能够至少包含r2个受试者。
② 对于第二个亚群p2,根据使最多r1个单位落在l2与u1之间的原则选择l2;根据使p2包含至少r2个单位的原则选择u2。
③ 重复该过程直到最后一个亚群。
实际应用滑窗法时,某些情况下可能会出现受试者数量不均匀的情况。在STEPP法的R包中首先进行亚群划分,之后按亚群间样本量方差最小化的原则进行调整,使得各亚群间样本量大致均匀,从而提高检验效能。
1.3.2 基于事件滑窗法
该方法与基于人数滑窗法类似,考虑到如果临床试验中存在生存分析数据,使用基于人数滑窗法可能会导致一个亚群内没有足够的事件可供分析,无法保证对治疗效果有一个合理的统计评价。针对这个问题,一种解决方案是基于事件进行划分亚群,可以保证每个亚群内有足够的事件数[12]。预先指定e1(每个治疗组的连续亚群中共同事件的最大数量)、e2(所有亚群中每个治疗组中事件最小数量),其中e1<e2。重叠亚群如此构建:
① 所有受试者按协变量值由低到高排序;
② 第一亚群p1:由每个治疗组协变量值最低的一批人构成,每组具有最少e2个事件;
③ 第二亚群p2:基于p1,移除协变量值最低的(e2−e1)个事件的人,用协变量值顺序列表接下来含有(e2−e1)事件的人将其代替,由此构成p2;
④ 不断重复该过程,直到每个人都至少包含在一个亚群中,且每个亚群每个治疗组包含至少e2个事件。如果最后一个亚群无法含有e2个事件,它将与前一个亚群合并。
该方法只适用于有竞争风险的生存分析。
1.3.3 尾部定向法
该方法与滑窗法不同,不是一个亚群中有固定数量的研究对象,而是亚群人数在不断的增加(或减少)。该方法的每一个亚群的协变量范围都至少有一侧在边界。其分为两种模式,分别是:① 协变量最低值在下边界,每个亚群的协变量最高值不断增长,最后包括所有研究人群,这种模式亚群人数逐渐增加;② 第二种方法与其相反,协变量先包含所有人群,每个亚群协变量最低值不断增加,这种模式亚群人数逐渐减少。
尾部定向法是为了分析右侧协变量增加和左侧协变量减少对治疗效果的影响,以及探究协变量极端值对于治疗效果的影响。通常建议两种方法分别进行检验。
2 实例演示
实例采用R语言中的STEPP包进行分析,在“STEPP”R包中针对结局为不同的数据类型有三种分析模式:
① StmodelGLM,可以用于指数分布的数据,包括正态分布、二项分布以及泊松分布。
② StmodelKM,可以用于没有竞争风险的生存数据。
③ StmodelCI,可以用于存在竞争风险情况下的生存数据。
2.1 数据来源
该数据来源于本团队开展的一项痛泻要方对比安慰剂治疗腹泻型肠易激综合征(IBS-D)疗效和安全性评价的随机对照试验[21]。
所用数据包括患者的基线焦虑自评量表(self-rating anxiety scale,SAS)标准分(患者的心理状态与IBS有关;量表评分越高,代表治疗前焦虑程度越高)[22, 23],及患者治疗8周后的IBS疾病严重程度(IBS symptom severity scale,IBS-SSS)评分(IBS常用指标,评分越高提示IBS症状越严重)[24]。
2.2 数据分析过程与代码
该实例中,数据集名为“steppdata”,其中包含以下三列数据:① group,为受试者的组别,其中“1”为痛泻要方组,“2”为安慰剂组。② sas1,为受试者基线SAS标准分,评分越高,代表治疗前焦虑程度越高。③ IBSSSS3,为受试者治疗8周后的IBS-SSS评分,评分越高提示IBS症状越严重。
首先分析数据类型,IBS-SSS评分为连续型变量,需要使用R包中的stmodelGLM的方法来进行分析,该方法要求数据符合正态分布,使用S-W正态分布检验:
输入命令:
>tapply(steppdata$IBSSSS3,steppdata$group,shapiro.test)
输出结果显示,两组P值均大于0.05,可认为数据符合正态性。
加载“stepp”包,并使用新“stwin”命令指定划分亚群的方式。使用基于人数滑窗法,其参数为一个亚群至少20人,每两个连续亚群间最大重叠10人,将这些参数放入对象“swin”中。
输入命令:
>library(stepp)
>swin <- new("stwin", type = "sliding", r1 = 10, r2 = 20)
使用新“stsubpop”命令指定对象“subp”用于存储划分后的亚群数据,并使用generate命令,以“steppdata”数据集中的基线SAS标准分作为协变量,以刚才指定的亚群划分方式将受试者划分重叠亚群,并储存到对象“subp”中。接着,使用“summary”命令输出划分出的重叠亚群。
输入命令:
>subp <- new("stsubpop")
>subp <- generate(subp, win = swin, covariate = steppdata$sas1)
>summary(subp)
该命令代码中,“sas1”为受试者治疗前SAS标准分,下同。
输出结果:
Window type: sliding
Number of patients per subpopulation (patspop r2): 20
Largest number of patients in common among consecutive subpopulations (minpatspop r1): 10
Number of subpopulations created: 7
Subpopulation summary information (including all treatments)
Covariate Summary Sample
Subpopulation Median Minimum Maximum size
1 29.00 25.0000 30.0000 28
2 31.00 30.0000 33.0000 20
3 35.00 32.0000 38.0000 23
4 38.50 36.0000 40.0000 20
5 41.00 39.0000 44.0000 21
6 46.00 42.0000 49.0000 22
7 49.00 48.0000 62.0000 16
该结果显示出受试者划分为7个重叠亚群,并输出了每个亚群的样本量及协变量特征。除此以外,还显示了亚群的划分方法以及参数。
接着,使用新“steppes”命令指定对象“res”用于存储STEPP法的输出结果。使用新“stmodelGLM”命令指定使用的分析方法,在该命令的参数中指定数据的组别以及分析变量,并说明在数据中两个组别分别以什么数表示,并将该命令数据存储至对象“modelGLM”中。
输入命令:
>res <- new("steppes")
>modelGLM <- new("stmodelGLM", coltrt = steppdata$group,colY=steppdata$IBSSSS3,trts = c(1, 2))
接下来需要拟合STEPP法模型。使用“estimate”命令,指定使用存储在“subp”中的亚群,指定存储在“modelGLM”中的分析方法,并指定结果输出在对象“res”中。整个estimate命令覆盖在对象“res”中。
设定种子数,并指定4 000次的蒙特卡罗重复,使生成的结果可信度较高。使用test命令生成分析结果,并将结果覆盖在对象“res”中,并进行输出。
输入命令:
>res <- estimate(res, subp, modelGLM)
>set.seed(1024)
>nperm <- 4000
>Res <- test(res, nperm)
>print(res, estimate = TRUE, cov = FALSE, test = TRUE)
最后需要输出结果的图像,输入命令:
>plot(res, subplot = FALSE, xlabel = "亚群基线SAS标准分中位数",ylabel = "IBS-SSS评分",ncex=0.8,tlegend = c("痛泻要方", "安慰剂"),legend_diff = c(1, 2) )
STEPP法会同时生成三个图像,分别展示了测量结果、绝对治疗效应估计和相对治疗效应估计,其中相对治疗效应估计在结局为二分类变量时使用。由于本实例分析变量为连续型变量,故结果仅为图1和图2。连续性变量的输出结果仅关注效应差部分,若分析变量为二分类变量,则关注效应比部分。
效应差部分的结果显示,根据上确界检验结果(supremum test results),基于效应差的P值为0.0485,小于0.05,可以认为不同亚群间存在有治疗效应与协变量的交互作用,即基线焦虑程度对疗效有影响。“overall”表示对所有样本进行分析的结果。可看出随着亚群增大(即协变量升高)两组效应差是一个先减小后增大的趋势。
图1为不同组别各亚群IBS-SSS评分的测量结果,随着基线SAS标准分的上升,安慰剂组的IBS-SSS评分呈“W”型,总体呈上升趋势,而痛泻要方组的IBS-SSS评分在SAS标准分46前呈“U”型,随后有所下降。
图2为各亚群的IBS-SSS评分效应差,可见效应差图像在达到SAS标准分(46分)前呈“U”型。根据该图像进行分析,随着焦虑程度的增加,IBS-SSS的治疗效应由安慰剂组偏优转向痛泻要方组偏优,在SAS标准分均值到38.5分时疗效达到最优,该亚群的效应差还具有统计学意义。随后相对安慰剂的治疗效应有所变差。值得注意的是,效应差在SAS标准分均值达到49分时有一个较大的下降,结合图1,此时痛泻要方组IBS-SSS评分有所下降,而安慰剂组则有所上升。SAS标准分总分为100分,50分以上被评为焦虑,可看出受试者基本均未达到焦虑标准,根据图1及图2曲线,可猜测随着焦虑程度进一步上升,痛泻要方与安慰剂疗效差异有进一步增大的可能。
图2还绘制了效应差的95%CI,该结果与之前提到的上确界检验结果意义不同。上确界检验结果是综合了所有亚群的效应差结果,判断效应差的变化是否与划分亚群的协变量有关;而95%CI是单独考虑某个亚群,说明某个亚群的效应差是否具有统计学意义。二者应当分开进行讨论。
在STEPP法生成的三个图中,图1是测量结果的直接展示,从图2能更加直观地观察效应差,对于分析干预措施的优势方面辅助效果更强。
3 结论
STEPP法与传统亚组分析目的不同,传统亚组分析目的在于分析各亚组是否存在有意义的治疗效应,而STEPP法目的在于研究治疗效应与连续协变量值是否存在关系。由实例可见在探究治疗效应与协变量的关系上STEPP法有着明显优势,且具有良好的可视化功能,分析起来更加简单直观,在研究者对疗效的判断中有着明显的辅助作用。
个体化治疗是医学发展的方向[25],在未来的研究中,STEPP法可广泛应用于连续协变量与治疗效应的关系探索,从而找出治疗效应的影响因素,据此可以进行更深入的验证性研究,得出的结论有利于未来根据协变量变化而对治疗效果进行一定的预测,为个体化治疗提供参考,提高治疗效率。
在干预性临床疗效评价试验中,研究者主要通过结局效应量大小评估干预措施治疗效果[1, 2],而效应量大小会受到协变量的影响[3],即根据协变量对总体治疗人群所划分的不同亚群中,效应量可能有所不同(反映真实世界的随机效应)。因此,效应量大小基于协变量的变化在疗效影响因素探讨中十分重要,通常能够基于这种探讨,找出干预措施的优势人群,从而给个体化治疗提供信息参考,最大程度发挥该干预措施优势,提高临床疗效[4]。人用药品注册技术要求国际协调会、欧洲药品监督管理局、美国食品药品监督管理局也分别提出协变量在临床试验中的重要性[5-7]。亚群疗效模式图(subpopulation treatment effect pattern plot,STEPP)法能够分析连续协变量是否影响治疗效应,相比传统亚组分析,其在一些方面具有明显优势。本文对STEPP法的概念、优势以及亚群划分方法进行了介绍,并以实例介绍了采用R语言的STEPP包进行STEPP法分析的具体操作过程和结果解读方法。
1 STEPP法概念、优势及亚群划分方法
1.1 STEPP法概念
STEPP法是一种研究治疗效应与连续协变量之间关系的方法[8]。它的目的在于确定治疗效果的大小是否作为连续协变量值的函数而变化。单纯从概念上讲,亚群(subpopulation)与亚组(subgroup)没有实质区别。协变量是在研究中未被研究者操纵、会对研究结果产生影响的变量,比如临床试验中常常对性别、年龄、身高、体重等不加限制,这些变量可能会对研究结果造成影响,此时这些变量就是潜在的协变量,因此对协变量与治疗效应之间关系的研究有利于未来根据协变量变化而对治疗效果进行一定的预测。
该方法在2000年由Bonetti和Gelber首次引入[8],此后作者团队多次对STEPP法进行应用探索[9, 10],并对该方法拓展更新[11-13]。STEPP法的R包由Sergio Venturini等组成的团队所制作,并在2023年1月对该方法在R上的应用进行说明[14]。目前已有临床研究使用STEPP法分析的案例[15-17]。STEPP法将研究人群根据连续协变量值分为多个重叠的亚群,每个亚群以该亚群的中位协变量作为该亚群的协变量值,并对每一个亚群进行描述(如两组生存时间差异、率比等),同时对所有亚群进行一个整体的统计推断,判断治疗效应量与协变量间是否存在函数关系。STEPP法还能生成图像,可以反映随着亚群的变化组间效应的变化趋势。STEPP法同时生成的三个图像分别展示测量结果、绝对治疗效应估计和相对治疗效应估计。STEPP法当前版本的R包可在CRAN网站上免费获取[18, 19]。
1.2 STEPP法优势
亚组分析是常用的研究治疗效应根据不同协变量是否有差异的方法。STEPP法与传统亚组分析的目的有所不同。亚组分析将研究人群根据协变量值划分为不重叠的多个亚组,并针对每一个亚组进行描述及统计推断,目的在于分析各亚组是否存在有意义的治疗效应;而STEPP法则是生成重叠亚群,目的在于研究治疗效应与连续协变量值是否存在关系。亚组分析操作简便易行,但存在一些缺点[14, 20]:
① 亚组分析对每个亚组都进行了一次假设检验。多次假设检验存在第一类错误膨胀的风险,此时表现出的统计学差异可信度低,需要调整显著性水准才能控制第一类错误。然而调整显著性水准可能会降低检验效能,使两组间的效应差更难以满足统计学差异。
② 亚组分析中的每一次检验都是限制在单个亚组内的,无法判断不同亚组间的治疗效果是否有差异。
③ 亚组分析划分亚组常常是根据连续协变量的中位数、四分位数等简便值进行划分,然而根据这些简便值划分的亚组不一定具有临床意义。此外,这种划分方法划分出的一些亚组可能仅有很少的患者数,这会导致该亚组的统计精确度降低。
STEPP法对于以上缺点有一定程度弥补:
① STEPP法对于每一个亚群都仅进行统计描述,而没有统计推断。STEPP法仅对所有亚群整体进行一次假设检验,旨在证明治疗效应与连续协变量之间是否存在函数关系。如此整个STEPP法过程只包含一次假设检验,不存在多重性问题,也无需调整显著性水准。
② STEPP法的假设检验是横跨所有亚群的,能够判断所有亚群间的治疗效应是否有差异,从而判断治疗效应与连续协变量是否有交互作用。
③ STEPP法的亚群划分主要分为两类,推荐使用的基于人数滑窗法(unit-based sliding window)根据事先确定好的参数生成相互重叠的亚群,增大每个亚群的样本量,如此可以保证每一个亚群有足够的治疗效应估计精度。此外与传统亚组分析研究各亚组是否存在有意义的治疗效应不同,STEPP法是研究治疗效应与协变量之间是否存在函数关系,并不具体关注某一个亚群,因此无需说明划分出的亚群是否具有临床意义。
除了上述与亚组分析对比所体现出的优势以外,STEPP法还有一些其他方面的优势:
① 划分的亚群间是重叠的,使得连续的两个亚群共享一些患者,如此连续两个亚群的结果之间存在相互联系,变化更显平滑,能够更好地体现出治疗效应随着连续协变量变化的变化趋势。
② 生成了STEPP,能够反映组间效应随着亚群的变化而变化的趋势,使研究者更加直观地观察数据,辅助研究者解释结果,并提示治疗效应与连续协变量间是否存在潜在的相互作用关系。
STEPP法的优势及所弥补的亚组分析不足见表1。

STEPP法独特的亚群划分方法是其具有优势的关键,我们详细说明STEPP法将整体人群划分为相互重叠亚群的机制。
1.3 STEPP法的亚群划分方法
STEPP法的人群划分主要分为两类,分别是滑窗法(sliding window)以及尾部定向法(tail-oriented)。在滑窗法中还分为基于人数滑窗法以及基于事件滑窗法(event-based sliding window)。
1.3.1 基于人数滑窗法
首先指定r1、r2两个参数,其大小关系为r1<r2(两参数均小于样本量)。其中r1是每一对连续亚群间共有的人数,反映着构建亚群时的受试者重叠程度;r2是每一个亚群的人数。
① 对于第一个亚群p1,其协变量范围的最小值l1即为整体协变量最小值,其协变量范围最大值u1对应的是可以纳入(r2/n×100)%样本所对应的协变量值。如果实际拥有的样本不存在对应的协变量百分位数,则选择的u1就使p1能够至少包含r2个受试者。
② 对于第二个亚群p2,根据使最多r1个单位落在l2与u1之间的原则选择l2;根据使p2包含至少r2个单位的原则选择u2。
③ 重复该过程直到最后一个亚群。
实际应用滑窗法时,某些情况下可能会出现受试者数量不均匀的情况。在STEPP法的R包中首先进行亚群划分,之后按亚群间样本量方差最小化的原则进行调整,使得各亚群间样本量大致均匀,从而提高检验效能。
1.3.2 基于事件滑窗法
该方法与基于人数滑窗法类似,考虑到如果临床试验中存在生存分析数据,使用基于人数滑窗法可能会导致一个亚群内没有足够的事件可供分析,无法保证对治疗效果有一个合理的统计评价。针对这个问题,一种解决方案是基于事件进行划分亚群,可以保证每个亚群内有足够的事件数[12]。预先指定e1(每个治疗组的连续亚群中共同事件的最大数量)、e2(所有亚群中每个治疗组中事件最小数量),其中e1<e2。重叠亚群如此构建:
① 所有受试者按协变量值由低到高排序;
② 第一亚群p1:由每个治疗组协变量值最低的一批人构成,每组具有最少e2个事件;
③ 第二亚群p2:基于p1,移除协变量值最低的(e2−e1)个事件的人,用协变量值顺序列表接下来含有(e2−e1)事件的人将其代替,由此构成p2;
④ 不断重复该过程,直到每个人都至少包含在一个亚群中,且每个亚群每个治疗组包含至少e2个事件。如果最后一个亚群无法含有e2个事件,它将与前一个亚群合并。
该方法只适用于有竞争风险的生存分析。
1.3.3 尾部定向法
该方法与滑窗法不同,不是一个亚群中有固定数量的研究对象,而是亚群人数在不断的增加(或减少)。该方法的每一个亚群的协变量范围都至少有一侧在边界。其分为两种模式,分别是:① 协变量最低值在下边界,每个亚群的协变量最高值不断增长,最后包括所有研究人群,这种模式亚群人数逐渐增加;② 第二种方法与其相反,协变量先包含所有人群,每个亚群协变量最低值不断增加,这种模式亚群人数逐渐减少。
尾部定向法是为了分析右侧协变量增加和左侧协变量减少对治疗效果的影响,以及探究协变量极端值对于治疗效果的影响。通常建议两种方法分别进行检验。
2 实例演示
实例采用R语言中的STEPP包进行分析,在“STEPP”R包中针对结局为不同的数据类型有三种分析模式:
① StmodelGLM,可以用于指数分布的数据,包括正态分布、二项分布以及泊松分布。
② StmodelKM,可以用于没有竞争风险的生存数据。
③ StmodelCI,可以用于存在竞争风险情况下的生存数据。
2.1 数据来源
该数据来源于本团队开展的一项痛泻要方对比安慰剂治疗腹泻型肠易激综合征(IBS-D)疗效和安全性评价的随机对照试验[21]。
所用数据包括患者的基线焦虑自评量表(self-rating anxiety scale,SAS)标准分(患者的心理状态与IBS有关;量表评分越高,代表治疗前焦虑程度越高)[22, 23],及患者治疗8周后的IBS疾病严重程度(IBS symptom severity scale,IBS-SSS)评分(IBS常用指标,评分越高提示IBS症状越严重)[24]。
2.2 数据分析过程与代码
该实例中,数据集名为“steppdata”,其中包含以下三列数据:① group,为受试者的组别,其中“1”为痛泻要方组,“2”为安慰剂组。② sas1,为受试者基线SAS标准分,评分越高,代表治疗前焦虑程度越高。③ IBSSSS3,为受试者治疗8周后的IBS-SSS评分,评分越高提示IBS症状越严重。
首先分析数据类型,IBS-SSS评分为连续型变量,需要使用R包中的stmodelGLM的方法来进行分析,该方法要求数据符合正态分布,使用S-W正态分布检验:
输入命令:
>tapply(steppdata$IBSSSS3,steppdata$group,shapiro.test)
输出结果显示,两组P值均大于0.05,可认为数据符合正态性。
加载“stepp”包,并使用新“stwin”命令指定划分亚群的方式。使用基于人数滑窗法,其参数为一个亚群至少20人,每两个连续亚群间最大重叠10人,将这些参数放入对象“swin”中。
输入命令:
>library(stepp)
>swin <- new("stwin", type = "sliding", r1 = 10, r2 = 20)
使用新“stsubpop”命令指定对象“subp”用于存储划分后的亚群数据,并使用generate命令,以“steppdata”数据集中的基线SAS标准分作为协变量,以刚才指定的亚群划分方式将受试者划分重叠亚群,并储存到对象“subp”中。接着,使用“summary”命令输出划分出的重叠亚群。
输入命令:
>subp <- new("stsubpop")
>subp <- generate(subp, win = swin, covariate = steppdata$sas1)
>summary(subp)
该命令代码中,“sas1”为受试者治疗前SAS标准分,下同。
输出结果:
Window type: sliding
Number of patients per subpopulation (patspop r2): 20
Largest number of patients in common among consecutive subpopulations (minpatspop r1): 10
Number of subpopulations created: 7
Subpopulation summary information (including all treatments)
Covariate Summary Sample
Subpopulation Median Minimum Maximum size
1 29.00 25.0000 30.0000 28
2 31.00 30.0000 33.0000 20
3 35.00 32.0000 38.0000 23
4 38.50 36.0000 40.0000 20
5 41.00 39.0000 44.0000 21
6 46.00 42.0000 49.0000 22
7 49.00 48.0000 62.0000 16
该结果显示出受试者划分为7个重叠亚群,并输出了每个亚群的样本量及协变量特征。除此以外,还显示了亚群的划分方法以及参数。
接着,使用新“steppes”命令指定对象“res”用于存储STEPP法的输出结果。使用新“stmodelGLM”命令指定使用的分析方法,在该命令的参数中指定数据的组别以及分析变量,并说明在数据中两个组别分别以什么数表示,并将该命令数据存储至对象“modelGLM”中。
输入命令:
>res <- new("steppes")
>modelGLM <- new("stmodelGLM", coltrt = steppdata$group,colY=steppdata$IBSSSS3,trts = c(1, 2))
接下来需要拟合STEPP法模型。使用“estimate”命令,指定使用存储在“subp”中的亚群,指定存储在“modelGLM”中的分析方法,并指定结果输出在对象“res”中。整个estimate命令覆盖在对象“res”中。
设定种子数,并指定4 000次的蒙特卡罗重复,使生成的结果可信度较高。使用test命令生成分析结果,并将结果覆盖在对象“res”中,并进行输出。
输入命令:
>res <- estimate(res, subp, modelGLM)
>set.seed(1024)
>nperm <- 4000
>Res <- test(res, nperm)
>print(res, estimate = TRUE, cov = FALSE, test = TRUE)
最后需要输出结果的图像,输入命令:
>plot(res, subplot = FALSE, xlabel = "亚群基线SAS标准分中位数",ylabel = "IBS-SSS评分",ncex=0.8,tlegend = c("痛泻要方", "安慰剂"),legend_diff = c(1, 2) )
STEPP法会同时生成三个图像,分别展示了测量结果、绝对治疗效应估计和相对治疗效应估计,其中相对治疗效应估计在结局为二分类变量时使用。由于本实例分析变量为连续型变量,故结果仅为图1和图2。连续性变量的输出结果仅关注效应差部分,若分析变量为二分类变量,则关注效应比部分。
效应差部分的结果显示,根据上确界检验结果(supremum test results),基于效应差的P值为0.0485,小于0.05,可以认为不同亚群间存在有治疗效应与协变量的交互作用,即基线焦虑程度对疗效有影响。“overall”表示对所有样本进行分析的结果。可看出随着亚群增大(即协变量升高)两组效应差是一个先减小后增大的趋势。
图1为不同组别各亚群IBS-SSS评分的测量结果,随着基线SAS标准分的上升,安慰剂组的IBS-SSS评分呈“W”型,总体呈上升趋势,而痛泻要方组的IBS-SSS评分在SAS标准分46前呈“U”型,随后有所下降。
图2为各亚群的IBS-SSS评分效应差,可见效应差图像在达到SAS标准分(46分)前呈“U”型。根据该图像进行分析,随着焦虑程度的增加,IBS-SSS的治疗效应由安慰剂组偏优转向痛泻要方组偏优,在SAS标准分均值到38.5分时疗效达到最优,该亚群的效应差还具有统计学意义。随后相对安慰剂的治疗效应有所变差。值得注意的是,效应差在SAS标准分均值达到49分时有一个较大的下降,结合图1,此时痛泻要方组IBS-SSS评分有所下降,而安慰剂组则有所上升。SAS标准分总分为100分,50分以上被评为焦虑,可看出受试者基本均未达到焦虑标准,根据图1及图2曲线,可猜测随着焦虑程度进一步上升,痛泻要方与安慰剂疗效差异有进一步增大的可能。
图2还绘制了效应差的95%CI,该结果与之前提到的上确界检验结果意义不同。上确界检验结果是综合了所有亚群的效应差结果,判断效应差的变化是否与划分亚群的协变量有关;而95%CI是单独考虑某个亚群,说明某个亚群的效应差是否具有统计学意义。二者应当分开进行讨论。
在STEPP法生成的三个图中,图1是测量结果的直接展示,从图2能更加直观地观察效应差,对于分析干预措施的优势方面辅助效果更强。
3 结论
STEPP法与传统亚组分析目的不同,传统亚组分析目的在于分析各亚组是否存在有意义的治疗效应,而STEPP法目的在于研究治疗效应与连续协变量值是否存在关系。由实例可见在探究治疗效应与协变量的关系上STEPP法有着明显优势,且具有良好的可视化功能,分析起来更加简单直观,在研究者对疗效的判断中有着明显的辅助作用。
个体化治疗是医学发展的方向[25],在未来的研究中,STEPP法可广泛应用于连续协变量与治疗效应的关系探索,从而找出治疗效应的影响因素,据此可以进行更深入的验证性研究,得出的结论有利于未来根据协变量变化而对治疗效果进行一定的预测,为个体化治疗提供参考,提高治疗效率。