国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

變化區(qū)組隨機化及其SAS宏實現(xiàn)

2022-10-12 01:55謝金亮何韻婷王筱金王炳順
中國衛(wèi)生統(tǒng)計 2022年4期
關(guān)鍵詞:宏程序樣本量臨床試驗

謝金亮 何韻婷 王筱金 何 豪 王炳順Δ

【提 要】 目的 非固定區(qū)組長度可有效降低隨機對照臨床試驗(RCT)中區(qū)組隨機化分組的可預(yù)測性,為此編制全自動SAS宏程序?qū)崿F(xiàn)變化區(qū)組隨機化。方法 結(jié)合變化區(qū)組隨機化的原理編制SAS宏程序,通過模擬實例演示程序的使用。結(jié)果 輸入設(shè)定的宏變量參數(shù),運行SAS宏程序即可生成變化區(qū)組隨機化的受試者分配方案。此外,該SAS宏能實現(xiàn)多臂不等比RCT的分配問題,提供了受試者隨機分配序列重現(xiàn)的功能。結(jié)論 多區(qū)組長度的設(shè)置和區(qū)組長度的隨機選擇能夠降低分組可預(yù)測性,避免隨機分組階段選擇偏倚的產(chǎn)生。本文的SAS宏為隨機對照臨床試驗實現(xiàn)變化區(qū)組隨機化提供了便利。

隨機化是隨機對照臨床試驗(RCT)設(shè)計的基本原則之一。適宜的隨機化方法可以避免選擇偏倚的產(chǎn)生和平衡未知因素的影響[1]。RCT常用的經(jīng)典隨機化方法有簡單隨機化、區(qū)組隨機化及分層隨機化等。區(qū)組隨機化能夠確保各組樣本量均衡,達到最大的試驗效率[2-3],以及消除入組時間差異對處理效應(yīng)的影響。因此,區(qū)組隨機化常受到臨床試驗研究者的青睞。

不可預(yù)測性是隨機化的要旨之一,是指試驗相關(guān)人員在隨機分配實施前不能預(yù)先知曉治療分配的相關(guān)信息。不可預(yù)測性的破壞會導(dǎo)致RCT的分配隱藏(allocation concealment)措施受損,處理組治療效果甚至?xí)环糯蟾哌_40%[4-5]。傳統(tǒng)區(qū)組隨機化的運用會增加隨機分配序列的可預(yù)測風(fēng)險[6]。基于傳統(tǒng)區(qū)組隨機化的原理,以隨機選擇的區(qū)組長度替代固定區(qū)組長度的設(shè)置,能夠有效降低隨機分組的可預(yù)測性,該隨機分組方法稱為變化區(qū)組(varying block sizes)隨機化[7],現(xiàn)已越來越多地運用于臨床研究。

已有一些便利實現(xiàn)變化區(qū)組隨機化的SAS程序公開發(fā)表。然而,此前報道的變化區(qū)組隨機化SAS程序存在諸多局限,主要有①不是基于宏的程序顯得冗長,參數(shù)需做較多修改;②適用范圍較局限,多用于最簡單的1∶1平行組對照設(shè)計;③無法實現(xiàn)自動生成種子數(shù)并據(jù)此種子數(shù)重現(xiàn)分組的需求[7-9]。2021年9月8日國家藥監(jiān)局發(fā)布的《藥物臨床試驗隨機分配指導(dǎo)原則(征求意見稿)》明確提出,可以在同一研究中設(shè)置多個區(qū)組長度以盡可能減少分組的可預(yù)測性[10]。為此,本文旨在開發(fā)簡單易用的SAS宏,幫助臨床研究者更好理解變化區(qū)組隨機化以便更好地應(yīng)用。

方 法

1.變化區(qū)組隨機化

