数据综合评价方法盘点:从原理到实践(七)CRITIC权重法

CRITIC权重法

原理

CRITIC权重法是一种客观赋权方法,它通过考虑两个因素来确定指标权重:对比强度和冲突性。对比强度反映了某个指标在不同样本之间的变异程度,变异程度越大,说明该指标的区分能力越强;冲突性则通过指标之间的相关性来衡量,相关性越小,说明该指标与其他指标之间的冲突性越大,其携带的独特信息就越多。综合这两个因素,能够更全面地确定指标的权重。

实现路径

  1. 数据标准化:对原始数据进行标准化处理,消除量纲和数量级的影响,使不同指标具有可比性。
  2. 计算标准差:计算每个指标的标准差,以衡量指标的变异程度,即对比强度。标准差越大,说明该指标在不同样本之间的差异越大,对比强度越高。
  3. 计算相关系数矩阵:计算各指标之间的相关系数矩阵,以反映指标之间的相关性。
  4. 计算冲突性指标:对于每个指标,计算其与其他所有指标的相关系数之和,然后用 1 减去这个和,得到该指标的冲突性指标。冲突性指标越大,说明该指标与其他指标之间的冲突性越大。
  5. 计算权重:将每个指标的标准差与冲突性指标相乘,得到每个指标的 CRITIC 值,然后对所有指标的 CRITIC 值进行归一化处理,得到各指标的权重。

Python实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import numpy as np


def critic_weight(data):
# 数据标准化
data = (data - data.mean(axis = 0)) / data.std(axis = 0)

# 计算标准差
std_dev = data.std(axis = 0)

# 计算相关系数矩阵
corr_matrix = np.corrcoef(data, rowvar = False)

# 计算冲突性指标
conflict = 1 - corr_matrix.sum(axis = 0)

# 计算 CRITIC 值
critic_values = std_dev * conflict

# 计算权重
weights = critic_values / critic_values.sum()

return weights


# 示例数据
data = np.array([
[10, 20, 30],
[15, 25, 35],
[20, 30, 40]
])

weights = critic_weight(data)
print("CRITIC权重:", weights)

优劣势

  • 优势
    • 客观全面:综合考虑了指标的变异程度和冲突性,能够更全面地反映指标的重要性,避免了单一因素赋权的局限性,评价结果相对客观。
    • 适应性强:对数据的分布没有严格要求,适用于各种类型的数据,在处理多指标评价问题时具有较好的效果。
  • 劣势
    • 计算复杂:需要计算标准差、相关系数矩阵等,计算过程相对繁琐,对数据的准确性要求较高。
    • 缺乏实际解释性:虽然权重的确定基于数据的统计特征,但这些权重在实际问题中的解释性相对较弱,难以直观地理解每个指标的重要性含义。

具体案例

某大型制造企业拥有众多供应商,为了确保原材料和零部件的稳定供应,提高生产效率和产品质量,需要对供应商进行全面、客观的综合评价,以便筛选出优质供应商,建立长期稳定的合作关系。该企业考虑的评价指标包括产品质量、价格、交货期、服务水平四个方面。

  1. 数据收集 企业收集了五家主要供应商(分别记为供应商 A、供应商 B、供应商 C、供应商 D、供应商 E)在产品质量、价格、交货期、服务水平这四个指标上的数据,具体如下:
供应商 产品质量(满分 100) 价格(元/件) 交货期(天) 服务水平(满分 100)
供应商 A 85 50 15 80
供应商 B 70 45 18 75
供应商 C 90 55 12 85
供应商 D 75 48 16 70
供应商 E 80 52 14 82
  1. 运用 CRITIC 权重法计算指标权重
    1. 数据标准化: 由于不同指标的量纲和数量级不同,为了消除其影响,对原始数据进行标准化处理。这里采用标准差标准化方法,公式为:xij=xijxjsjx_{ij}^* = \frac{x_{ij} - \overline{x_j}}{s_j},其中xijx_{ij}是第ii个供应商在第jj个指标上的原始值,xj\overline{x_j}是第jj个指标的均值,sjs_j是第jj个指标的标准差。

