25、临床试验富集设计的效率与自适应方法

临床试验富集设计的效率与自适应方法

1. 经典富集设计的效率

在评估分子靶向治疗的 III 期随机试验中,研究人员对比了全人群设计(所有患者都可参与试验)和富集设计(限制特定亚组人群参与)。评估基于平均筛查和随机样本量的操作特征进行,分别考虑了二元终点和连续终点的情况。

1.1 二元终点的相对效率

靶向设计相对于非靶向设计的相对效率可表示为:
其中 (n_{E}) 和 (n_{A}) 分别表示富集设计和全人群设计中为达到相同统计功效以检验原假设所需随机分配的患者数量。(\theta_{+}) 和 (\theta_{-}) 代表治疗组与对照组在生物标志物阳性和阴性组中的效应大小(如响应率差异)。(\pi) 为生物标志物阴性组在总体中的比例,(\rho) 是相对效率因子,通常接近 1。若考虑筛查患者数量来计算相对效率,只需将上述公式乘以 (\frac{1}{\pi})。

1.2 连续终点的相对效率

靶向设计相对于非靶向设计的相对效率可表示为:
其中 (\mu_{C-}) 和 (\mu_{C+}) 分别表示生物标志物阴性和阳性组中对照患者的平均响应,(\mu_{T-}) 和 (\mu_{T+}) 分别表示生物标志物阴性和阳性组中治疗患者的平均响应,并假设每个治疗组和亚组内的方差恒定为 (\sigma^{2})。同样,若考虑筛查患者数量的相对效率,只需将公式乘以 (\frac{1}{\pi})。上述结果仅在渐近情况下有效。

1.3 样本量计算宏

为了计算达到一定功效所需的样本量,开发了宏(%simnorm 和 %simgamma)。以下是一些具体的宏及其使用示例:

1.3.1 %MSpower 宏
%macro MSpower(beta, p1, p2, p3, alpha);
   data result;   
      delta=1-(&alpha/2);      
      za=quantile('Normal', delta);      
      p1=&p1; p2=&p2; p3=&p3;alpha=α      
      do i= 1 to 10000;      
         nsize=i;
         denum=(i**2)*( p1*(1-p1) + (i-1)*(p2 + p3 - 2*(p1**2)) );
         den=sqrt(denum);
         a=(0.5* (i**2) + za*sqrt((i**2)*(2*i + 1)/12) - 0.5 - (i**2)*p1)/den;   
         beta= CDF('Normal', a);
         power=1-beta;
         output;      
         if beta<=&beta then i=10001;      
      end;   
   run;
   data result2;
      set result end =_end;   
      end=_end;      
      if end;      
      if beta>&beta then do;
        warning=1;
        nsize2=">10000";
      end;
      else do;
        nsize2=compress(nsize);
      end;      
      label nsize2='sample size';
    run;
   proc format;
      value wa 1='required sample size greater than 10000';
   run;

   proc print noobs label;
     var nsize2 p1 p2 p3 alpha beta power warning;
     format warning wa.;
   run;
%mend MSpower;
%MSpower(0.2, 0.7, 0.6, 0.4, 0.05);

该宏计算提供指定功效以拒绝原假设所需的最小样本量。参数包括:
- beta :II 型错误率
- alpha :I 型错误率
- p1 :对照结果小于治疗结果的概率
- p2 :对照结果同时小于两个独立治疗结果的概率
- p3 :治疗结果同时大于两个独立对照结果的概率

运行结果表明,提供 80% 功效以拒绝原假设的最小样本量为每个治疗组 23 名患者,总样本量 46 名患者时的实际功效为 82%。具体结果如下表所示:
| Sample Size | p1 | p2 | p3 | alpha | beta | power |
| — | — | — | — | — | — | — |
| 23 | 0.7 | 0.6 | 0.4 | 0.05 | 0.17842 | 0.82158 |