區(qū)組隨機化是指將具有相似屬性(如接受治療時間、體重、種族等)的受試者劃分成若干個大小相等的區(qū)組,區(qū)組內(nèi)的各組別受試者比例與總的各組別受試者比例相等。各區(qū)組內(nèi)的受試者按一定比例(通常為1∶1)隨機分配至各處理組,最后得到各組樣本量符合預(yù)期比例的隨機分配方案。區(qū)組隨機化與其他隨機化方法的顯著區(qū)別在于增加了區(qū)組的設(shè)置,通常以“區(qū)組長度”或“區(qū)組大小”來描述各區(qū)組內(nèi)的受試者數(shù)量。

變化區(qū)組隨機化是相對于傳統(tǒng)區(qū)組隨機化而言的,其以隨機可變的區(qū)組長度代替固定長度的區(qū)組,即相鄰區(qū)組的樣本量不一定相等且研究者無法知曉各區(qū)組的區(qū)組長度。研究者可以根據(jù)方案中設(shè)定的樣本量和設(shè)置的多個“區(qū)組長度”,將受試者隨機劃分成若干個大小不等的區(qū)組。“區(qū)組長度”通常設(shè)置為2類或3類,區(qū)組長度一般取比較組數(shù)的倍數(shù)。例如,當(dāng)試驗為雙臂RCT時,區(qū)組長度可取4、6、8[11]。

2.SAS宏程序

(1)SAS宏的各類變量說明

本文通過結(jié)合循環(huán)語句、ranuni函數(shù)以及proc rank步驟實現(xiàn)變化區(qū)組隨機化,運用SAS 9.4進行SAS宏的開發(fā)。在變化區(qū)組隨機化程序執(zhí)行過程涉及兩類變量:宏變量和運行過程中生成的新變量,變量的名稱和含義如表1所示。

表1 SAS宏主體中變量的設(shè)置和含義

(2)SAS宏主體及解釋

%macro RdmVBsize(samplesize=, trtnames=,blksizes=, outrtf=, seed=);

/*1.檢查是否定義了所有必選宏參數(shù)*/

%if %length(&samplesize)=0 %then %do;%go to ENDIT1;%end;

%if %length(&trtnames)=0 %then %do;%go to ENDIT1;%end;

%if %length(&blksizes)=0 %then %do;%go to ENDIT1;%end;

/*2.自動生成種子數(shù)*/

%if %length(&seed)=0 %then %do;

%let seed=%sysfunc(floor(%sysfunc(datetime())));

%end;

/*3.確定區(qū)組長度的數(shù)量和各個區(qū)組長度*/

%let Numblksize=%sysfunc(countw(&blksizes,%str()));

%do i=1 %to &Numblksize;

%let blksizes&i=%scan(&blksizes,&i,′ ′);

%end;

/*4.隨機分配區(qū)組長度*/

data work.plan;

sum=0;blk_id=0;sub_id=0;

do while(sum<&samplesize);

r=mod(input(ranuni(&seed)*100000000000,3.0),&Numblksize.);

%do i=1 %to &Numblksize.;

if r=%eval(&i.-1)then do;

size=&&blksizes&i.;

blk_id=blk_id+1;

sum=sum+size;end;

%end;

if sum>&samplesize then do;

sum=sum-size;

size=&samplesize-sum;

sum=sum+size;end;

do j=1 to size;

rand=ranuni(&seed);

sub_id=sub_id+1;

output;end;

end;

run;

/*5.確定各區(qū)組內(nèi)序列*/

proc rank data=plan out=plan;

by blk_id;var rand;

ranks rank;

run;

/*6.將各區(qū)組受試者隨機分配入組*/

%let trtnum=%sysfunc(countw(″&trtnames″,%str()));

%do i=1 %to &trtnum.;

data treat&i;

set plan;

if(size/&trtnum)*(&i-1)

treatment=scan(″&trtnames″,&i,″ );

output treat&i;end;

run;

%end;

/*7.輸出分配方案*/

data allocation;set treat:;by sub_id;run;

proc datasets lib=work noprint;

