历史文章
笔者前面介绍了简单随机化分组方法在临床试验随机化分组中的应用,同时提出了“随机抽样法”来解决简单随机分组中可能存在的组间例数不平衡问起,一并给出了具体的SAS实现代码。接下来,笔者将介绍区组随机化分组在临床试验分组中的应用及其SAS实现。
针对简单随机化分组可能出现的组间例数不平衡问题,统计学家对简单随机化分组做了下“改良”--既然简单随机化可能得到有些组受试者例数较多而有些组受试者例数较少,那么是不是可以人为指定每个组有相同的受试者例数,只需要保证在分配这个过程保持随机就好。比方说,现在有30个受试者需要分到A、B、C三组中,我们先按照受试者的年龄从小到大排序并分成5组,针对每组中的6位受试者,使用简单随机方法,向A、B、C三组分别分配2例即可,这样就保证了每个分组的例数都为10。
区组随机化
定义:将随机加以约束,使各处理组的分配更加平衡,满足研究要求。在一个区间内包含一个预定的处理分组数目和比例。
区组:由若干特征相似的试验对象组成。如同一窝的动物、批号相同的试剂、体重相近的受试者等。临床试验中区组随机化常将受试者进入研究的时间序列作为划分区组的依据。
区组的长度:区组中对象的数目。
优点:区组随机化分组,避免简单随机化分组可能产生的不平衡现象,不仅提高统计学效率,而且保证分配率不存在时间趋势。
使用条件:区组的长度不宜太小,太小则形成不随机。一般区组的长度至少要求为组数的2倍以上。区组的长度也不宜太大,太大易使分段内不均衡,如果只有两个组别(试验组和对照组),区组的长度一般可取4-8,如果有4个组别则区组的长度至少为8。
需要说明的是,区组长度还与试验的疗程长短有关--对于疗程较短的疾病,患者入组快,结束快,区组长短影响不大,而对于疗程比较长的疾病,区组长度不宜过大。
一个栗子
一个临床试验有160名受试者,现在需要将其使用区组随机化方法分配到A、B两个试验组。先按照受试者进入研究的时间排序,同时设置区组长度为8(即每个区组内包含8名受试者),160例受试者划分成20个区组。对划分得到的每个区组,利用简单随机化方法即可得到分组结果--先给每个区组内的受试者编号(1-8号),然后在从随机数字表中随机地从某个位置开始连续取8个随机数给每个区组内的每一个受试者,并根据大小将每个随机数编上序号,规定每个区组内随机数序号在1-4范围内的受试者进入A组(实验组),随机数序号在5-8范围内的受试者进入B组(对照组)。比如,针对第一个区组,我们得到其分组结果如下表:
如此这般,重复以上过程,得到区组2至区组20的剩余19个区组的分组结果。
区组随机化分组的SAS实现
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
区组随机分组
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-;
*--init--;
%let block_num_subjects=160; *受试者的总例数;
%let block_num_groups=2; *需要分组的组数;
%let block_split_no=20; *划分的区组数目;
%let block_length=8; *区组长度,即每个区组内的受试者例数,通常为分组数目的2-4倍;
%let block_seed=20170709; *随机种子,通常取值为当前日期点;
proc datasets lib=work kill noprint;run;quit;
*--step0-划分区组,并得到受试者的随机数序号--;
proc plan seed=&block_seed.;
factors block=&block_split_no.
length=&block_length. ;
output out=block_export00;
quit;
*--step1-对各区组,根据随机数序号,将受试者分配到目标分组中--;
data block_export01;
id=_N_;
set block_export00;
group=ceil(length / (&block_length./&block_num_groups.));
run;
proc print noobs;run;