熵权法的原理、计算步骤及stata操作

您所在的位置:网站首页 z值模型法计算公式 熵权法的原理、计算步骤及stata操作

熵权法的原理、计算步骤及stata操作

2024-05-25 02:20| 来源: 网络整理| 查看: 265

构建指标体系时,最后为了得到指标,一般会用到主成分分析法、熵权法、变异系数法……等提炼出一个总指标。今天要分享的是熵权法的赋权逻辑、计算步骤以及Stata的实现代码。

首先引入一个标准化矩阵:包含 n 个样本和m 个评价指标的标准化矩阵:

Z=\begin{pmatrix} z_{11} & z_{12} & \cdots & z_{1m} \\ z_{21} & z_{22} & \cdots & z_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ z_{31}& z_{32} & \cdots &z_{nm} \\ \end{pmatrix} \tag1

1、熵权法的基本原理1.1 信息论基础

(1)信息量:

了解一个未知事物所需要查询的所有信息的总和就是信息量 I ,单位是比特。随机变量X取某个值时,其概率( p )倒数的对数( log\frac{1}{p} )就是信息量 I ,一件事物出现的概率 p 决定了它的不确定性大小,也就决定了所含信息量 I 的大小。

换言之,事物所含信息量 I 与其发生的概率 p 负相关,大概率事件,信息量少;小概率事件,信息量多。

I_i =log(\frac{1}{p_i})=-logp_i\tag2

建立信息量 I与概率 p 的函数关系,这样的函数适合用对数函数拟合,加上负号就可以表示两个对称的对数函数。

(2)信息熵:

信息熵也就是信息量的期望,假设X 表示的是一个信源,那么信息熵可以表示为:

H(X)=\sum_{i=1}^np_i\times log(\frac{1}{p_i})\tag3

总结:

信息量:是对信源发出的某一个信号所含信息的度量信息熵:是对信源发出的所有信号所含信息的度量,也就是信息量的期望。1.2 熵权法介绍

熵权法的基本思路是根据指标变异性的大小来确定客观权重。

一般来说,若某个指标的信息熵越小,表明指标值得变异程度越大,提供的信息量越多,在综合评价中所能起到的作用也越大,其权重也就越大。相反,某个指标的信息熵越大,表明指标值得变异程度越小,提供的信息量也越少,在综合评价中所起到的作用也越小,其权重也就越小。

2、熵权法的操作步骤

假设给定了n 个样本, m 个指标: \left\{ X_{1},X_{2},\cdot\cdot\cdot,X_{m}\right\} ,形成原始数据矩阵如下,x_{ij} 为第 i 个样本的第 j 个指标的数值:

X=\begin{pmatrix} x_{11} & x_{12} & \cdots & x_{1m} \\ x_{21} & x_{22} & \cdots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{31}& x_{32} & \cdots &x_{nm} \\ \end{pmatrix}\quad (x_{ij},\quad i=1,2,...,n\quad j=1,2,...,m)

对某项指标 X_j 而言,不同样本之间指标值 x_{ij} 的差距越大,则该指标在综合评价中所起的作用也就越大;如果某项指标的指标值全部相等,则该指标在综合评价中不起作用。

step1:数据标准化 x\rightarrow y

首先将各个指标进行标准化处理,不同类型的指标,需要按照不同的方式分别进行标准化:

y_{ij}= \begin{cases} \frac{x_{ij}-min(X_{j})}{max(X_{j})-min(X_{j})},\quad if \quad X_{j}为正向指标\\ \frac{max(X_{j})-x_{ij}}{max(X_{j})-min(X_{m})},\quad if \quad X_{j}为负向指标, \end{cases} \tag1原始指标\left\{ X_{1},X_{2},\cdot\cdot\cdot,X_{m}\right\}转化为标准化指标 \left\{ Y_{1},Y_{2},\cdot\cdot\cdot,Y_{m}\right\} ,y_{ij} 为标准化后的第 i 个样本的第 j 个指标的数值:

X=\begin{pmatrix} x_{11} & x_{12} & \cdots & x_{1m} \\ x_{21} & x_{22} & \cdots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{31}& x_{32} & \cdots &x_{nm} \\ \end{pmatrix}\quad 标准化 \Rightarrow \quad Y= \begin{pmatrix} y_{11} & y_{12} & \cdots & y_{1m} \\ y_{21} & y_{22} & \cdots & y_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ y_{31}& y_{32} & \cdots &y_{nm} \\ \end{pmatrix}

step2:计算指标比重 p

计算某项指标 X_j下第 i 个样本占该指标的比重, p_{ij} 为第 i 个样本在 j 指标当中的比重值:

p_{ij}=\frac{y_{ij}}{\sum_i^n y_{ij} } ,\quad i=1,2,...,n;\quad j=1,2,...,m\tag2

step3:计算信息熵 E

计算某项指标 X_j的熵值:

E_j=-\frac{1}{ln(n)}\sum_{i=1}^np_{ij}ln(p_{ij})\tag3

其中, n 为样本数量,一般而言, 0\leq E_j\leq1

step4:确定各指标的权重 w

根据信息熵的计算公式,计算出各个指标的信息熵为 E_1,E_2,…,E_m

方法1:通过信息熵计算各指标的权重:

W_j=\frac{1-E_j}{m-\sum E_j }\quad (j=1,2,...,m)\tag4

方法2:通过计算信息冗余度 D_j ,然后计算指标权值:

D_j=1-E_j \quad \Rightarrow \quad W_j=\frac{D_j}{\sum D_j}\quad (j=1,2,...,m)\tag4

step5:计算综合得分

Score_{ij}=\sum_{j=1}^{m}{W_{j}\cdot y_{ij}}\quad (i=1,2,...n)\tag5

3、熵权法的stata计算过程*01导入数据 clear all import excel using rawdata.xlsx, first clear *02设定指标 global positiveVar X1 X2 X3 global negativeVar X4 X5 X6 global allVar $positiveVar $negativeVar *----------以下不用修改----------* *step 1:数据标准化 *标准化正向指标 foreach v in $positiveVar { qui sum `v' gen z_`v' = (`v'-r(min))/(r(max)-r(min)) replace z_`v' = 0.0001 if z_`v' == 0 } *标准化负向指标 foreach v in $nega


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3