delete plan Treat:;

run;quit;

ods rtf file=“&outrtf.”bodytitle;

title1 “變化區(qū)組隨機化分配方案”;

title2 “樣本量=&SampleSize.區(qū)組長度=&blksizes種子數(shù)=&seed.”;

proc report data=allocation nowd headline;

column sub_id blk_id size rank treatment;

define sub_id/“隨機入組例號” center;

define blk_id/“區(qū)組ID” center;

define size/“區(qū)組長度” center;

define rank/“區(qū)組內(nèi)序列” center;

define treatment/“處理分組” center;

run;

ods rtf close;

%goto ENDIT2;

%ENDIT1:

%PUT ERROR:MACRO STOPPED-MUST ENTER THE RIGHT PARAMETERS.;

%ENDIT2:

%mend RdmVBsize;

結(jié) 果

本研究通過模擬兩個RCT的隨機化情境,展示如何利用變化區(qū)組隨機化SAS宏程序,生成不同RCT情境下的受試者隨機分配序列。

示例1:一項單中心平行對照臨床試驗,計劃招募48名受試者,運用變化區(qū)組隨機化方法,將受試者以1∶1的比例隨機分配至處理組和對照組。研究者設(shè)置兩個區(qū)組長度(4、6),執(zhí)行SAS宏得到受試者隨機分配表,部分結(jié)果如表2所示。

表2 示例1變化區(qū)組隨機化的部分分配方案樣本量=48 區(qū)組長度=4 6 種子數(shù)=1950126068

%RdmVBsize(samplesize=48,

trtnames=intervention control,

blksizes=4 6,

outrtf=D:RdmVBsize1.doc;

seed=);

假若有存檔或驗證方面需求,將自動生成的種子數(shù)填入對應(yīng)宏參數(shù)位置,即可重現(xiàn)上述隨機分配序列。如:

%RdmVBsize(samplesize=48,

trtnames=intervention control,

blksizes=4 6,

outrtf=D:RdmVBsize1Rep.doc;

seed=1950126068);

示例2:一項三臂RCT,計劃納入200例患者,將患者以2:2:1的比例隨機分配至A藥組、B藥組及安慰劑組。研究者設(shè)置的三個區(qū)組長度(5、10、15),運行變化區(qū)組隨機化SAS宏,得到的部分分配結(jié)果如表3所示。SAS宏調(diào)用如下:

表3 示例2變化區(qū)組隨機化的部分分配方案樣本量=200 區(qū)組長度=5 10 15 種子數(shù)=1950126168

%RdmVBsize(samplesize=200,

trtnames=drugA drugA drugB drugB Placebo,

blksizes=5 10 15,

outrtf=D:RdmVBsize2.doc;

seed=);

討 論

1.傳統(tǒng)區(qū)組隨機化存在的風(fēng)險和改進

區(qū)組的設(shè)置使得比較組間保持均衡,同時避免入組時間趨勢對受試者分配的影響,提高了試驗效率。但區(qū)組長度的設(shè)置固定且較小[12],使隨機分配序列的可預(yù)測風(fēng)險增加并可能提前被揭秘,進而產(chǎn)生選擇偏倚。若應(yīng)用于開放性RCT,盲法的缺失會進一步增加可預(yù)測風(fēng)險,產(chǎn)生更嚴(yán)重的選擇偏倚。Rosenberger和Lachin提出以隨機變化的區(qū)組長度取代固定的區(qū)組大小,即使相關(guān)人員知曉區(qū)組長度也無法預(yù)測分配序列[13]。既往研究表明,變化區(qū)組隨機化的區(qū)組長度不小于相應(yīng)傳統(tǒng)區(qū)組隨機化時,前者的不可預(yù)測性明顯優(yōu)于后者[7],在多數(shù)醫(yī)療器械或外科手術(shù)類開放性臨床試驗中更加適用。

2.既往區(qū)組隨機化SAS編程思路及局限

