目录
一、熵值法简介
二、熵值法的原理
三、熵值法的优点
四、熵值法的stata代码
1. 设置面板数据
2. 标准化(Normalization)
3. 计算 p(比例)
4. 计算 e(熵值)和 d(1 - 熵值)
5. 计算权重w
6. 计算得分
7. 保留结果
一、熵值法简介
**熵值法(Entropy Method)**是一种基于信息论的多指标赋权方法,常用于处理复杂的多维数据,尤其是在没有先验知识或无法确定权重的情况下。它通过计算每个指标的“信息熵”来确定其在综合评价中的权重,反映指标的变异程度和重要性。熵值法的核心思想是:数据的变异程度越大(信息越丰富),该指标的权重越大;反之,变异程度越小(信息越少),该指标的权重越小。
二、熵值法的原理
信息熵的概念 熵(Entropy)源自信息理论,描述了信息的不确定性。熵越大,表示信息越混乱或越不确定;熵越小,表示信息越集中或越确定。用在指标赋权上时,熵值可以反映每个指标对整体评价的贡献:
如果一个指标的数值变化很大,说明它能够提供更多的信息,因此它的熵值较低,权重较大。如果一个指标的数值变化很小,说明它的信息贡献较小,熵值较高,权重较小。 熵值法的计算步骤 熵值法的具体步骤可以分为以下几个主要部分:
三、熵值法的优点
客观性强:熵值法基于数据本身的变异程度来确定权重,没有主观的偏差。在缺乏专家经验或对权重无法主观赋值时,熵值法提供了一种可靠的权重计算方式。
适用性广:熵值法适用于任何领域的多指标综合评价,特别是当涉及多个指标且这些指标的权重不易确定时。
反映信息重要性:通过熵值的大小,能够反映每个指标对评价结果的贡献,变异性大的指标权重较大,而变异性小的指标权重较小,符合实际情况。
熵值法通过衡量每个指标的“信息熵”来确定其在综合评价中的权重。变异性较大的指标提供更多的信息,因此被赋予更高的权重,而变异性小的指标则被赋予较低的权重。熵值法是一种客观且有效的赋权方法,能够避免人为赋权带来的偏差,广泛应用于各类多指标综合评价中。
四、熵值法的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
}
x6 到 x12 是正向指标(数值越大表示越好)。使用 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
}
x1 到 x5 是负向指标(数值越大表示越差)。使用类似的步骤进行标准化:(最大值 - 原始值) / (最大值 - 最小值)。对负向指标的标准化,使得较大的值会被转换为较小的标准化值(归一化后值较小表示更好)。
3. 计算 p(比例)
forvalue i=1(1)12{
egen sums_`i'=sum(sx`i')
gen p`i'=sx`i'/sums_`i'
}
对于每个变量(x1 到 x12),计算该变量的标准化值的和(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)。