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

代码如下:
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
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

2024-5-5 18:08:11
att006 发表于 2024-5-5 17:33
代码有一些可能需要注意的地方:
确认变量名(如negative_var)在循环中正确使用了,并且确实包含了想要处 ...
非常感谢!我试着处理一下!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群