臨床試驗實際工作中,通常采用權(quán)威的SAS統(tǒng)計軟件編程生成隨機化序列。Lei Li結(jié)合隨機化過程proc plan和if函數(shù)實現(xiàn)變化區(qū)組隨機化[8],其編程思路主要是:①重復(fù)執(zhí)行proc plan語句產(chǎn)生不同區(qū)組長度的區(qū)組的組內(nèi)序列,并整合分配序列數(shù)據(jù)集;②通過if函數(shù)指定各序列號的受試者入組。該編程思路存在一定局限:該SAS程序非宏程序,使用過程需要修改多處程序,智能化欠佳;使用者需要提前計算相關(guān)參數(shù),確保產(chǎn)生的序列數(shù)量與研究預(yù)設(shè)樣本量相等;區(qū)組長度的分配非隨機,即通過proc plan語句同時輸出區(qū)組長度相同的區(qū)組的組內(nèi)序列,導(dǎo)致最終分配方案中,區(qū)組長度相同的區(qū)組接連進行分組。

Jimmy Efird的變化區(qū)組隨機化SAS宏較簡潔[9],其編程思路如下:①區(qū)組長度隨機分配:ranuni函數(shù)產(chǎn)生并分配給區(qū)組隨機數(shù),if函數(shù)根據(jù)隨機數(shù)大小從預(yù)設(shè)區(qū)組長度中選取一個,作為該區(qū)組的區(qū)組長度;②區(qū)組內(nèi)序列確定:循環(huán)語句和ranuni函數(shù)聯(lián)用,逐一分配隨機數(shù),隨機數(shù)排序后得到區(qū)組內(nèi)序列;③分配入組:構(gòu)建序列與區(qū)組長度一半比較的不等式,將受試者以1∶1分配至不同處理組;④循環(huán)輸出各中心的各區(qū)組序列。Jimmy Efird的SAS宏,使用較繁瑣,需要在宏程序內(nèi)部修改多處參數(shù);區(qū)組長度的分配方法易出現(xiàn)序列數(shù)量與樣本量不一致的問題。此外,只能預(yù)設(shè)三個區(qū)組長度且并未整合所有區(qū)組的序列,不利于結(jié)果的重現(xiàn)。國內(nèi)學(xué)者的宏程序和Jimmy Efird的主要編程思路一致,程序語句和函數(shù)略有差異[7]。以uniform函數(shù)聯(lián)用產(chǎn)生隨機數(shù),接著proc rank語句進行排序并輸出區(qū)組內(nèi)序列。該宏程序冗長且可讀性欠佳;區(qū)組長度選擇少,只能預(yù)設(shè)兩個區(qū)組長度,其中一個已固定為2,區(qū)組長度小,不可預(yù)測較差。

由上可見,既往報道的變化區(qū)組SAS實現(xiàn)程序存在如下不足:無法滿足自動生成種子數(shù)并據(jù)此種子數(shù)重現(xiàn)分組的需求,不能對生成的隨機序列進行核驗;僅適用于平行組設(shè)計(1∶1)的RCT,適用范圍較窄;程序本身并非完全自動化,參數(shù)需在宏程序內(nèi)部進行修改和填寫。

3.其他軟件變化區(qū)組隨機化的實現(xiàn)

除SAS外其他統(tǒng)計軟件也有實現(xiàn)變化區(qū)組隨機化的相關(guān)程序。R語言中的隨機化程序包randomizeR,內(nèi)含能夠?qū)崿F(xiàn)變化區(qū)組隨機化的程序rpbrPar[14]。程序中blockrand函數(shù)能夠通過設(shè)置不同的參數(shù)實現(xiàn)區(qū)組長度隨機化分配,但它可能導(dǎo)致組間比例分布不均,以及產(chǎn)生的隨機化序列可能會超過預(yù)先指定的樣本大小,而且無法自動生成種子數(shù)。另一個程序包randomizr也存在類似問題[15]。Stata中也有實現(xiàn)變化區(qū)組隨機化的類似程序,但同樣可能會產(chǎn)生序列過多的問題[16]。