以产品质量指标为例,计算过程如下: x产品质量=85+70+90+75+805=80\overline{x_{产品质量}} = \frac{85 + 70 + 90 + 75 + 80}{5} = 80 s产品质量=(8580)2+(7080)2+(9080)2+(7580)2+(8080)258.37s_{产品质量} = \sqrt{\frac{(85 - 80)^2 + (70 - 80)^2 + (90 - 80)^2 + (75 - 80)^2 + (80 - 80)^2}{5}} \approx 8.37

则供应商 A 的产品质量标准化值为:xA,产品质量=85808.370.6x_{A,产品质量}^* = \frac{85 - 80}{8.37} \approx 0.6

同理,可计算出其他供应商在各指标上的标准化值,得到标准化后的数据矩阵。

    1. 计算标准差: 计算标准化后每个指标的标准差,以衡量指标的变异程度(对比强度)。

标准化后的产品质量指标的标准差为: s产品质量=(0.60)2+(1.20)2+(1.20)2+(0.60)2+(00)250.89s_{产品质量}^* = \sqrt{\frac{(0.6 - 0)^2 + (-1.2 - 0)^2 + (1.2 - 0)^2 + (-0.6 - 0)^2 + (0 - 0)^2}{5}} \approx 0.89

同理,计算出价格、交货期、服务水平指标的标准差分别为 s价格s_{价格}^* s交货期s_{交货期}^* s服务水平s_{服务水平}^*

    1. 计算相关系数矩阵: 计算标准化后各指标之间的相关系数矩阵,以反映指标之间的相关性。

以产品质量和价格为例,相关系数计算公式为:rij=k=1n(xk,ixi)(xk,jxj)(n1)sisjr_{ij} = \frac{\sum_{k = 1}^{n}(x_{k,i}^* - \overline{x_i}^*)(x_{k,j}^* - \overline{x_j}^*)}{(n - 1)s_i^*s_j^*}

计算得到相关系数矩阵 RR 如下: [ R = \[\begin{pmatrix} 1 & r_{产品质量,价格} & r_{产品质量,交货期} & r_{产品质量,服务水平} \\ r_{价格,产品质量} & 1 & r_{价格,交货期} & r_{价格,服务水平} \\ r_{交货期,产品质量} & r_{交货期,价格} & 1 & r_{交货期,服务水平} \\ r_{服务水平,产品质量} & r_{服务水平,价格} & r_{服务水平,交货期} & 1 \end{pmatrix}\]

]

    1. 计算冲突性指标: 对于每个指标,计算其与其他所有指标的相关系数之和,然后用 1 减去这个和,得到该指标的冲突性指标。

以产品质量指标为例,其冲突性指标 C产品质量=1(r产品质量,价格+r产品质量,交货期+r产品质量,服务水平)C_{产品质量} = 1 - (r_{产品质量,价格} + r_{产品质量,交货期} + r_{产品质量,服务水平})

同理,计算出价格、交货期、服务水平指标的冲突性指标 C价格C_{价格}C交货期C_{交货期}C服务水平C_{服务水平}

    1. 计算权重: 将每个指标的标准差与冲突性指标相乘,得到每个指标的 CRITIC 值,然后对所有指标的 CRITIC 值进行归一化处理,得到各指标的权重。

产品质量指标的 CRITIC 值为:Critic产品质量=s产品质量×C产品质量Critic_{产品质量} = s_{产品质量}^* \times C_{产品质量}

价格指标的 CRITIC 值为:Critic价格=s价格×C价格Critic_{价格} = s_{价格}^* \times C_{价格}

交货期指标的 CRITIC 值为:Critic交货期=s交货期×C交货期Critic_{交货期} = s_{交货期}^* \times C_{交货期}

