两分钟教你学会stata中进行熵值法计算

熵值法简介

熵值法是一种常用于多指标综合评价的方法,旨在通过信息熵的概念来确定各指标的权重。信息熵反映了信息的不确定性或混乱程度,熵值越大,信息越不确定。在综合评价中,熵值法通过计算每个指标的信息熵,确定其在综合评价中的重要性,并根据熵值的大小来分配权重。

熵值法的主要步骤

  1. 数据标准化:由于不同指标的量纲和范围不同,需要对原始数据进行标准化处理,以消除量纲影响。
  2. 计算指标的熵值:通过标准化后的数据计算每个指标的信息熵。
  3. 确定指标权重:根据熵值计算各指标的权重,熵值越小的指标,权重越大,反之亦然。
  4. 计算综合得分:根据确定的权重对各指标进行加权,得到最终的综合得分。

熵值法的优点在于其客观性强,不依赖专家打分或主观判断,能够较好地反映数据本身的特征。常用于经济、社会、环境等多领域的综合评价。

数据表样式,在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_*)

点击运行即可

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习GIS1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值