4.本文SAS宏的優(yōu)勢

本文SAS宏具體編寫過程前文已展示,其主要編程思路及相應(yīng)優(yōu)勢如下。①核驗宏變量和生成程序參數(shù):檢驗宏變量的輸入格式,確保程序正確運行;根據(jù)系統(tǒng)時間自動生成隨機化種子數(shù),提取預(yù)設(shè)的區(qū)組長度。②區(qū)組長度的隨機選擇:各區(qū)組通過循環(huán)語句和MOD函數(shù)從預(yù)設(shè)的區(qū)組長度中隨機選取一個,作為該區(qū)組的區(qū)組長度;比較區(qū)組長度的總和與樣本量的大小,判斷是否停止循環(huán),確保二者的一致性。③確定各區(qū)組內(nèi)序列:循環(huán)語句和ranuni函數(shù)聯(lián)用,逐一分配隨機數(shù),proc rank語句輸出區(qū)組內(nèi)序列。④分配入組:宏變量trtnames既能表示處理組數(shù),也能體現(xiàn)各處理組樣本量的比例。結(jié)合循環(huán)語句,使程序不再局限于雙臂(1∶1)RCT的受試者分配,能夠?qū)崿F(xiàn)多臂及各比較組不同比例RCT的受試者隨機化分配。⑤輸出分配方案:方案輸出過程,自動生成的隨機化種子數(shù)將顯示于隨機分配表的副標(biāo)題。倘若有重現(xiàn)性需求,在宏變量seed處輸入此前自動生成的種子數(shù),即可重現(xiàn)隨機序列。

目前,隨機對照臨床試驗常常是多中心臨床試驗,且各中心樣本量一般不相等。為此,可以根據(jù)方案中各中心樣本量分別設(shè)置相關(guān)參數(shù)分別執(zhí)行本宏,可以生成相應(yīng)的分配方案。該SAS宏的使用可能隨機出現(xiàn)小區(qū)組的情況,即最后一個區(qū)組的區(qū)組長度小于研究者預(yù)設(shè)的區(qū)組長度。但試驗相關(guān)人員無法知曉是否存在該區(qū)組,且該小區(qū)組的區(qū)組長度仍為比較組倍數(shù),同樣能將受試者以既定比例均衡分配至各組,并不會破壞預(yù)期的隨機分配比例和均衡性。

總之,變化區(qū)組隨機化通過提高隨機分配序列的不可預(yù)測性,盡可能避免受試者隨機入組階段選擇偏倚的產(chǎn)生,盡可能確保隨機對照試驗尤其是開放性臨床試驗研究結(jié)果的真實性。本文的SAS宏可以很方便地實現(xiàn)變化區(qū)組隨機化,可以滿足實際臨床研究中各組比例多樣化的需求,而且滿足隨機分配序列可重現(xiàn)性的要求,提升了程序的適用性和應(yīng)用的規(guī)范性。

猜你喜歡
宏程序樣本量臨床試驗
卡方檢驗的應(yīng)用條件
一種基于進化算法的概化理論最佳樣本量估計新方法:兼與三種傳統(tǒng)方法比較*
網(wǎng)絡(luò)Meta分析研究進展系列(二十):網(wǎng)絡(luò)Meta分析的樣本量計算及精確性評估
橢球槽宏程序編制及其Vericut仿真
家系抽樣大小對云南松遺傳力估算的影響
美國特戰(zhàn)司令部參與抗衰藥臨床試驗 合成一百余種新型NAD+增強劑
品管圈在持續(xù)改進醫(yī)療器械臨床試驗全周期質(zhì)量控制中的應(yīng)用
參加臨床試驗,也要“順道”
做事如做藥
宏程序在加工中心生產(chǎn)中的應(yīng)用