CRITIC算法(权重确定一)

        CRITIC算法将数据稳定性作为一种数据,选定的指标也是有一定的联系的。

        CRITIC权重确定算法是一种基于数据波动性(对比强度)和相关性(冲突性)的客观赋权法,因为数据波动性和相关性都是数据的信息,可以拿来计算权重。

        对比强度其实跟数据的离散程度相似,跟集中情况相似,可以使用标准差表示,标准差越大说明波动越强(因为它所能提供的信息量也就越大,应该给该指标分配更多的权重),权重越大;

        冲突性便是使用相关系数表示,相关系数越大,说明关系越紧密(说明它所提供的信息与其他指标的信息有较大的相似性,存在信息上的重叠,因此应该减少对该指标分配的权重),冲突性越小,权重越小。

一、实现步骤

数据为n个长度为m的指标:

d1d0d3c6de8e4927b81e85fd29722298.png

1.1  标准化(Min-Max Scaling) 

        数据标准化,也称为归一化,是将不同的数据按照一定的规则进行转换,使其具有相同的标准和范围,便于数据的比较和分析。

        正向指标是指其数值越大,表示情况越好或越符合某种期望的指标。通常用于衡量积极的结果或性能。

        逆向指标是指其数值越小,表示情况越好或越符合某种期望的指标。用于衡量需要减少或避免的结果或性能。 

1.1.1   正向指标

                                                         eq?X%3D%5Cfrac%7Bx_%7Bij%7D-min%28x_%7Bj%7D%29%29%7D%7Bmax%28x_%7Bj%7D%29-min%28x_%7Bj%7D%29%7D

        max和min是当前列中的最大最小值。下面同是。 

1.1.2   逆向指标 

                                                         eq?X%3D%5Cfrac%7Bmax%28x_%7Bj%7D%29-x_%7Bij%7D%7D%7Bmax%28x_%7Bj%7D%29-min%28x_%7Bj%7D%29%7D

 1.2   信息承载量(信息量)

        信息量被用来确定各个指标的权重。权重的大小反映了指标在评价体系中的重要程度 。

1.2.1   对比强度(标准差)

        具体公式都知道,便不给出,使用np.std可以算。 

1.2.2   冲突性(相关系数)

        

5f7c7a62ac644401b90bed0a671b92c9.png

        计算得到的是相关系数矩阵,下面是计算每个指标的冲突性

eq?A_%7Bj%7D%3D%5Csum_%7B1%7D%5E%7Bn%7D%281-Rij%29

1.2.3   信息量

        信息量=对比强度*冲突性 

1.3   权重计算 

        每个指标的信息承载量除以信息承载量的总和,得到每个指标的客观权重。 

二、代码案例 

import pandas as pd
import numpy as np
#导入数据
data=pd.read_excel('问卷数据.xlsx')

#数据正向化标准化处理
label_need=data.keys()[0:9]
data1=data[label_need].values
data2=data1.copy()
[m,n]=data2.shape
index_all=np.arange(n)
index=[2]#负向指标位置,注意python是从0开始计数;对应位置也要相应减1

#负向指标位置
for j in index:
    d_max=max(data1[:,j])
    d_min=min(data1[:,j])
    data2[:,j]=(d_max-data1[:,j])/(d_max-d_min)

#正向指标位置
index=np.delete(index_all,index)
for j in index:
    d_max=max(data1[:,j])
    d_min=min(data1[:,j])
    data2[:,j]=(data1[:,j]-d_min)/(d_max-d_min)

#变异性
the=np.std(data2,axis=0)
print("指标变异性:",the)
data3=data2.copy()

#冲突性
data3=list(map(list,zip(*data2)))#矩阵转置  9*781
r=np.corrcoef(data3)#求相关系数  9*781

f=np.sum(1-r,axis=1)   #9*1
print("指标冲突性:",f)

#信息承载量
c=the*f
print("信息量:",c)

w=c/sum(c)#计算权重
print("客观权重:",w)

         应用到的数据如下,包括九个指标,有781个数据。

08551544476d42d7b54f0110380f08c6.png

        最后得到变异性(对比强度),信息量以及权重。