服务水平指标的 CRITIC 值为:Critic服务水平=s服务水平×C服务水平Critic_{服务水平} = s_{服务水平}^* \times C_{服务水平}

总 CRITIC 值为:Critic=Critic产品质量+Critic价格+Critic交货期+Critic服务水平Critic_{总} = Critic_{产品质量} + Critic_{价格} + Critic_{交货期} + Critic_{服务水平}

各指标权重为: w产品质量=Critic产品质量Criticw_{产品质量} = \frac{Critic_{产品质量}}{Critic_{总}} w价格=Critic价格Criticw_{价格} = \frac{Critic_{价格}}{Critic_{总}} w交货期=Critic交货期Criticw_{交货期} = \frac{Critic_{交货期}}{Critic_{总}} w服务水平=Critic服务水平Criticw_{服务水平} = \frac{Critic_{服务水平}}{Critic_{总}}

经过计算,假设得到的权重结果为:w产品质量=0.4w_{产品质量} = 0.4w价格=0.2w_{价格} = 0.2w交货期=0.2w_{交货期} = 0.2w服务水平=0.2w_{服务水平} = 0.2

这表明在综合评价中,产品质量指标的权重较高,说明其区分能力较强,且与其他指标之间的冲突性较大,对供应商的综合评价具有重要影响。

  1. 综合评价与决策 根据各指标权重和供应商在各指标上的标准化值,计算每个供应商的综合得分。

供应商 A 的综合得分 SA=w产品质量×xA,产品质量+w价格×xA,价格+w交货期×xA,交货期+w服务水平×xA,服务水平S_A = w_{产品质量} \times x_{A,产品质量}^* + w_{价格} \times x_{A,价格}^* + w_{交货期} \times x_{A,交货期}^* + w_{服务水平} \times x_{A,服务水平}^*

同理,计算出供应商 B、C、D、E 的综合得分 SBS_BSCS_CSDS_DSES_E

假设计算结果为:SA=0.4×0.6+0.2×(0.4)+0.2×0.2+0.2×0.3=0.26S_A = 0.4 \times 0.6 + 0.2 \times (-0.4) + 0.2 \times 0.2 + 0.2 \times 0.3 = 0.26 SB=0.4×(1.2)+0.2×0.8+0.2×(0.6)+0.2×(0.1)=0.38S_B = 0.4 \times (-1.2) + 0.2 \times 0.8 + 0.2 \times (-0.6) + 0.2 \times (-0.1) = -0.38 SC=0.4×1.2+0.2×(1.2)+0.2×1+0.2×0.6=0.52S_C = 0.4 \times 1.2 + 0.2 \times (-1.2) + 0.2 \times 1 + 0.2 \times 0.6 = 0.52 SD=0.4×(0.6)+0.2×0.2+0.2×0+0.2×(1.2)=0.28S_D = 0.4 \times (-0.6) + 0.2 \times 0.2 + 0.2 \times 0 + 0.2 \times (-1.2) = -0.28 SE=0.4×0+0.2×(0.8)+0.2×0.4+0.2×0.4=0.04S_E = 0.4 \times 0 + 0.2 \times (-0.8) + 0.2 \times 0.4 + 0.2 \times 0.4 = 0.04

根据综合得分,对供应商进行排序:SC>SA>SE>SD>SBS_C > S_A > S_E > S_D > S_B

因此,供应商 C 的综合表现最佳,企业在选择供应商时,可优先考虑与供应商 C 建立更紧密的合作关系,同时对于综合得分较低的供应商,如供应商 B 和供应商 D,企业可以与他们沟通,提出改进建议,促使其提升自身表现,以满足企业的需求。如果在一定时间内无法达到要求,企业可以考虑寻找替代供应商。

通过运用 CRITIC 权重法进行供应商综合评价,该企业能够更加科学、客观地评估供应商的表现,为供应商管理和选择提供有力的决策依据。