1.3.2 %simnorm 宏
%macro simnorm(seed1, seed2, mux, muy, stdx, stdy, beta, simN=10000, alpha=0.05);
   data x;
      call streaminit(&seed1); 
      do i=1 to &simN;
         x=rand('normal', &mux, &stdx);
         output;
      end;
   run;

   data y;
      call streaminit(&seed2); 
      do i=1 to &simN;
         y=rand('normal', &muy, &stdy);
         output;
      end;
   run;

   data one;
      merge x y;      
      if x<y then flag=1;
      else flag=0;
   run;

   proc means noprint data=one;
      var flag;
      output out=p1 mean=p1;
   run;

   data _null_;
      set p1;      
      call symput('p1', compress(trim(p1)));
   run;   

   data _null_;
      sy1=&seed2 +1;
      call streaminit(sy1); 
      y1=rand('normal', &muy, &stdy);
      output;      
      call symput('y1', compress(trim(y1)));
   run;

   data _null_;
      sy2=&seed2 +2;
      call streaminit(sy2); 
      y2=rand('normal', &muy, &stdy);
      output;      
      call symput('y2', compress(trim(y2)));
   run;

   data x;
      set x;      
      if x<&y1 and x<&y2 then flag=1;
      else flag=0;
   run;

   proc means noprint data=x;
      var flag;
      output out=p2 mean=p2;
   run;

   data _null_;
      set p2;      
      call symput('p2', compress(trim(p2)));
   run;

   data _null_;
      sx1=&seed1 +1;
      call streaminit(sx1); 
      x1=rand('normal', &mux, &stdx);
      output;      
      call symput('x1', compress(trim(x1)));
   run;      

   data _null_;
      sx2=&seed1 +2;
      call streaminit(sx2); 
      x2=rand('normal', &mux, &stdx);
      output;      
      call symput('x2', compress(trim(x2)));
   run;

   data y;
      set y;      
      if y>&x1 and y>x2 then flag=1;
      else flag=0;
   run;

   proc means noprint data=y;
      var flag;
      output out=p3 mean=p3;
   run;

   data _null_;
      set p3;      
      call symput('p3', compress(trim(p3)));
   run;

   title 'Normal Distribution';     
   %MSpower(&beta., &p1., &p2., &p3., &alpha.);   
%mend simnorm;
%simnorm(seed1=1, seed2=100, mux=5, muy=8, stdx=2, stdy=1.5, 
beta=0.2, simN=10000, alpha=0.05);

当治疗结果服从正态分布时,该宏用于计算提供指定功效以拒绝原假设所需的最小样本量。参数包括:
- seed1 , seed2 :用于生成随机数的随机种子
- mux , muy :对照组和实验组治疗结果的均值
- stdx , stdy :对照组和实验组治疗结果的标准差
- beta :II 型错误率
- alpha :I 型错误率
- simN :蒙特卡罗模拟的迭代次数

运行结果显示,若对照组治疗结果服从均值为 5、标准差为 2 的正态分布,实验组治疗结果服从均值为 8、标准差为 1.5 的正态分布,使用蒙特卡罗模拟估计的 (p1)、(p2) 和 (p3) 分别为 0.8837、0.9126 和 0.9985,提供 80% 功效以拒绝原假设的最小样本量为每个治疗组 12 名患者,总样本量 24 名患者时的实际功效为 82%。结果如下表:
| Sample Size | p1 | p2 | p3 | alpha | beta | power |
| — | — | — | — | — | — | — |
| 12 | 0.8837 | 0.9126 | 0.9985 | 0.05 | 0.18012 | 0.81988 |

