熵权法STATA程序(第二版修正)
熵权法STATA程序 (修正)
鉴于很多童鞋和我探讨关于上一版的熵权法问题,在这里我打算补充修正一下熵权法程序,补充如下:
(1)这一版可用于面板数据处理,处理方法是将面板数据视为截面,同一城市不同年份视为不同个体,这样保证了权重不会随时间变化。而且这并不影响我们指标合成的初衷。
(2)这一版使用城市环境相关数据为例子,相应数据可在城市统计年鉴搜索得到。
(3)熵权法只是计算指标的客观权重方法,下文程序第五步计算得分时大家可以使用不同的指标标准化方法,如功效系数法、当量准值法等,这里我用的是极差标准化,大家也可以同时考虑纵向比较和横向比较,并不唯一。
当然可能仍然存在很多问题,欢迎大家和我讨论。
by Linhao Cui
** step 1 指标的标准化处理
egen m = count(id)
set trace on
global zlist " 一般工业固体废物综合利用率_百分比_全市_补齐 年末耕地总资源 工业二氧化硫去除量_吨_全市_补齐 工业废水排放达标量_万吨_全市_补齐 污水处理厂集中处理率_百分比_全市_补齐 工业烟粉尘去除量_吨_全市_补齐 生活垃圾无害化处理率_百分比_全市_补齐 生活污水处理率 环境污染治理占GDP比重 可吸入细颗粒物年平均浓度 空气质量达到及好于二级的天数占比 建成区绿化覆盖率_百分比_市辖区 地区生产总值增长率 科技教育比重 专利授权数 在岗职工平均工资_元_全市_补齐 每万人在校大学生数 第三产业增加值占GDP比重 每万人拥有公共汽车_辆_市辖区 体育场馆数 公共图书馆 博物馆数"
foreach x of global zlist{
egen minn`x' = min(`x')
egen maxx`x' = max(`x')
gen standard`x' = (`x' - minn`x')/(maxx`x' - minn`x') //正向指标
}
foreach x of varlist 售水量_万吨_市辖区_补齐 能源消费量 电_补齐{
egen minn`x' = min(`x')
egen maxx`x' = max(`x')
gen standard`x' = (maxx`x' - `x')/(maxx`x' - minn`x') //负向指标
}
global xlist "售水量_万吨_市辖区_补齐 能源消费量 一般工业固体废物综合利用率_百分比_全市_补齐 年末耕地总资源 电_补齐 工业二氧化硫去除量_吨_全市_补齐 工业废水排放达标量_万吨_全市_补齐 污水处理厂集中处理率_百分比_全市_补齐 工业烟粉尘去除量_吨_全市_补齐 生活垃圾无害化处理率_百分比_全市_补齐 生活污水处理率 可吸入细颗粒物年平均浓度 空气质量达到及好于二级的天数占比 建成区绿化覆盖率_百分比_市辖区 地区生产总值增长率 专利授权数 在岗职工平均工资_元_全市_补齐 每万人在校大学生数 第三产业增加值占GDP比重 每万人拥有公共汽车_辆_市辖区 体育场馆数 公共图书馆 博物馆数"
** step 2 计算第i年第j项指标的比重
foreach x of global xlist {
egen summm`x' = total(`x')
gen Y`x' = standard`x'/summm`x'
}
**step3 计算指标信息熵
foreach x of global xlist{
egen he`x' = total(Y`x' * ln(Y`x'))
gen e`x' = -(1/ln(m)) * he`x'
}
**step4 计算信息熵冗余度
foreach x of global xlist{
gen d`x' = 1 - e`x' //stata貌似循环有问题 如遇到not found问题不能运行可尝试手动计算
egen uselesshe = rowtotal(d售水量_万吨_市辖区_补齐 d能源消费量 d一般工业固体废物综合利用率_百分比_全市_补齐 d年末耕地总资源 d电_补齐 d工业二氧化硫去除量_吨_全市_补齐 d工业废水排放达标量_万吨_全市_补齐 d污水处理厂集中处理率_百分比_全市_补齐 d工业烟粉尘去除量_吨_全市_补齐 d生活垃圾无害化处理率_百分比_全市_补齐 d生活污水处理率 d可吸入细颗粒物年平均浓度 d空气质量达到及好于二级的天数占比 d建成区绿化覆盖率_百分比_市辖区 d地区生产总值增长率 d专利授权数 d在岗职工平均工资_元_全市_补齐 d每万人在校大学生数 d第三产业增加值占GDP比重 d每万人拥有公共汽车_辆_市辖区 d体育场馆数 d公共图书馆 d博物馆数)
gen W`x' = d`x'/uselesshe
}
**step5 计算指标综合得分
foreach x of global xlist {
gen S`x' = W`x' * `x'
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggagjf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01