Stata:一文搞懂熵权法

学术   教育   2024-12-16 17:27   陕西  

Stata:一文读懂熵权法(零基础入门系列)

前言

熵权法是一种基于信息熵的客观赋权方法,通常用于多指标综合评价的过程中。熵权法通过计算每个指标的信息熵,来衡量其在评价体系中的相对重要性,并据此确定指标的权重。熵权法的优点在于其赋权过程不依赖主观判断,能更客观地反映数据内部的信息量。

下面将详细介绍熵权法的概念、Stata 实现步骤以及操作原理,适用于从基础到前沿的学习者。

1. 熵权法简介

1.1 熵的定义

熵(Entropy)最初是热力学中的概念,被用于描述系统的无序程度。在信息论中,熵表示一个随机变量的不确定性或信息量的大小。在多指标评价中,熵可以用来反映每个指标的有效信息量,进而决定指标的重要性。

1.2 熵权法的基本思想

熵权法通过计算指标的信息熵来确定指标的权重。熵值越大,说明该指标的数据差异性小,提供的信息量较少,其权重也应越小;反之,熵值越小,数据差异性大,提供的信息量多,其权重应越大。

熵权法的基本步骤如下:

  1. 数据标准化:将原始数据进行标准化处理,消除不同量纲的影响。
  2. 计算各指标的熵值:根据标准化后的数据,计算每个指标的信息熵。
  3. 计算熵权:根据熵值计算每个指标的权重。

2. Stata 实现步骤

在开始之前,我们需要明确/定义几个变量的含义:

  • positiveVar: 正向指标集合,表示越大越好的指标。
  • negativeVar: 负向指标集合,表示越小越好的指标。
  • allVar: 包含所有需要评价的指标,既包括正向指标,也包括负向指标。

2.1 数据标准化

在使用熵权法之前,需要对原始数据进行标准化,以消除不同指标量纲的影响。标准化的方法通常有两种:

  • 极小化公式:

其中:

为第 i个样本的第 j个指标值,

分别为第 j个指标的最大值和最小值。


在 Stata 中,可以通过以下命令对数据进行标准化:

对于正向指标:

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 // 避免出现 0 值
}

对于负向指标的标准化,可以用以下代码:

foreach v in negativeVar {
  qui sum `v'
  gen Z_`v'
 = (r(max) - `v') / (r(max) - r(min))
  replace Z_`v'
 = 0.0001 if Z_`v' == 0 // 避免出现 0 值
}

2.2 熵值计算

熵值的计算需要先将标准化后的数据进行概率分布计算,然后通过信息熵公式求得每个指标的熵值。

熵值的计算步骤如下:

  1. 计算各指标的概率值

计算指标比重。采用极差标准化各个变量之后,就可以计算每个变量第j个观测值的比重或发生概率:

在 Stata 中,可以使用以下命令来计算概率值:

foreach v in $allVar {
  egen sum_Z_`v' = sum(Z_`v')
gen p_`v' = Z_`v' / sum_Z_`v'
}
  1. 计算熵值

熵值的公式为:

其中,

,n 为样本数量。

在 Stata 中,可以使用以下命令来计算熵值:

gen N = _N
foreach v in $allVar {
  gen sump_`v' = p_`v' * ln(p_`v')
  egen sum_sump_`v'
 = total(sump_`v')
  gen E_`v'
 = -1 / ln(N) * sum_sump_`v'
}

2.3 权重计算

权重是根据每个指标的熵值来计算的,其公式为:

计算指标权重。

根据上一步计算的信息熵E1,E2,,Ek,先计算各指标信息效用值,然后再计算指标权重。

信息效用值:Dj;=1-Ej


在 Stata 中,可以通过以下命令来计算权重:

  1. 计算信息效用度 D
  foreach v in $allVar {
    gen D_`v' = 1 - E_`v'
  }
  1. 计算总和并计算权重
   egen sum_D = sum(D_*)
   foreach v in allVar {
     gen W_`v' = D_`v' / sum_D
   }
   
   
   egen sum_D = rowtotal(D_*)
   foreach v in allVar {
     gen W_`v' = D_`v' / sum_D
   }

通过这些步骤,您就可以计算出每个指标的熵权,并用于后续的多指标综合评价。

计算综合得分。根据第一步得到的标准化后的指标yij,以及第四步计算出的各个指标的权重Wj,计算综合指标得分:

Stata实现命令为:

foreach v in $allVar {
  gen score_`v'=w_`v'* z_`v'
  egen score = rowtotal(score*)  //计算综合指标得分
  drop z_* p_* e_* d_* sum*  //删除过程变量

3. 熵权法的操作原理

熵权法的操作基于信息论中的熵值原理,通过衡量各指标在总体中的分散程度来确定权重。具体来说,熵权法遵循以下逻辑:

  1. 熵值越小,权重越大:熵值越小,表明指标的离散度越大,不同样本间的差异越明显,该指标的信息量越丰富,因此其权重越大。
  2. 熵值越大,权重越小:当熵值较大时,说明指标对样本区分的贡献较小,信息量有限,因此赋予的权重较小。

通过这种方式,熵权法有效地减少了主观因素对权重的影响,使得综合评价结果更加客观和准确。

4. 熵权法的应用案例

4.1 区域经济发展水平评价

在区域经济发展水平评价中,我们通常会使用多个指标,如 GDP、固定资产投资、就业率等来进行综合评价。熵权法可以根据各指标的数据离散程度客观地分配权重,使得综合评价更加科学。

4.2 环境质量综合评价

在环境质量评价中,需要考虑多个指标,如空气质量、水质、噪声污染等。通过熵权法,可以根据各指标对环境质量的贡献度自动确定权重,从而得出科学的综合环境评价指数。

5. 熵权法的优缺点

5.1 优点

  • 客观性:熵权法基于数据本身的信息量来确定权重,减少了人为主观性。
  • 适用性广:可以应用于各种类型的多指标评价问题,特别是在数据量较大且主观经验难以确定权重的情况下。

5.2 缺点

  • 依赖数据质量:熵权法完全依赖于数据本身,因此数据质量直接影响最终的评价结果。
  • 计算复杂:熵权法的计算相对复杂,特别是在样本数量较大、指标较多的情况下,计算过程较为繁琐。

6. 总结

熵权法是一种有效的多指标综合评价方法,特别适用于需要客观确定指标权重的场景。在 Stata 中,可以通过标准化、概率计算、熵值计算等步骤来实现熵权法。


附:熵值法Stata命令topsis


经济学研究中的机器学习与因果推断专题

20217--2024年,8年Stata经典课程


新课纲、新升级

AI赋能科研

GPT全流程辅助Stata机器学习与因果推断学术应用

含AI大模型基础课+因果推断+双重机器学习(Stata操作)等前沿内容

原理+操作+论文+前沿

超长回放,详询工作人员报名


回顾:

Stata:数量经济学命令介绍—cnuse与熵权TOPSIS法命令

数量经济学:熵值法及熵权—TOPSIS命令(一)

熵值法及熵权—TOPSIS命令方法

案例数据下载方法为:

cnuse citytemp4.dta, clear

cnuse topsis1.dta, clear

cnuse topsis2.dta, clear

Stata:数量经济学命令介绍—cnuse功能更新

Stata:数量经济学命令—cnuse命令下载安装



下载界面


中英文帮助手册


案例Example



数量经济学熵值法及熵权—TOPSIS命令(一)


熵值法命令语法格式为:


熵值法及熵权—TOPSIS命令简介

topsis 命令用于通过熵值法或 TOPSIS 法来计算多指标综合得分。

该程序允许用户对正向和负向指标进行指定,程序会自动完成数据的标准化处理、信息熵、冗余度、权重的确定,最终计算综合得分,以及TOPSIS 方法下的得分(可选,用户可以选择是否使用 TOPSIS 法来计算得分。)

在没有使用 topsis 选项时,程序将输出各指标的信息熵、冗余度和权重,并默认展示前 10 个样本的综合得分。

用户还可以通过点击结果输出窗口的链接来查看存储的返回值、完整的综合得分列表,以及综合得分的描述性统计分析等结果。

当使用 topsis 选项时,程序将展示基于熵权--TOPSIS 法的综合得分及其描述性统计分析。

案例应用1


操作结果为:





结果对比

上述分析结果,也可以通过熵值法命令enwei得到,下面展示enwei.ado程序得到的结果




Stata:数量经济学命令介绍—cnuse与熵权TOPSIS法命令

2024年11月17日推文Stata:数量经济学命令介绍—cnuse与熵权TOPSIS法命令


首先使用目前已存在的熵值法外部命令进行结果查看,与数量经济学熵权TOPSIS法命令进行对比(该命令不仅可以进行熵值法计算,还加入了topsis选项,可以实现熵权TOPSIS方法)

上述为使用目前已经发布的命令进行操作出来的结果。


下面使用数量经济学命令,进行操作,结果如下:

这是使用数量经济学命令进行操作得到的Score,可以上外部命令得到的Entropy进行对比,得到结果一致

summ score 与summ Entropy进行对比结果


下面使用数量经济学命令进行熵权TOPSIS操作

选项含义介绍:

  • positive(x3 x4 x5 x6 ) 输入正向指标
  • negative(x1 x2)输入负向指标
  • topsis进行熵权TOPSIS方法操作


数量经济学
见证计量经济学发展,更懂计量更懂你!
 最新文章