|
【摘要】 目的:用SAS程序帮助实现层次分析法的综合评价,从而简化运算过程,提高计算的准确度。方法:对层次分析法中权重系数计算和检验过程编SAS程序。结果:将原始判断优势矩阵输入SAS程序中的相应数组后,运行程序便可很快得到归一化权重系数和随机一致性比率,并得出各评价对象综合评分指数和排序结果。结论:笔者编写的层次分析法综合评价SAS程序具有通用、简便、实用和可操作性强的特点,在实际综合评价工作实践中具有很强的实用价值。
【关键词】 层次分析法; 权重系数; 矩阵; 综合评价; SAS
层次分析法(analytic hierarchy process,简称AHP)由美国科学家T.L.Saaty于20世纪70年代提出,是用系统分析的方法,对评价对象依评价目的所确定的总评价目标进行连续性分解,得到各级(各层)评价目标,并以最下层作为衡量目标达到程度的评价指标。然后依据这些指标计算出一综合评分指数对评价对象的总评价目标进行评价,依其大小确定评价对象的优劣等级[1]。层次分析法是综合评价中较为重要的方法,是分析一类相互关联、相互制约众多因素构成复杂系统的系统分析方法。目前该法多用于卫生事业管理方面,如医院工作质量的评价。
虽然层次分析法优点较多,目前的运用变得越来越普遍,但是其计算过程较为烦锁,表现在计算公式多,且需要重复多次计算。多步骤的四舍五入而累积的计算误差可能导致结果产生较大的偏甚至错误。因此为层次分析法的计算及检验过程偏写SAS程序以简化运算并提高计算的准确性就显得很有必要。以下就以医院工作质量综合评价为例来演示运用SAS程序实现层次分析法的综合评价。
1 层次分析法综合评价法步骤及计算公式示例[1]:
对医院工作质量进行综合评价的基本步骤为:
1.1 建立目标图
对总评价目标进行连续性分解以得到不同层次的评价目标,将各层评价目标用图有机地标示出来,即建立目标树图。例如对某个综合医院(评价对象)的工作质量(总评价目标)进行评估,按系统分析的方法,医院工作质量这个总评价目标可通过医疗工作,护理工作、膳食供应等三个次级目标来反映,而这三个次级目标又可通过各自的次级目标来反映,像医疗工作可通过医疗制度、医疗质量、病床使用等三个次级目标反映。如此分解下去便可建立一个医院工作质量的目标图,如图1所示。图1 医院工作质量评价目标树图
1.2 计算权重系数
在同一层评价目标依据各个评价目标对总评价目标作用价值的大小分别赋予一定的系数。例如医院工作质量而言,医疗工作最为重要,应赋予较大的权数,护理工作次之,膳食供应更次之,因而权重也小一点。权重计算步骤为:
1.2.1 对目标树自上而下分层一一对比打分,建立成对比较判断优选矩阵,评分标准见表1。表1 目标树图各层次评分标准
以目标树中第1个子目标分层为例,3个评价目标成对比较判断优选矩阵见表2。表2 第一层子目标成对比较判断优选矩阵
1.2.2 按公式W′i=mai1,ai2,…,aim 计算初始权重系数W′i 得
W′1=31×3×5=2.4662 ,同理得 W′2=1.0000 , W′3=0.4055
1.2.3 按公式Wi=W′i / mi=1W′i 计算归一化权重系数Wi 得
W1=2.46622.4662+1.0000+0.4055=0.6370
同理得W2 =0.2583 , W3=0.1047
用同样方法可获得其它分层中项目指数的权重系数。
1.3 对权重系数是否符合逻辑进行检验
在确定权系数过程中,靠人的主观判断而给出的判断矩阵,还必须通过一致性检验,以便尽可能消除人的主观判断的不一致性[2]。通用常用一致性指标CI检验该项目的相对优先顺序有无逻辑混乱,一般认为,当CI<0.01时,可能逻辑混乱,即计算得的各项权重可以接受。其中
CI=λMax-mm-1, λMax=mi=1λi / m ,λi=mj=1aijwj / wi
式中m为受检验层次的子目标数,λMax 为最大特征根,λi 为该层子目标成对比较判断优选矩阵的特征根。为了度量不同阶段矩阵是否具有满意的一致性,我们还需引入判断矩阵的平均随机一致性指标RI值。通常采用美国运筹学家Saaty教授创立的1~9 级标度法[3]。对于1~9阶判断矩阵,RI值见表3。 表3 1~9阶平均随机一致性指标RI的取值
对于1,2阶判断矩阵,RI只是形式上的,因为1,2阶判断矩阵具有完全一致性。当阶数大于2时,判断矩阵一致性指标CI与同阶平均随机一致性指标RI之比称为随机一致性比率,记为CR。
CR=CIRI ,当CR<0.1时,即可认为判断矩阵具有满意的一致性,否则就需要调整判断矩阵,并使之具有满意的一致性。本例,
λ1=(1/ 0.637+3×0.2583+5×0.1047) / 0.6370
=3.0383
λ2=(1/3×0.637+1×0.2583+3×0.1047) / 0.2583
=3.0298
λ3=(1/5×0.637+1/3×0.2583+1×0.1047) / 0.1047=3.0298
λMax=(3.0383+3.0298+3.0309)/3=3.033
CI=(3.033-3)/(3-1)=0.0165<0.1
CR=0.0165/0.58=0.0284<0.1
认为第一层子目标各项判断无逻辑错误。依此类推,运用此法可检测各层子目标权重系数是否合乎逻辑。
1.4 计算各评价指标权重系数及进行检验的SAS程序
/*计算各子目标归一化权重系数并检验是否符合逻辑*/
data ahp;
%let a=3; /*a为判断矩阵层数*/
array s(&a) ; /*定义初始权重系数数组*/
array w(&a); /*定义归一化权重系数数组*/
array z(&a,&a)
(1 3 5 0.33 1 3 0.2 0.33 1); /*判断优选矩阵原始数据*/
array t(&a); /*定义各指标特征根数组*/
array ri(9)(0 0 0.58 0.9 1.12 1.24 1.32 1.41 1.45);
/*1~9价平均随机一致性指标RI的取值*/
do i=1 to &a;
p=1;
do j=1 to &a;
p=p*z(i,j);
s(i)=p**(1/&a); /*计算初始权重系数*/
end; end;
do i=1 to &a; end;
do i=1 to &a;
num=0;
do j=1 to &a;
num=num+z(i,j)*w(j)/w(i);
end;
t(i)=num; /*该层子目标成对比较判断优选矩阵的特征根 */
end;
tmax=sum(of t(*))/&a; /*最大特征根 */
ci=(tmax-&a)/(&a-1); /*一致性指标CI*/
cr=ci/ri(&a); /* 随机一致性比率CR*/
run;
2 计算综合评分指数,对评价对象的总评价目标进行综合
评估2.1 计算综合评分指数GI并对其进行排序
首先手工计算各评价指标组合权重系数C* ,它等于各评价指标(即最后子目标)与其所属各上级子目标归一化权重系数的连乘积。综合评分指数GI按下列公式求得。GI=miCiPi ,式中Pi 为第i个评价指标的测量值,m为评价指标的个数。
某市6所医院综合评价数据见表4。表4 某市6所医院工作质量的综合评价表
评价指标Pi 组合权重Ci 医 院ABCDEF病床使用率0.189295.092.094.895.689.177.4治疗有效率0.229288.191.290.094.093.692.2重症收容率0.114515.48.37.93.19.53.7医疗制度执行优良率0.104174.753.461.950.061.967.1护理制度执行优良率0.258354.720.726.120.027.435.3膳食供应优良率0.104741.341.422.820.034.030.3综合评分指数GI66.254.555.052.556.555.5工作质量顺位154623
2.2 综合评分指数GI计算及排序SAS程序
/*计算工作质量评分指数GI*/
data score;
%let b=6; /*b为评价单位数*/
%let c=6; /*c为评价指标数*/
array score(&b);
Array cw(&b)(0.1892 0.2292 0.1145 0.1041 0.2583 0.1047 );
/*最后子目标与其所属各上级子目标归一化权重系数的连乘积*/
Array percent(&b,&c)(
95 92 94.8 95.6 89.1 77.4
88.1 91.2 90 94 93.6 92.2
15.4 8.3 7.9 3.1 9.5 3.7
74.7 53.4 61.9 50 61.9 67.1
54.7 20.7 26.1 20 27.4 35.5
41.3 41.4 22.8 20 34 30.3
); /*percent数组为各评价对象各评价指标的原始数据*/
array rank(&b) ;
Do i=1 to &b;
Num=0;
Do j=1 to &c;
Num=num+cw(j)*percent(j,i);
score(i)=num; /*score数组为各评价对象综合评分指数GI*/
End ;
End;
/*对GI指数进行排序*/
do i=1 to &b; rank(i)=1;
do j=1 to &b;
if score(i)=score(j) then
if i ne j then rank(i)=rank(i)+0.5;
if score(i)
end;end;
/*rank数组内各元素为各评价对象对应的综合评价名次,遇相同秩次时取平均秩*/
run;
3 讨论
3.1 层次分析法的优点缺点评价
层次分析法较其他方法更为合理地解决了权重的计算,各项指标对比等级划分较细,在综合评价时充分显示权重的重要;对原始数据直接加权计算出综合评价指数,充分利用原始信息量, 使评价结果更具切实性、合理性;建立层次结构是定性指标定量化,解决指标性质不一致难以比较的问题;运用一致性指标(CI) 检验以判断确定各项指标的权重有无逻辑上的混乱,具较强的科学性[4]。但是层次分析法在应用过程中确实也存在一些不足和弊端。主观判断难免会存在各种偏差,特别在指标较多的情况下,偏差可能越大,判断所得的判断矩阵就很难保证具有满意的一致性。另外,层次分析法的信息基础是判断矩阵,判断矩阵的一致性要求是层次分析法应用的关键前提,当评价者所得判断矩阵一致性较差时,需要结合研究目的来确定该判断矩阵是舍弃还是进行必要的检验与修正[5]。
3.2 笔者编写的层次分析法综合评价SAS程序具有通用、简便、实用和可操作性强的特点,具有一定的实用价值
鉴于层次分析方法的诸多优点及综合评价的运用越来越普遍,如何简化层次分析法综合评价计算及检验过程,提高其通用性、实用性和可操作性成为一个值得研究的问题。由于目前较为流行和权威的SPSS统计软件包和SAS统计软件包都没有提供层次分析法计算和检验的专用模块或是过程,手工计算量很大,费时费力而且容易出现错误,因此笔者对层次分析法的计算和检验过程编写了SAS程序,并在程序中提供了详细的注释。通过运用SAS程序对层次分析法综合评价实例进行计算和检验,可知整个评价SAS运算过程非常简单和快速,无需建立SAS数据集,只需更改SAS程序中判断矩阵层次数,再将原始数据输入程序中的相应数组,运行程序便可很快得到归一化权重系数及一致性检验结果。之后把最后评价指标与其所属各上级子目标归一化权重系数连乘得到各评价指标的组合权重系数,再将组合权重系数输入后续SAS程序中的相应数组,运行程序便可得到各评价对象综合评分指数和排序结果。整个SAS程序简明、流畅,可读性强,得出的计算结果详细、准确,并很好地避免了手工计算过程中因四舍五入导致的结果偏差甚至错误。综上所述,笔者编写的层次分析法综合评价SAS程序具有通用、简便、实用和可操作性强的特点,在实际综合评价工作实践中具有很强的实用价值。
【参考文献】
1 孙振球, 主编.医学统计学.北京:人民卫生出版社,2005.
2 吴祈宗.运筹学与最优化方法.北京:机械工业出版社,2003,251~256.
3 方积乾. 卫生统计学 . 北京:人民卫生出版社,2005,386~390.
4 王严,赵晓兰,宋佩茹. 层次分析法在评价医院感染管理质量中的应用. 中国预防医学杂志,2006,7(4):267~269.
5 黄宝宏.层次分析法在评价应用中的统计学审视.中国卫生统计,2008,25(2),201~203. |
|