楼主: 不要做梦22
283 3

[面板数据求助] 熵值法计算环境污染综合指数问题 [推广有奖]

  • 0关注
  • 1粉丝

本科生

60%

还不是VIP/贵宾

-

威望
0
论坛币
112 个
通用积分
1.6633
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1193 点
帖子
36
精华
0
在线时间
127 小时
注册时间
2020-10-14
最后登录
2024-5-27

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在使用熵值法计算省级层面的环境污染综合指标时,发现计算结果里,四个直辖市的指标明显比其他省要小很多,求问是什么原因造成的呢
使用的环境污染指标都是排放量指标,包括工业二氧化硫排放量、工业烟粉尘排放量、工业氮氧化物排放量等,
在想会不会是因为直辖市排放量数据明显低于各省指标造成的,如果使用排放强度/密度(即用排放量除以产值或人口数量)会不会好一些,但是在查阅文献的过程中,并没有看到过这么做的(如果有,希望可以分享一下文献)

代码如下:
qui sum Year
global min_Year=r(min)
global max_Year=r(max)

forvalues Year=$min_Year / $max_Year{
        use Pollution.dta, clear
        keep if Year==`Year'
       
        *标准化数据 正向指标 这一步生成x_x1  x_x2等
        foreach i in $negative_var {
                qui sum `i'
                gen x_`i'=(`i'-r(min))/(r(max)-r(min))
                replace x_`i'=0.00001 if x_`i'==0
        }


        *计算各指标的比重  这一步生成x1_sum x2_sum等,y_x1  y_x2等
        foreach i in $negative_var {
                egen `i'_sum=sum(x_`i')
                gen y_`i'=x_`i'/`i'_sum
        }

        *根据比重计算各分量的信息熵   这一步生成y_lny_x1
        gen n=_N

        foreach i in $negative_var {
                gen y_lny_`i'=y_`i'*ln(y_`i')
        }

        *求和 这一步生成y_lny_x1_sum
        foreach i in $negative_var {
                egen y_lny_`i'_sum=sum(y_lny_`i')
        }

        *计算各指标的贡献总量 这一步生成E_x1
        foreach i in $negative_var {
                gen E_`i'= -1/ln(n)*y_lny_`i'_sum
        }

        *计算各指标权重 这一步生成d_x1 d_sum    W_x1权重
        foreach i in $negative_var {
                gen d_`i'= 1-E_`i'
        }
       
        egen d_sum = rowtotal(d_*)
        foreach i in $negative_var {
                gen W_`i'= d_`i'/d_sum
        }
       
        *计算综合得分 这一步生成Score_x1
        foreach i in $negative_var {
                gen Score_`i'= x_`i'*W_`i'
        }
       
       
        egen Score=rowtotal(Score_*)

        keep ID Year Province $negative_var W_* Score
        save data_`Year', replace
}


clear
forvalues i= $min_Year / $max_Year {
   append using data_`i'
   rm data_`i'.dta
}

得到的结果如下:

截屏2024-05-05 17.04.10.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:综合指数 环境污染 熵值法 forvalues Pollution

沙发
att006 发表于 2024-5-5 17:32:26 |只看作者 |坛友微信交流群
如果四个直辖市的指标明显比其他省要小很多,可能的原因包括:
数据量差异,直辖市(北京、上海、天津、重庆)通常面积和人口规模相对较小,因此在总量(如排放量)上可能会低于大多数省份。这可能导致在计算比重时,直辖市的比重较低。
经济结构差异,直辖市往往拥有更为发达的经济结构和更高的产业集中度,这可能导致其污染物排放强度(即单位产值或人口的排放量)并不低,但总量因为规模限制而较小。
数据标准化问题,在计算过程中,如果标准化是基于总量的,直辖市的数据可能会因为总量小而被过度标准化,导致权重偏小。
权重计算方式,如果权重是基于信息熵来计算的,并且使用了基于比重的计算方式,直辖市的数据可能因为比重小而导致权重也小。

使用道具

藤椅
att006 发表于 2024-5-5 17:33:47 |只看作者 |坛友微信交流群
代码有一些可能需要注意的地方:
确认变量名(如negative_var)在循环中正确使用了,并且确实包含了想要处理的变量列表。
在计算信息熵时,通常需要对y_lny_变量进行求和,然后除以ln(n)(其中n是样本数),而不是直接求和。
权重W_应该是基于信息熵的差异度(d_)来计算的,通常需要对d_进行归一化。
在计算综合得分时,使用正确的权重。

使用道具

板凳
不要做梦22 学生认证  发表于 2024-5-5 18:08:11 |只看作者 |坛友微信交流群
att006 发表于 2024-5-5 17:33
代码有一些可能需要注意的地方:
确认变量名(如negative_var)在循环中正确使用了,并且确实包含了想要处 ...
非常感谢!我试着处理一下!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-17 04:45