***********未进行分年进行整体熵值法********888
//正向指标
global positive_var x1 x2 x3
//负向指标
global negative_var x4 x5
//标准化数据 正向指标
foreach i in $positive_var {
qui sum `i'
gen x_`i'=(`i'-r(min))/(r(max)-r(min))
replace x_`i'=0.00001 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.00001 if x_`i'==0
}
//计算各指标的比重
global positive_var x_x1 x_x2 x_x3
global negative_var x_x4 x_x5
global all_var $positive_var $negative_var //所有指标
global all_var x_x1 x_x2 x_x3 x_x4 x_x5
foreach i in $all_var{
qui sum `i'
egen `i'_sum=sum(`i')
gen y_`i'=`i'/`i'_sum
}
//根据比重计算各分量的信息熵
gen n=_N
foreach i in $all_var {
gen y_lny_`i'=y_`i'*ln(y_`i')
}
//求和
global positive_var y_lny_x_x1 y_lny_x_x2 y_lny_x_x3
global negative_var y_lny_x_x4 y_lny_x_x5
global all_var $positive_var $negative_var //所有指标
foreach i in $all_var {
egen y_lny_`i'_sum=sum(`i')
}
//计算各指标的贡献总量
foreach i in $all_var {
gen E_`i'= -1/ln(n)*y_lny_`i'_sum
}
//计算各指标权重
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
}
//计算综合得分
foreach i in $all_var {
gen Score_`i'= `i'*W_`i'
}
egen Score=rowtotal(Score_*)
keep id year $all_var Score
save data_`year', replace
}


雷达卡

京公网安备 11010802022788号