1.3.3 %simgamma 宏
%macro simgamma(seed1, seed2, mux, muy, stdx, stdy, beta, simN=10000, alpha=0.05);   
   data temp;
      ax=round((&mux**2)/(&stdx**2), 0.0001);
      bx=round(&mux/(&stdx**2), 0.0001);      
      ay=round((&muy**2)/(&stdy**2), 0.0001);
      by=round(&muy/(&stdy**2), 0.0001);
   run;  

   data _null_;
      set temp;
      call symput('ax', compress(trim(ax)));
      call symput('bx', compress(trim(bx)));
      call symput('ay', compress(trim(ay)));
      call symput('by', compress(trim(by)));

   run;

   data x;
      set temp;
      call streaminit(&seed1);       
      do i=1 to &simN;      
         x=rand('gamma', ax);
         x=x/bx;
         output;      
      end;
   run;

   data y;
      set temp;
      call streaminit(&seed2);      
      do i=1 to &simN;     
         y=rand('gamma', ay);
         y=y/by;
         output;     
      end;
   run;

   data one;
      merge x y;     
      if x<y then flag=1;
      else flag=0;
   run;

   proc means noprint data=one;
      var flag;
      output out=p1 mean=p1;
   run;

   data _null_;
      set p1;     
      call symput('p1', compress(trim(p1)));
   run;

   data _null_;
      sy1=&seed2 +1;
      call streaminit(sy1);    
      y1=rand('gamma', &ay);
      y1=y1/&by;
      output;      
      call symput('y1', compress(trim(y1)));
   run;

   data _null_;
      sy2=&seed2 +2;
      call streaminit(sy2); 
      y2=rand('gamma', &ay);
      y1=y1/&by;
      output;      
      call symput('y2', compress(trim(y2)));
   run;

   data x;
      set x;      
      if x<&y1 and x<&y2 then flag=1;
      else flag=0;
   run;

   proc means noprint data=x;
      var flag;
      output out=p2 mean=p2;
   run;

   data _null_;
      set p2;      
      call symput('p2', compress(trim(p2)));
   run;   

   data _null_;
      sx1=&seed1 +1;
      call streaminit(sx1); 
      x1=rand('gamma', &ax);
      x1=x1/&bx;
      output;      
      call symput('x1', compress(trim(x1)));
   run;   

   data _null_;
      sx2=&seed1 +2;
      call streaminit(sx2);
      x2=rand('gamma', &ax);
      x2=x2/&bx;
      output;      
      call symput('x2', compress(trim(x2)));
   run;

   data y;
      set y;      
      if y>&x1 and y>x2 then flag=1;
      else flag=0;
   run;

   proc means noprint data=y;
      var flag;
      output out=p3 mean=p3;
   run;

   data _null_;
      set p3;      
      call symput('p3', compress(trim(p3)));      
   run;

   title 'Gamma Distribution';   
   %MSpower(&beta., &p1., &p2., &p3., &alpha.);
%mend simgamma;
%simgamma(1, 100, 25, 35,5, 5, 0.2, simN=10000, alpha=0.05);

当治疗结果服从伽马分布时,该宏用于计算提供指定功效以拒绝原假设所需的最小样本量。参数与 %simnorm 宏类似。运行结果表明,若对照组治疗结果服从均值为 25、标准差为 5 的伽马分布,实验组治疗结果服从均值为 35、标准差为 5 的伽马分布,使用蒙特卡罗模拟估计的 (p1)、(p2) 和 (p3) 分别为 0.9207、0.9935 和 1,提供 80% 功效以拒绝原假设的最小样本量为每个治疗组 9 名患者,总样本量 18 名患者时的实际功效为 81%。结果如下表:
| Sample Size | p1 | p2 | p3 | alpha | beta | power |
| — | — | — | — | — | — | — |
| 9 | 0.9207 | 0.9935 | 1 | 0.05 | 0.19013 | 0.80987 |

1.4 检测误差对富集设计的影响

当检测方法不能 100% 完美地将患者分为生物标志物阳性和阴性组时,相对效率公式可进行推广以考虑误差,且此类误差仅对富集设计产生负面影响。设 (S) 表示检测方法诊断生物标志物阳性患者的灵敏度,(T) 表示相应的特异度,则富集研究的治疗效果会被稀释。若 (n) 表示随机分配到靶向试验的患者数量,那么 (\frac{n}{S}) 是为纳入 (n) 名随机患者所需筛查的预期患者数量。

检测方法的特异度对于确定靶向临床试验在所需随机患者数量方面的效率至关重要,而检测方法的灵敏度在所需筛查患者数量方面起着关键作用。最相关的检测方法是能够识别对新治疗比对照更有反应的患者的方法,在对照治疗有活性时尤为重要。

研究人员通过广泛模拟评估了富集设计与全人群设计的相对效率,得出以下结论:
- 当治疗效果仅限于生物标志物阳性患者且检测方法的特异度接近 1 时,富集设计在随机患者数量和筛查患者数量方面通常比全人群设计更有效。随着检测方法特异度的降低,效率会下降。
- 若生物标志物阴性患者的治疗效果是阳性患者的一半,即使检测方法完美,富集设计也需要比未选择设计更多的患者进行筛查。富集设计增加的筛查患者数量关键取决于检测方法的灵敏度。在这种情况下,除非检测方法的特异度接近 1,否则富集设计在随机患者数量方面没有显著优势。此时,首选设计的选择将取决于其他因素,如筛查与随机化的相对成本、安全性和耐受性概况以及更广泛标签适应症的商业价值。

