熵值法简介:
熵值法是一种常用于多指标综合评价的方法,旨在通过信息熵的概念来确定各指标的权重。信息熵反映了信息的不确定性或混乱程度,熵值越大,信息越不确定。在综合评价中,熵值法通过计算每个指标的信息熵,确定其在综合评价中的重要性,并根据熵值的大小来分配权重。
熵值法的主要步骤:
- 数据标准化:由于不同指标的量纲和范围不同,需要对原始数据进行标准化处理,以消除量纲影响。
- 计算指标的熵值:通过标准化后的数据计算每个指标的信息熵。
- 确定指标权重:根据熵值计算各指标的权重,熵值越小的指标,权重越大,反之亦然。
- 计算综合得分:根据确定的权重对各指标进行加权,得到最终的综合得分。
熵值法的优点在于其客观性强,不依赖专家打分或主观判断,能够较好地反映数据本身的特征。常用于经济、社会、环境等多领域的综合评价。
数据表样式,在stata中直接粘贴即可
点击新建do文件
将下面的代码粘贴进去
///标准差标准化
global positive_var x1 x2 x3 x4 x5 x6 x7 x8 x10 x11 x12 x14 x15 x16 x17 x18 x19 //正向指标
global negative_var x9 x13 //负向指标
//下面的不变,包括正负项指标
global all_var $positive_var $negative_var
foreach i in $positive_var {
qui sum `i'
gen x_`i'=(`i'-r(min))/(r(max)-r(min))
replace x_`i'=0.0001 if x_`i'==0
}
foreach i in $negative_var {
qui sum `i'
gen x_`i'=(r(max)-`i')/(r(max)-r(min))
replace x_`i'=0.0001 if x_`i'==0
}
//计算各指标的比重
foreach i in $all_var {
egen `i'_sum=sum(x_`i')
gen y_`i'=x_`i'/`i'_sum
}
//根据比重计算各分量的信息熵
gen n=_N
foreach i in $all_var {
gen y_lny_`i'=y_`i'*ln(y_`i')
replace y_lny_`i'=0 if x_`i'==0
}
//求和
foreach i in $all_var {
egen y_lny_`i'_sum=sum(y_lny_`i')
}
//计算各指标的贡献总量。熵值ej
foreach i in $all_var {
gen E_`i'= -1/ln(n)*y_lny_`i'_sum
}
//计算各指标的权重,差异系数d
foreach i in $all_var {
gen d_`i'= 1-E_`i'
}
egen d_sum = rowtotal(d_*)
foreach i in $all_var {
gen W_`i'= d_`i'/d_sum
}
egen W=rowtotal(W_*)
//计算综合得分
foreach i in $all_var {
gen Score_`i'= x_`i'*W_`i'
}
egen Score=rowtotal(Score_*)
点击运行即可