bfef87ea64d24388938d1788eed954e6.png

 

        最后附一张从其它地方整过来的无量纲化处理总结,我自己偷摸看。

c120e7594aff4994a57a6bd0b05b46f4.png

 

 

### 如何在SPSS中实现CRITIC赋权 #### 、准备数据集 为了应用CRITIC (Criteria Importance Through Inter-criteria Correlation),在开始之前需准备好待分析的数据文件。该数据应包含多个评估指标,这些指标用于衡量不同对象或方案的表现。 #### 二、导入并预处理数据 启动SPSS软件后,通过`File -> Open`命令加载外部数据源至工作区。确保所有变量已被正确定义为数值型或其他适当类型,并检查是否存在缺失值等问题[^1]。 #### 三、标准化原始数据矩阵 由于各个评价指标可能具有不同的量纲单位以及取值范围差异较大,因此有必要先对原始数据实施无量纲化转换操作——即所谓的“标准化”。这步骤可以通过编写简单的语脚本来完成: ```spss * 假设有三个变量 var1, var2 和 var3 需要被标准化. COMPUTE z_var1 = (var1 - MEAN(var1)) / SD(var1). EXECUTE. COMPUTE z_var2 = (var2 - MEAN(var2)) / SD(var2). EXECUTE. COMPUTE z_var3 = (var3 - MEAN(var3)) / SD(var3). EXECUTE. ``` 上述代码实现了Z-score标准化方式;当然也可以采用其他形式如Min-Max缩放等来代替[^2]。 #### 四、计算对比强度与冲突度 对于每个决策属性\(i\)而言,其对应的对比强度\(\text{Contrast Intensity}\)\(S_i\)定义如下: \[ S_i=\sum_{j=1}^{n}(X_{ij}-\bar X_j)^2 \] 其中,\(X_{ij}\)表示第\(i\)个样本关于特征\(j\)的具体观测值;\(\bar X_j\)则代表整个群体针对同特性所呈现出平均状态下的表现水平。 而两个任意给定准则间的关联程度可通过皮尔逊积矩相关系数加以量化描述:\[\rho _{jk}=corr(X_j,X_k)=\frac{\operatorname {cov} (X_j,X_k)}{{\sigma }_j {\sigma}_k }\] 最终得出的冲突度\(\text{Conflict Degree}\)\(C_i\)等于绝对的相关性总和减去自身的贡献部分: \[ C_i=\sum|\rho _{ji}|-\left | corr(X_i ,X_i ) \right |=\sum |\rho _{ji}| -1 \] 此过程同样可以借助于SPSS内置函数轻松达成目标: ```spss CORRELATIONS VARIABLES=z_var1 TO z_varN /PRINT=CORR SIG N /MATRIX OUT(*). MATCH FILES FILE=* BY ID. AGGREGATE OUTFILE=* MODE=ADDVARIABLES /BREAK= /SUM_ABS_CORR=sum(abs(Corr_z_var1 to Corr_z_varN)) /COUNT=n. COMPUTE ConflictDegree=(SUM_ABS_CORR-COUNT)/COUNT. EXECUTE. ``` 这里假设已经完成了前面提到的标准变换步骤,并且所有的新创建字段都带有前缀'z_'以便区分原生测量项。此外,“ID”指的是唯识别记录的身份列名; “Corr_*”系列则是由先前执行过的协方差表单自动生成的结果集合的部分[^3]。 #### 五、求解各因素的重要性权重 最后步就是利用公式 \(W_i=S_i*C_i/\sum(S_i * C_i)\),据此推导出每种评判维度在整个体系里占据的比例关系。这环节依旧能够依靠基础算术运算指令快速解决: ```spss COMPUTE CriticWeight=(StdDeviation*ConflictDegree)/(SUM(StdDeviation*ConflictDegree)). EXECUTE. ``` 请注意这里的 `StdDeviation` 应替换为你实际使用的标准偏差名称,它反映了每个变量经过标准化后的离散情况。 至此便成功运用了CRITIC模型框架下的套完整的流程指导说明文档,帮助读者理解如何在SPSS环境中实践这种特定类型的多属性效用理论(MAUP)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值