2. 自适应富集设计

2.1 引言

医药和生物技术研究的投入增加并未反映出临床试验开发成功率的提高。美国食品药品监督管理局(FDA)发起了“关键路径倡议”,鼓励创新临床试验设计,特别是利用先验经验和累积数据的自适应设计方法。自适应设计允许在试验启动后对试验和/或统计程序进行调整,而不损害试验的有效性和完整性。过去十年,自适应设计方法在临床试验中的应用因其灵活性和效率而变得非常流行,但也带来了复杂性、后勤挑战和其他操作问题。常见的前瞻性预定义调整包括:
- 组序贯设计
- 样本量重新估计设计
- 自适应剂量寻找设计
- 淘汰失败者设计
- 自适应随机化设计
- 自适应治疗切换设计
- 假设自适应设计
- 自适应无缝试验设计
- 多重自适应设计

这里主要讨论与生物标志物选择和富集相关的自适应设计。

2.2 频率主义方法

2.2.1 自适应特征设计

经典设计通常只涉及一个生物标志物,且假设该生物标志物阳性集可以预先确定。自适应特征设计旨在使用大量潜在生物标志物选择亚组,适用于潜在生物标志物和临界值均未知,但有证据表明靶向治疗可能对某些候选生物标志物有效的情况。该设计最初是结合遗传标记提出的。其包含三个要素:
- 试验在试验结束时具有检测总体治疗效果的功效。
- 在试验第一阶段识别可能从靶向治疗中获益的患者亚组。
- 基于在后半部分试验中随机分配的患者亚组进行统计假设检验,以检测治疗差异。

具体步骤如下:
1. 总体检验 :在总体人群中进行初始原假设检验,检验靶向治疗相对于对照的益处,检验在略低于总体显著性水平 (\alpha = 0.05)(如 0.04 或 0.03)下进行。若原假设被拒绝,则靶向治疗被宣布对总体人群优于对照治疗,分析结束。
2. 亚组选择 :若第一个假设未被拒绝,则使用特征组件选择潜在有前景的生物标志物亚组。将研究人群分为训练或开发子样本和验证子样本。训练子样本用于开发预测靶向治疗与对照治疗差异的模型,即益处函数,如最小优势比或风险差异。使用该益处函数对每个受试者进行预测并计算预测分数,根据预定义的临界值选择亚组。在该亚组中进行第二个假设检验,检验靶向治疗相对于对照的益处,此检验在更低的显著性水平(如 0.01 或 0.02)下进行。

2.2.2 生物标志物自适应阈值设计

该设计将总体治疗效果检验与预定义生物标志物亚组临界值的开发和验证相结合。统计假设检验通过分割总体 I 型错误率 (\alpha) 进行。首先在 (\alpha_1) 水平上比较总体人群的治疗反应,若不显著,则在 (\alpha_2) 水平上进行第二次检验。例如,若无益处的原假设在 0.04 的显著性水平下被拒绝,则停止检验;否则,在 0.01 水平下检验假设,以控制总体 (\alpha) 低于 0.05 水平。使用简化的临界值模型将总体患者人群分为生物标志物阳性(敏感)和阴性(非敏感)两组。

为了计算临床试验所需的样本量,开发了 %events 宏:

%macro events(delta, alpha, beta, pi);
data result;
  alpha=&alpha;
  power=1-&beta;
  delta=&delta;
  pi=&pi;
  za=quantile('Normal', 1-&alpha);
  zb=quantile('Normal', 1-&beta);
  logd=log(&delta);
  D=4*((za+zb)/logd)**2;
  Ds=D/(pi**2);
  label delta='hazard ratio';
  label pi="treatment effect fraction";
  label Ds='events required';
run;

proc print noobs label;
  var alpha power delta pi Ds;
run;
%mend events;
%events(2, 0.05, 0.2, 0.8);

该宏的参数包括:
- delta :实验组与对照组的风险比
- alpha :显著性水平(单侧 I 型错误率)
- beta :假阴性率(II 型错误率)
- pi :治疗效果局限的人群比例;若治疗效果适用于整个研究人群,(pi = 1)

例如,若风险比为 0.5,治疗效果局限于总体人群的 80%,则在单侧显著性水平为 0.05 下,80% 功效研究所需的观察事件数为 80.4261,向上取整为 81 个事件。

