熵值法原理+stata详细代码

目录

一、熵值法简介

二、熵值法的原理

三、熵值法的优点

四、熵值法的stata代码

1. 设置面板数据

2. 标准化(Normalization)

3. 计算 p(比例)

4. 计算 e(熵值)和 d(1 - 熵值)

5. 计算权重w

6. 计算得分

7. 保留结果


一、熵值法简介

**熵值法(Entropy Method)**是一种基于信息论的多指标赋权方法,常用于处理复杂的多维数据,尤其是在没有先验知识或无法确定权重的情况下。它通过计算每个指标的“信息熵”来确定其在综合评价中的权重,反映指标的变异程度和重要性。熵值法的核心思想是:数据的变异程度越大(信息越丰富),该指标的权重越大;反之,变异程度越小(信息越少),该指标的权重越小。

二、熵值法的原理

  • 信息熵的概念
    熵(Entropy)源自信息理论,描述了信息的不确定性。熵越大,表示信息越混乱或越不确定;熵越小,表示信息越集中或越确定。用在指标赋权上时,熵值可以反映每个指标对整体评价的贡献:

    • 如果一个指标的数值变化很大,说明它能够提供更多的信息,因此它的熵值较低,权重较大。
    • 如果一个指标的数值变化很小,说明它的信息贡献较小,熵值较高,权重较小。
  • 熵值法的计算步骤 熵值法的具体步骤可以分为以下几个主要部分:

三、熵值法的优点

  1. 客观性强:熵值法基于数据本身的变异程度来确定权重,没有主观的偏差。在缺乏专家经验或对权重无法主观赋值时,熵值法提供了一种可靠的权重计算方式。

  2. 适用性广:熵值法适用于任何领域的多指标综合评价,特别是当涉及多个指标且这些指标的权重不易确定时。

  3. 反映信息重要性:通过熵值的大小,能够反映每个指标对评价结果的贡献,变异性大的指标权重较大,而变异性小的指标权重较小,符合实际情况。

  4. 熵值法通过衡量每个指标的“信息熵”来确定其在综合评价中的权重。变异性较大的指标提供更多的信息,因此被赋予更高的权重,而变异性小的指标则被赋予较低的权重。熵值法是一种客观且有效的赋权方法,能够避免人为赋权带来的偏差,广泛应用于各类多指标综合评价中。

  5. 四、熵值法的stata代码

1. 设置面板数据

xtset id year
  • xtset 是 Stata 中用来定义面板数据的命令。
  • id 是个体标识符,表示每个面板的单位(比如省份、公司等)。
  • year 是时间标识符,表示每个单位的时间点。

  • 2. 标准化(Normalization)

对正向指标的标准化

global all_var x6 x7 x8 x9 x10 x11 x12
foreach i in $all_var {
    egen min_`i'=min(`i')
    egen max_`i'=max(`i')
    gen s`i'=(`i'-min_`i')/(max_`i'-min_`i')
    replace s`i'=0.0001 if s`i'==0
}
  • x6x12 是正向指标(数值越大表示越好)。
  • 使用 egen 函数计算每个变量的最小值(min_i')和最大值(max_i')。
  • 然后将每个变量的值进行标准化:通过 (原始值 - 最小值) / (最大值 - 最小值) 进行归一化,使得所有的标准化后的值都在 0 到 1 之间。
  • replace si'=0.0001 if si'==0 将所有标准化结果为 0 的值设置为 0.0001,因为后面要计算对数(ln),避免出现对数无穷大。

对负向指标的标准化

global all_var x1 x2 x3 x4 x5
foreach i in $all_var {
    egen min_`i'=min(`i')
    egen max_`i'=max(`i')
    gen s`i'=(max_`i'-`i')/(max_`i'-min_`i')
    replace s`i'=0.0001 if s`i'==0
}
  • x1x5 是负向指标(数值越大表示越差)。
  • 使用类似的步骤进行标准化:(最大值 - 原始值) / (最大值 - 最小值)
  • 对负向指标的标准化,使得较大的值会被转换为较小的标准化值(归一化后值较小表示更好)。

3. 计算 p(比例)

forvalue i=1(1)12{
    egen sums_`i'=sum(sx`i')
    gen p`i'=sx`i'/sums_`i'
}
  • 对于每个变量(x1x12),计算该变量的标准化值的和(sums_i'`)。
  • 12是变量的数量
  • 然后计算每个变量标准化值的比例 p(即:标准化后的值占所有标准化值和的比例)。

4. 计算 e(熵值)和 d(1 - 熵值)

forvalue i=1(1)12{
    egen l`i'=sum(p`i'*ln(p`i'))
    gen e`i'=-l`i'/ln(3336)
    gen d`i'=1-e`i'
}
  • 观察值的数量,这里设为 3336,其他对应修改obs数量。
  • di':计算 d = 1 - ei',这里的 d 是反映信息有效度的指标,通常用于熵值法中作为权重的计算基础。

5. 计算权重w

forvalue i=1(1)12{
    egen f`i'=rowtotal(d*)
    gen w`i'=d`i'/f`i'
}
  • fi':计算所有 d` 指标的总和。
  • wi'`:计算每个指标的权重,表示每个指标的信息有效度占总有效度的比例。

6. 计算得分

forvalue i=1(1)12{
    gen score`i'=w`i'*sx`i'
}

egen Score = rowtotal(sc*)
  • scorei'`:计算每个变量的得分,即标准化后的值与权重的乘积。
  • Score:最后通过 egen 函数将所有指标的得分加总得到总得分。

7. 保留结果

keep province id year w* Score

最终保留每个地区(province)、个体(id)、年份(year)和相关的权重(w*)以及总得分(Score)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值