我修改了一个程序包计算熵值,但是运行后显示找不到x_1,不知道问题出在哪里,请大神帮忙看看
程序包是为了实现统一各指标权重的基础上,区分正负指标计算熵值
问题可能出现在这部分程序:
哪位大神知道问题出在哪里,可以有偿帮助修改
apt prog drop szf1
prog szf1
set more off
preserve
quietly {
local m = `1'
local n = `2'
local n2 = `n'+2
if `m'>`n' {
mat A = J(`m',3,.)
}
else {
mat A = J(`n',3,.)
}
//所有指标
global all_var $positive_var $negative_var
//年份
qui sum year
global min_year=r(min)
global max_year=r(max)
forvalues year=$min_year / $max_year{
use data.dta, clear
keep if year==`year'
//标准化数据 正向指标
foreach i in $positive_var {
qui sum `i'
gen x_`i'=(`i'-r(min))/(r(max)-r(min))
replace x_`i'=0.00001 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.00001 if x_`i'==0
}
//
forvalues i = 3/`n2' {
local j = `i'-2
capt drop bss`j'
ge bss`j' = `x_`i''
su bss`j'
ge bs`j' = bss`j'/r(sum)
}


雷达卡






京公网安备 11010802022788号