该设计适用于已知生物标志物但定义阳性或阴性生物标志物亚组的阈值或临界值未知的情况。它结合了总体人群的正式假设检验和生物标志物定义亚组效应的不确定性,在提供统计严谨的 III 期新疗法评估方面具有显著效率,同时保留了总体 I 型错误率,并能在总体人群和生物标志物亚组中检测治疗效果。

2.2.3 交叉验证自适应特征设计

该设计是自适应特征设计的扩展,旨在优化自适应特征设计的开发和验证组件的效率。它能够对研究中可用的整个样本进行完全交叉验证,保留了总体研究的 I 型错误率,并提高了检测从靶向治疗中获益的患者亚组中具有临床意义的治疗差异的统计功效。

与自适应特征设计类似,首先在总体人群中进行初始原假设检验,检验靶向治疗相对于对照的益处,检验在略低于总体 (\alpha) 的显著性水平 (\alpha_1) 下进行。若该假设被拒绝,则靶向治疗被宣布对总体人群优于对照治疗,分析结束。若第一个假设未被拒绝,则使用特征组件选择潜在有前景的生物标志物亚组,即敏感亚组。敏感亚组通过使用全人群开发分类器来确定,具体步骤如下:
1. 将研究人群分为 (k) 个子样本。
2. 开发了用于交叉验证自适应特征设计的宏,并包含在补充材料的 cvasd.sas 中。使用这些宏需要指定三个数据集:
- OutcomeInput :包含受试者治疗和治疗结果信息的数据集。
- GeneInput :包含受试者基因信息的数据集,用于开发潜在生物标志物。
- TPInput :包含指定调优参数候选值的数据集。

以下是一个使用 %Decision 宏的示例:

libname perm “directory of sample data”;
%macro Decision(outcome, gene, par, alpha1, seed);
   %global seedit;
   %let seedit = &seed;
   data outcome;
      set &outcome;
   run;
   data gene;
      set &gene;
   run;
   data par;
      set &par;
   run;
   proc freq data=Outcome;
   table response*treatment/chisq;
   output out=chisqtest chisq;
   run;
   data _null_;
   set  chisqtest;
   call symput ("chisq_pvalue",P_PCHI);
   run;
   /*If the chi-squre test is significant based on prespecified*/ 
   /*alpha1, then print result and abort*/
   /*Otherwise, need to move on to CVASD stage*/
   %if  &chisq_pvalue <&alpha1 %then %do; 
   title "Chi-square Test SIGNIFICANT";
   proc print data=chisqtest;
   run;
   %abort;
   %end;
%mend Decision;
%Decision(perm.adsl, perm.adgene, perm.par, 0.04,12345);

该宏在指定的显著性水平 (\alpha_1) 下检验总体人群中靶向治疗相对于对照的益处,决定是否需要进入特征组件阶段。

交叉验证方法可以显著提高自适应特征设计的性能,因为它允许最大限度地利用信息来开发诊断特征,尤其在高维数据环境中,样本量或信噪比有限时非常有用。交叉验证还可以最大化用于测试(验证)特征的敏感患者亚组的规模。然而,该方法的一个缺点是所选基因集在部分病例被省略时可能不稳定,但这并不意味着分类不稳定或基于全数据集开发的分类器对独立数据的预测不准确。在高维基因谱分析中,良好的基因组特征通常不是唯一的预测生物标志物,但它们通常是相关的,因此成功捕获预测遗传信息更为重要。

2.2.4 自适应无缝 II/III 期设计

无缝设计将传统上在单独试验中解决的目标合并到一个试验中,消除了试验之间的时间间隔,并可能在总患者数量或长期随访方面提供额外效率。自适应无缝设计结合了试验和分析,最终分析使用适应前后患者的数据。

常见的方法包括自适应 p 值组合方法及其变体,使用这些方法可以在不影响家族 I 型错误率的情况下进行许多中期试验设计修改,包括人群选择。然而,基于 p 值的无缝设计组合方法仅限于单一终点。另一种方法使用多元正态方法,是对组序贯计算的修改。这些方法对中期和最终阶段的检验统计量的联合分布以及亚组人群之间的关系做出了一些假设,因此在用于人群选择时可能会变得复杂。

