一、前言
写这个熵权法的 ADO 命令包,最初是出于两个很朴素的想法。一方面,以前每次使用熵权法都要手动复制粘贴那段老代码,既繁琐又容易出错,我希望能把它封装成一个命令,提高效率、简化流程;另一方面,这也是我学习过程中的一部分。希望这个小工具能在实际应用中带来些许便利,也欢迎大家提出宝贵意见。
二、安装
1.本地安装 将下面的压缩包下载到本地以后,解压到stata安装根目录下进行粘贴即可,建议选择base/e路径。粘贴以后在stata的窗口中输出discard或者输入exit,重新打开stata即可。 下载地址为:
https://pan.baidu.com/s/1EwJ_7hcoUwaU8yPSubFz1A?pwd=sgud
2.网络安装。
考虑到很多人对于github访问都存在困难,所以我将具体的安装包已经上传到了国内的网络服务器平台,保持网络畅通的情况下你可以使用下面的命令进行安装:
net install entropy, from(
https://entropy-1302016157.cos.ap-chengdu.myqcloud.com/) replace
三、使用
我提供了一份面板格式的案例数据,数据下载地址为:
https://pan.baidu.com/s/1_X8D2AsYhuHOZkTvG5xz8A?pwd=n2bk
以这份数据进行演示如下:
混合数据下包含正向指标(pv)和负向指标(nv)。
use entropydata.dta ,clear
entropy ,pv(pv1 pv2 pv3) nv(nv1 nv2 nv3)
混合数据下包含正向指标(pv)但不包含负向指标(nv)。
entropy ,pv(pv1 pv2 pv3) nv()
混合数据下不包含正向指标(pv)但包含负向指标(nv)。
entropy ,pv() nv(nv1 nv2 nv3)
混合数据下输出熵权得分
entropy ,pv(pv1 pv2 pv3) nv(nv1 nv2 nv3) score
面板数据下输出熵权得分+分年份进行熵权法计算
entropy ,pv(pv1 pv2 pv3) nv(nv1 nv2 nv3) score bys(year)
四、注意要点
1.重复执行score时需要将上一次生成的score删除或者进行重命令,否则会提示错误。
2.对于数据在正向化和逆向化存在0值的情况,我是将其替换为0.00001来处理,因为熵权法不能接受数据中存在0值。
3.面板熵权法下的e,d,w值时分组输出的,可不要错认为是只有一个结果,同时也不要对这些指标进行求和或者均值处理后来充当整体的计算值,这是一个错误。
五、补充声明
1.这份程序包其实是我作为ado初学第一次完成的作品,在规范性和科学性层面肯定是不足的,敬请各位自行检查命令和结果的正确性,口下,手下都请留三分薄面,喷轻一点。
2.如果你在使用过程中有什么问题可以发邮箱问我,请在问题中详细提供截图,报错的详情说明等。
3.如果你能对我的程序包进行优化,我将会尽我所能提供我对于这份ado的解释,并将优化后的程序包继续开放共享。
4.我想,我这个程序包应该不会涉及什么侵权行为吧,如果侵权了请你第一时间联系我删除。
5.此份ado是在songbl,连享会等成果的学习上总结所得,在此郑重致敬!
作者
张不二
buersz@163.com
2025-03-20