昆明醫科大學公共衛生學院流行病與衛生統計學系(650500) 肖媛媛 李曉梅 何利平 孟 瓊
【提 要】 目的 探討如何用SAS宏程序實現連續型變量不同截斷值對研究結果影響的敏感度分析。方法 采用自行編制的SAS宏程序,結合具體實例,演示連續型變量界值點敏感度分析的實現及結果的呈現。結果 該SAS宏程序可以按照研究者不同分析目的及設計精度進行連續型變量不同截斷值的敏感度分析。結論 當前研究所提供的SAS宏程序簡潔靈活,可在涉及定量變量二分類處理的醫學資料分析中推廣應用,對研究結果的穩健性進行更為全面的評價。
連續型變量的分類轉換在醫學資料的統計分析實踐中十分常見,尤其是根據某特定指標的取值將研究對象進行二分類(dichotomization)。常用的分類依據有兩種:一是采用公認的醫學參考值(medical reference value)來界定;而大多無參考值或無固定參考值的指標,則一般通過繪制受試者工作特征(receiver operating characteristic,ROC)曲線來確定最為適宜的截斷點(cut-off point)[1-2]。
敏感度分析(sensitivity analysis)是經濟學領域的一種常用研究方法,概括而言,其研究特定模型自變量(輸入)的變動對因變量(輸出)的影響[3]。由上不難看出,不論何種方法,對于連續型變量,用某一特定截斷點取值或參考值區間將其判定為截然不同的兩個分類顯然會有些武斷,從而導致對分類后分析結果可靠性的質疑。因此,十分有必要分析當界值點在其取值附近變動時,分析結果是否穩定,即對分析結果對于界值點取值變化進行敏感度分析。
由于連續型變量在其定義域內的任意區間均存在無窮多個取值,因此可行的敏感度分析策略一定是選擇某個或某些區間內、一定精度下、有限但足夠多個取值,分別探討其對因變量的影響,這樣的分析意圖往往涉及次數龐大的迭代(iteration),借助現有的編程式統計分析軟件(如SAS和R)方可便捷實現。但文獻檢索發現,目前尚無相關研究報道。本文將提出一種連續型變量界值點敏感度分析的SAS宏程序,并結合實例演示其分析結果,為推廣敏感度分析在醫學研究中的應用提供便利,也為提升醫學研究分析結果的穩健性(robustness)提供有力工具。

根據不同研究目的,本文提供多重線性回歸模型(multiple linear regression model)、logistic回歸模型(logistic regression model)、Cox比例風險模型(Cox proportional hazards model)、動態生存分析的Anderson-Gill計數過程模型(Anderson-Gill counting process model,AG模型)四種模型中連續型變量界值點敏感度分析的備選宏程序模塊,讀者也可依據SAS編程規則自行拓展至其他一般線性模型(generalized linear model)。
具體宏程序、備選模塊及注釋如下:
%macrosensitivity(start=,end=,interval=,);

%do i=&start %to &end %by &interval;
data database2;
set database1;
if variable<=&i then group=0;
if variable>&i then group=1;
run;
/*注釋:variable為擬進行敏感度分析的連續型變量,group為根據截斷點產生的二分類變量,database1為初始數據庫,database2為根據新的截斷點調整生成的數據庫*/
ods output ParameterEstimates=estimate1;/*注釋:estimate1為模型擬合結果輸出數據庫*/
/*以下提供Cox比例風險模型和動態生存分析的AG模型兩種模型中連續型變量界值點敏感度分析的宏程序備選模塊,讀者可根據分析需要,結合Cox比例風險模型的宏程序實現多重線性回歸分析及logistic回歸分析*/
/*Cox比例風險模型*/
proc phreg data=database2;
class var1 var2;
model(start end)*censor(0)=variable var1 var2 var3 var4 … varN;
run;
/*注釋:variable為擬進行敏感度分析的連續型變量,var1~varN為Cox比例風險模型中的其他協變量*/
/*動態生存分析的AG模型*/
proc phreg data=database2 covs(aggregate)covm;
class var1 var2;
model(start end)*censor(0)=variable var1 var2 var3 var4 … varN;
id subject;
run;
/*注釋:covs(aggregate)語句給出由Lin和Wei提出的穩健的夾心方差估計[5],model語句中,variable為擬進行敏感度分析的連續型變量,var1~varN為Cox比例風險模型中的其他協變量,id語句為夾心方差的調整依據,subject為研究對象的唯一識別編碼*/
ods output close;
data estimate2;
set estimate1;
cutoff=&i;


logistic回歸模型,效應值為OR
Cox比例風險模型,效應值為HR
AG模型,效應值為HR
where Parameter=“variable” and StdErrRatio ne.;
keep point lower upper cutoff;
run;
/*注釋:point,lower,upper分別是效應值點估計值、95%可信區間下限和上限*/
%if &i=&start %then %do;
data estimate3;
set estimate2;
%end;
%else %do;
proc append base=estimate3 data=estimate2;run;
%end;
/*注釋:estimate3為最后輸出的效應估計值及其95%可信區間匯總數據庫*/
dm ′clear output′;
dm ′clear log′;
dm ′odsresults;clear′;
%end;
%mend;

對于本例,我們設置精度為1 IU/L。則選擇上述宏程序模塊3,提交如下宏程序執行語句:
%simulation(start=70,end=120,interval=1);
執行后輸出的效應值及其95%可信區間匯總結果estimate3內容如表1所示。

表1 匯總結果數據庫內容
可以選擇采用繪圖軟件如Sigmaplot等更好地直觀展示敏感度分析結果,所繪制圖形如下:
從圖1不難看出:隨著ALP截斷點在70到120間變化,對于ALP較高的早期胰腺癌病人來說,其總體死亡風險基本上均顯著高于ALP較低的病人。可以認為研究結果穩健性較好。

圖1 不同ALP截斷點敏感度分析結果
廣泛意義上的敏感度分析涵蓋很多方面,除了本文研究內容所涉及的研究變量不同定義外,還包括探討不同統計分析方法、實驗流程變動、缺失值(missing data)及離群值(outliner)處理等對研究結果的影響[6]。由此不難看出,對于醫學資料的統計分析而言,敏感度分析是十分必要的。但與之形成鮮明對比的是,目前在醫學研究領域已發表的論文中,敏感度分析的使用比例卻非常低。在一項2013年的研究中,Thabane等對64篇已發表的英文論文進行梳理,發現僅有13篇在統計分析中采用了任意形式的敏感度分析,占20.3%[7]。
針對敏感度分析在醫學研究中應用不足、亟待推進的現狀,本文根據醫學資料統計分析實踐中經常涉及對連續型變量根據某一截斷值進行二分類處理的問題,提出了一種如何根據截斷點的不同取值,對研究結果進行敏感度分析的SAS宏程序。該宏程序簡潔、靈活,能根據研究人員的不同精度要求及分析意圖執行敏感度分析,為提升醫學研究統計分析結果的穩健性提供有力支持。