在 FDA 的自适应设计指南中,无缝 II/III 期设计被认为是一种“不太被理解”的设计,由于统计和操作问题,FDA 要求申办者进行广泛的模拟,并尽早与卫生当局沟通。

2.2.5 灵活自适应无缝(富集)设计

该设计分两个阶段进行:
- 阶段 I :招募所有受试者进入试验。
- 阶段 II :根据中期数据,决定是继续在所有受试者中进行研究,还是仅在生物标志物亚组人群中进行研究。根据中期分析结果,阶段 II 测试可以在全人群、仅亚组人群或全人群和亚组作为共同主要人群中进行。

例如,Jenkins 等人提出的自适应无缝 II/III 期设计,允许在中期分析时选择合适的亚组,或继续在所有患者中进行研究,将亚组和全人群作为共同主要人群。该方法使用每个阶段最终终点的检验统计量组合进行假设检验,决定是否进入第二阶段基于与最终终点相关的中间或替代终点。该设计使用无进展生存期(PFS)作为中间终点,总生存期作为确认终点,适用于肿瘤学领域,但也可扩展到其他适应症。

该设计考虑了中期观察时最佳终点和人群的不确定性,具有额外的灵活性,可以在最终分析时对总体人群、亚组人群或共同主要终点进行测试,并可以在中期分析时因无效性而停止试验,从而降低了过早放弃有前景亚组的风险。

以下是计算子集功效的 %subpower 宏:

%macro subpower(f,alpha_a, beta_a, es_ratio, alpha_g);  

data result;
  f=&f;
  alpha_a=&alpha_a;
  beta_a=&beta_a;
  es_ratio=&es_ratio;
  za=quantile('Normal', 1-&alpha_a);
  zb=quantile('Normal', 1-&beta_a);
  zag=quantile('Normal', 1-&alpha_g);
  d=sqrt(&f)*es_ratio*(za+zb)-zag;
  sub_power=CDF('Normal', d);
  label es_ratio="effect size ratio";
  label f="sample size ratio";
run;

proc print noobs label;
  var f alpha_a beta_a es_ratio sub_power;
run;
%mend subpower; 
%subpower(0.5, 0.04, 0.2, 2, 0.01)

该宏的参数包括:
- f :样本量比
- alpha_a :检验总体人群的显著性水平
- beta_a :总体试验的 II 型错误率
- es_ratio :效应大小比
- alpha_g :检验亚组人群的显著性水平

例如,假设生物标志物亚组的患病率为 50%,总体人群和亚组的 (\alpha) 分割为 0.04 对 0.01,总体人群的功效为 80%,效应大小比为 2,则检测生物标志物亚组治疗效果的功效为 91%。

在有多次观察和多个亚组的情况下,可以采用多种多重性方法来控制家族错误率在名义水平,例如使用封闭检验程序考虑所有可能的交集假设,使用 Hochberg 校正或 Dunnett 方法计算用于考虑多重性的 p 值,最终分析使用逆正态 p 值组合检验在总体人群中进行。

2.3 贝叶斯方法

2.3.1 贝叶斯自适应随机化(BAR)富集设计

自适应临床试验的一个重要特征是利用中期数据不断更新设计,这与贝叶斯范式自然契合。贝叶斯方法通过更新先验信念来处理新数据,直接提供关于治疗效果的概率陈述。与频率主义自适应设计需要控制 I 型错误率不同,贝叶斯推断不受中期分析次数或时间的影响,允许对累积研究数据进行多次分析以更新所研究的概率。因此,贝叶斯设计适用于自适应富集设计,可根据新兴数据进行入组、随机化比例和亚组选择的调整,尤其在探索性研究中筛选生物标志物时具有吸引力。

与频率主义设计中的等(或固定比例)随机化方法不同,这种贝叶斯设计实施自适应随机化方法,允许同时评估治疗和生物标志物,根据患者的标志物特征为更多患者提供可能更有效的治疗。贝叶斯设计通常基于感兴趣终点的层次模型,模型参数是随机变量,用于建模治疗、生物标志物与感兴趣结果之间的关联的随机效应。通过使用层次模型,可以在不同亚组之间借用信息以提高效率。

在评估两种治疗和一种二元生物标志物的常见情况下,BAR 设计可以实现以下三个目标:
- 测试标志物是预后性还是预测性。
- 测试新治疗在所有患者或某些标志物亚组患者中是否比标准治疗更有效。
- 根据患者的标志物状态为更多患者分配更有效的治疗,从而在试验中更好地治疗患者。

