【指数编制系列三】权重设置方法 | 您所在的位置:网站首页 › 简单排序编码法有哪些 › 【指数编制系列三】权重设置方法 |
在指数编制方法中,我们会经常提到加权平均法(这个在后面会介绍),这里面有一个重要的概念就是权重。权重的设定在指数编制过程中是非常重要的一步,适当的权重设定是指数客观准确反映目标变化趋势的一个关键要素。所以在设定权重的时候一定要选择合适的方法。 权重是一个相对的概念,是针对某一指标而言。某一指标的权重是指该指标在整体评价中的相对重要程度。权重表示在评价过程中,是被评价对象的不同侧面的重要程度的定量分配,对各评价因子在总体评价中的作用进行区别对待。事实上,没有重点的评价就不算是客观的评价。 在统计理论和实践中,权重是表明各个评价指标(或者评价项目)重要性的权数,表示各个评价指标在总体中所起的不同作用。权重有不同的种类,各种类别的权重有着不同的数学特点和经济含义,一般有以下几种权重。 按照权重的表现形式的不同,可分为绝对数权重和相对数权重。相对数权重也称比重权数,能更加直观地反映权重在评价中的作用。 按照权重的形成方式划分,可分为人工权重和自然权重。自然权重是由于变换统计资料的表现形式和统计指标的合成方式而得到的权重,也称为客观权重。人工权重是根据研究目的和评价指标的内涵状况,主观地分析、判断来确定的反映各个指标重要程度的权数,也称为主观权重。 按照权重形成的数量特点的不同划分,可分为定性赋权和定量赋权。如果在统计综合评价时,采取定性赋权和定量赋权的方法相结合,获得的效果更好。 确定权重的方法有多种,下面按照主观赋权和客观赋权的方法进行分类介绍。 一.主观赋权方法 排序编码法 这种方法通过管理者对各项考评因素的重视程度进行排序编码,然后确定权重的一种简单的方法,需要管理者从过去的历史数据及个人的经验对各项考评项目作出正确的排序。 比如在绩效考核过程中,某一职位有四个KPI的考评因素,分别为A,B,C,D,依企业的要求及目标设定者的经验,各项考评因素的重要性排序为 B,D,C,A;然后再按照自然数顺序由大到小对其进行分配,分别为4,3,2,1。然后将权数归一化,最后结果为 A:1/(4+3+2+1)=0.1;B:4/(4+3+2+1)=0.4 C:2/(4+3+2+1)=0.2;D:3/(4+3+2+1)=0.3。 这种简单排序编码法计算权数的方法简单,但也存在主观因素,存在一定的不合理性。但至少它比管理者单纯地依据自身经验进行设定的方式要客观一些。倍数环比法 倍数环比法首先将各个考评因素随机排列,然后按照顺序对各项因素进行比较,得出各因素重要度之间的倍数关系,又称环比比率,再将环比比率进行统 一转换为基准值,最后进行归一化处理,确定其终权重。这种方法需要对考评因素有客观的判断依据,需要有客观准确的历史数据作为支撑。 以上述四个因素为例,如下表。![]() 层次分析法的基本步骤: 1、建立层次结构模型。在深入分析实际问题的基础上,将有关的各个因素按照不同属性自上而下地分解成若干层次,同一层的诸因素从属于上一层的因素或对上层因素有影响,同时又支配下一层的因素或受到下层因素的作用。最上层为目标层,通常只有1个因素,最下层通常为方案或对象层,中间可以有一个或几个层次,通常为准则或指标层。当准则过多时(譬如多于9个)应进一步分解出子准则层。 2、构造成对比较阵。从层次结构模型的第2层开始,对于从属于(或影响)上一层每个因素的同一层诸因素,用成对比较法和1—9比较尺度构造成对比较阵,直到最下层。 3、计算权向量并做一致性检验。对于每一个成对比较阵计算最大特征根及对应特征向量,利用一致性指标、随机一致性指标和一致性比率做一致性检验。若检验通过,特征向量(归一化后)即为权向量:若不通过,需重新构造成对比较阵。 4、计算组合权向量并做组合一致性检验。计算最下层对目标的组合权向量,并根据公式做组合一致性检验,若检验通过,则可按照组合权向量表示的结果进行决策,否则需要重新考虑模型或重新构造那些一致性比率较大的成对比较阵。 在应用层次分析法时,必须满足以下几个前提: 1.各层的要素必须是已知的,并且条理结构清晰,能够按层次区分排列;2.同一层中的各要素的关系是平等的,而各要素间相互独立,不存在显著的相关性;3.最底层的指标可以被量化,并能够通过一定的方法测量;4.需要明确各层次间要素的影响关系。 层次分析法在指数编制中是较为常用的一种方法,这种虽然说打分过程是主观判断的,但是整个计算过程相对科学和完整,具有较强的应用性。因为打分过程是个相对比较的过程,能够较好的避免主观误差。下面直接贴一个代码,大家可以直接用,只需将代码中的打分矩阵替换一下就可以用。 # -*- coding: utf-8 -*- #a,b,c,d,f为二级指标的打分矩阵,e为一级指标的打分矩阵,根据需要进行更换使用。 import numpy as np RI_dict = {1: 0, 2: 0, 3: 0.58, 4: 0.90, 5: 1.12, 6: 1.24, 7: 1.32, 8: 1.41, 9: 1.45} def get_w(array): row = array.shape[0] # 计算出阶数 a_axis_0_sum = array.sum(axis=0) # print(a_axis_0_sum) b = array / a_axis_0_sum # 新的矩阵b # print(b) b_axis_0_sum = b.sum(axis=0) b_axis_1_sum = b.sum(axis=1) # 每一行的特征向量 # print(b_axis_1_sum) w = b_axis_1_sum / row # 归一化处理(特征向量) nw = w * row AW = (w * array).sum(axis=1) # print(AW) max_max = sum(AW / (row * w)) # print(max_max) CI = (max_max - row) / (row - 1) CR = CI / RI_dict[row] if CR |
CopyRight 2018-2019 实验室设备网 版权所有 |