作者简介: 祁娟(1988-), 女, 湖北黄冈人, 在读硕士研究生,主要研究方向医学统计学在临床医学科研中应用。
目的介绍Pearson相关系数的Meta分析方法及其在SAS软件中的实现。方法以实例数据为例,编写SAS程序,运行出结果;将SAS运行结果和实例中应用软件结果进行比较。结果SAS软件运行结果和实例中应用软件结果无差异。结论本研究编写的SAS程序可以实现相关系数的Meta分析。
Objective To introduce the meta-analysis of correlation coefficient and its realization with SAS software.Method SAS program was written to run out of the results of instance data. SAS results were compared with the results from other software that used in the instance data.ResultsThere is no difference resulting from SAS or the software that used in the instance data.Conclusion SAS program that this study performed can realize meta- analysis of correlation coefficient.
Meta分析(meta-analysis) 是对具有相同研究目的、类型、内容的多个研究结果进行综合分析的一种定量方法。目前,已在教育学、心理学、社会科学等领域得到越来越广泛的应用。Meta分析所依据的资料是各个纳入文献的统计结果,主要有两类:一是各个研究的假设检验结果,如 t值、χ2值、 P值;二是各个研究报告的统计量,如两均数的差值、相关系数、优势比等。现有的参考书籍中有对两均数的差值、优势比等统计量的Meta分析相应的SAS程序,而基于相关系数Meta分析的SAS程序尚未见报道,故本文主要介绍基于Pearson相关系数的Meta分析在SAS程序中的实现。
大多数Meta分析在估计相关系数时,由于各个相关系数的方差过于依赖相关性[1]42,故不直接使用相关系数的值,而是先进行Fisher’s z转换,经过Fisher’s z转换后,其值的分布随着样本量增大趋于正态分布。Fisher’s z转换的公式为:
z = 0.5 × ln(
根据每个研究的样本量ni,分别给予不同的权重wi,得到合并的 z值,其公式为:
(2)
权重wi=ni-3,效应值的标准误为
SE=
Meta分析在合并效应值之前,首先要明确研究间是否存在异质性,即各研究结果的变异是否由随机误差引起[ 2]。可以采用 Q检验,其公式为:
Q统计量服从自由度为k-1(k为纳入Meta分析的文献数)的卡方分布,如果 Q <
h=
合并的效应值公式为:
对计算出的合并效应值是否为零进行统计推断。Hedges的合并效应值显著性检验公式为[1]42-72:
评价Meta分析中纳入的研究是否存在“发表偏倚”是进行Meta分析的一项预备性工作[ 3]。评价“发表偏倚”有多种方法,如定性法有“漏斗图”、“森林图法”,定量方法有Begg’s 检验、Egger’s 检验和Macaskill’s 检验等。本研究以实例数据编写的是Begg’s 检验的SAS程序。
以内外向性因子E与抑郁之间的相关系数数据为例。
data a;
input ni ri@@;
zi=0.5*LOG((1+ri)/(1-ri));/*z转换*/
wi=ni-3;/*权数*/
s_num=18;
cards;
138 -0.087 151 -0.233 637 -0.264 1334 -0.212
263 -0.168 987 -0.293 450 -0.215 571 -0.37
239 -0.219 510 -0.136 660 -0.158 258 -0.312
432 -0.135 337 -0.33 105 -0.289 430 -0.53
372 -0.283 1039 -0.172
;
data b; set a;
wi2=wi**2; wizi=wi*zi; wizi2=wi*zi**2;
swi1+wi; swi21+wi2; /*计算合计权数*/
swizi1+wizi; swizi21+wizi2;
Id=_n_;
if _n_=s_num then do;
swi=swi1; swi2=swi21;
swizi=swizi1; swizi2=swizi21;
zwbar=swizi/swi;/*zwbar为平均效应量*/
se1=1/swi∗∗0.5;/*效应值的标准误*/
Q=swizi2-zwbar**2*swi;/*异质性检验Q统计量*/
smu2=(Q-s_num+1)/(swi-swi2/swi);
end;
P=1-probchi(Q,s_num-1);/*异质性检验的p值*/
proc sort;
by descending Id;
data c; set b;
fr1=(exp(2*zwbar)-1)/(exp(2*zwbar)+1);
frlow=(exp(2*(zwbar-1.96*se1))-1)/(exp(2*(zwbar-1.96*se1))+1);
frup=(exp(2*(zwbar+1.96*se1))-1)/(exp(2*(zwbar+1.96*se1))+1);
/*frlow、frup分别为固定效应模型的相关系数r的95%置信区间*/
smu2s+smu2;
wis=1/(wi**(-1)+smu2s);/*权数调整值*/
wiszi=wis*zi;
swis1+wis; swiszi1+wiszi;
if_n_=s_num then do;
swis=swis1; swiszi=swiszi1;
zbar=swiszi/swis;/*调整权数后平均效应量的计算*/
se2=1/swis**0.5;/*sy2为效应量加权均数的标准误*/
z=zbar/se2;/*合并效应量的假设检验*/
p_z=1-probnorm(abs(z));
fr2=(exp(2∗zbar)-1)/(exp(2∗zbar)+1);/*将平均效应量z转化为r值*/
rlow=(exp(2*(zbar-1.96*se2))-1)/(exp(2*(zbar-1.96*se2))+1);
rup=(exp(2*(zbar+1.96*se2))-1)/(exp(2*(zbar+1.96*se2))+1);
/*rlow、rup分别为随机效应模型的相关系数r的95%置信区间*/
end;
proc print;
run;
data d;
set b;
/* 产生 egger’s 检验用应变量 y 和自变量 x*/
egger_y=zi/(wi**0.5)**(-1);
egger_x=1/(wi**0.5)**(-1);
/* egger’s 检验程序*/
proc reg;
model egger_y=egger_x;
run;
Meta分析过程中对纳入的研究进行异质性检验时,如果异质性较大,先要分析异质性的来源,如研究的设计类型、干预措施等,仔细核查研究结果是否有错写的可能。若异质性过大,特别在效应的方向上极其不一致,也无法找出合理的理由解释时,这时候引用平均效应量也许会导致误导,应考虑放弃Meta分析,只作一般的统计描述[ 4]。
比较单个研究效应值与合并效应值各自情况下的异质性检验结果、Egger’s检验结果,如果存在发表偏倚,排除对合并结果影响较大的研究。在本文中,给出了异质性检验和Egger’s检验的SAS语句,由于篇幅有限,无法进行动态的演练分析过程。
SAS软件功能非常强大,可以对各类型资料进行Meta分析。本文以实例讲解了相关系数资料的Meta分析,SAS语句展示过程中没有给出绘制漏斗图等程序语句,发表偏倚仅用Egger’s检验方法,关于Begg’s检验、Macaskill’s检验的SAS程序、漏斗图的绘制,感兴趣的学者可以参考相关文献[ 5, 6]。