BAR 富集设计可以自然地扩展到多种治疗和多种标志物。对于基线特征属于标志物组 (j) 的患者,假设治疗 (i) 的效应大小的后验估计为 (\theta_{ij}),则分配到治疗 (i) 的随机化比例可以表示为 (\frac{e^{\lambda\theta_{ij}}}{\sum_{k}e^{\lambda\theta_{kj}}}),其中 (\lambda) 是调优参数。当 (\lambda = 0) 时,对应于等随机化;当 (\lambda \to \infty) 时,成为“胜者全拿”设计,即下一个患者被分配到根据现有数据表现最好的治疗,不涉及随机化。(\lambda) 越大,随机化越不平衡。

BAR 富集设计已成功应用于多个肿瘤学领域的高调临床试验。例如,肺癌消除的生物标志物整合靶向治疗(BATTLE)试验,使用贝叶斯概率模型结合自适应随机化来表征每个治疗在标志物亚组中的疾病控制率。另一个例子是 I - SPY 2 试验,用于局部晚期乳腺癌患者的新辅助治疗,通过采用创新的 BAR 设计,旨在在一半的时间内、以较低的成本和显著减少的参与者数量测试新治疗。

然而,BAR 设计的一个明显局限性是自适应随机化需要快速周转时间来从中期数据中学习并调整随机化率,因此仅适用于能够在相对较短时间内评估终点的试验。此外,有研究比较了结果自适应随机化设计与固定 1:1 或 2:1 随机化设计,发现结果自适应随机化在两臂试验中相对于固定随机化设计没有明显优势,但在多臂试验中具有更大的潜力。

2.3.2 贝叶斯/频率主义生物标志物 - 治疗相互作用设计

在生存终点和仅有一种生物标志物的情况下,Karurui 和 Simon 提出了一种两阶段贝叶斯设计,类似于 Freidlin 和 Simon 以及 Wang 等人的频率主义设计。具体而言,这是 Wang 等人自适应设计的贝叶斯版本,基于中期分析中第一阶段数据的生物标志物阳性和阴性层内治疗效果的后验分布来决定患者招募和试验进展。这本质上是一种混合贝叶斯/频率主义设计,利用了贝叶斯方法结合对候选预测生物标志物的先验信心的灵活性,同时控制了满足传统频率主义 III 期试验标准的 I 型和 II 型错误率。

在中期分析时,将后验概率与预先指定的阈值进行比较,并采取以下三种可能的行动:
- 停止试验。
- 在中期阶段停止招募生物标志物阴性组患者。
- 继续招募阴性和阳性患者。

该设计能够在数据表明无益处时限制测试阴性患者接受测试药物的数量,并且相对于 Wang 等人的频率主义设计具有一些优势。

综上所述,不同的富集设计和自适应方法在临床试验中各有优缺点,研究人员需要根据具体情况选择合适的设计和方法,以提高试验效率、降低成本并确保试验结果的可靠性。在实际应用中,还需要综合考虑统计、操作、伦理和商业等多方面因素。未来,随着技术的不断发展和研究的深入,这些设计和方法有望进一步优化和完善,为新药研发和临床治疗提供更有力的支持。

2.3 贝叶斯方法(续)

2.3.1 贝叶斯自适应随机化(BAR)富集设计(续)

为了更清晰地理解 BAR 设计的流程,我们可以通过以下 mermaid 流程图展示:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px

    A([开始试验]):::startend --> B(收集患者基线标志物信息):::process
    B --> C(根据现有数据计算随机化比例):::process
    C --> D{随机分配患者到治疗组}:::decision
    D -->|治疗 1| E(治疗 1 组患者接受治疗):::process
    D -->|治疗 2| F(治疗 2 组患者接受治疗):::process
    E --> G(收集治疗结果数据):::process
    F --> G
    G --> H(更新随机化比例):::process
    H --> I{是否达到试验终点}:::decision
    I -->|否| C
    I -->|是| J([结束试验]):::startend

从这个流程图可以看出,BAR 设计是一个动态的过程,不断根据新的数据调整随机化比例,以实现为更多患者提供更有效治疗的目标。

2.3.2 贝叶斯/频率主义生物标志物 - 治疗相互作用设计(续)

该设计的决策过程可以通过以下表格更清晰地展示:
| 后验概率与阈值比较结果 | 行动 |
| — | — |
| 后验概率高于阈值且表明治疗效果显著 | 停止试验,宣布新治疗有效 |
| 后验概率表明生物标志物阴性组无益处 | 停止招募生物标志物阴性组患者 |
| 后验概率未达到停止条件 | 继续招募阴性和阳性患者 |

这个表格明确了在中期分析时根据不同的后验概率情况所采取的具体行动,有助于研究人员在实际操作中做出准确的决策。

3. 不同设计方法的对比与选择

3.1 经典富集设计与自适应富集设计对比

经典富集设计和自适应富集设计各有其特点和适用场景,以下是它们的对比表格:
| 设计类型 | 优点 | 缺点 | 适用场景 |
| — | — | — | — |
| 经典富集设计 | 设计相对简单,易于理解和实施;在检测方法特异度高时效率高 | 对检测方法要求高,特异度降低时效率下降;不能根据试验过程中的数据进行调整 | 治疗效果明确局限于生物标志物阳性患者,且检测方法特异度接近 1 的情况 |
| 自适应富集设计 | 可以根据试验中的累积数据进行调整,提高试验效率;能更好地处理不确定因素,如生物标志物和临界值未知的情况 | 设计和实施复杂,需要专业的统计知识和技术支持;可能增加操作成本和时间 | 潜在生物标志物和临界值未知,但有证据表明靶向治疗可能有效的情况;需要在试验过程中灵活调整的情况 |

3.2 频率主义方法与贝叶斯方法对比

频率主义方法和贝叶斯方法在自适应富集设计中也有不同的特点,具体对比如下:
| 方法类型 | 优点 | 缺点 | 适用场景 |
| — | — | — | — |
| 频率主义方法 | 严格控制 I 型错误率,结果具有较高的可靠性和可重复性;有成熟的统计理论和方法支持 | 需要预先确定试验设计和统计分析计划,缺乏灵活性;对中期分析次数和时间有限制 | 对试验结果的可靠性要求高,需要严格控制错误率的情况 |
| 贝叶斯方法 | 可以根据新数据不断更新先验信念,提供直接的概率陈述;不受中期分析次数和时间的影响,具有更高的灵活性 | 先验信念的选择可能存在主观性;对统计模型和计算能力要求较高 | 需要根据试验过程中的数据进行实时调整,探索性研究中筛选生物标志物的情况 |

3.3 设计方法选择的考虑因素

在选择具体的设计方法时,研究人员需要综合考虑以下因素:
- 生物标志物信息 :如果生物标志物和临界值已知,经典富集设计可能是一个选择;如果未知,则自适应富集设计更合适。
- 试验阶段 :在早期探索性试验中,贝叶斯方法的灵活性可能更有优势;在后期确证性试验中,频率主义方法的可靠性更受重视。
- 资源和时间限制 :自适应设计通常需要更多的资源和时间进行设计和实施,如果资源和时间有限,经典设计可能更可行。
- 伦理和商业因素 :例如,是否需要尽快为更多患者提供有效治疗,以及更广泛标签适应症的商业价值等。

通过综合考虑这些因素,研究人员可以选择最适合的设计方法,以提高临床试验的效率和成功率。

4. 总结

综上所述,在临床试验中,富集设计和自适应设计方法为提高试验效率、降低成本和确保结果可靠性提供了多种选择。经典富集设计在特定条件下具有较高的效率,但对检测方法要求较高;自适应富集设计则通过利用累积数据进行灵活调整,适用于更复杂和不确定的情况。频率主义方法和贝叶斯方法在自适应设计中各有优劣,研究人员需要根据生物标志物信息、试验阶段、资源和时间限制以及伦理和商业因素等综合考虑,选择最合适的设计方法。

未来,随着医学和统计学的不断发展,这些设计方法有望进一步优化和完善。例如,随着基因检测技术的提高,生物标志物的鉴定和筛选将更加准确和高效,这将为富集设计提供更好的基础。同时,统计方法的不断创新也将使自适应设计更加灵活和可靠。此外,多组学数据的整合和人工智能技术的应用也可能为临床试验设计带来新的突破。研究人员应密切关注这些发展趋势,不断探索和应用新的设计方法,以推动新药研发和临床治疗的进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值