global g 0
forvalues i=1/1 {
egen bachelorsum=rowtotal(bachelor1-bachelor7)
gen bachelor`i'bili=bachelor`i'/bachelorsum
gen bachelor`i'z1=bachelor`i'bili in 1/23
gen bachelor`i'z2=bachelor`i'bili in 2/24
//产生学科比例变量
mkmat bachelor`i'z1, nomissing
mkmat bachelor`i'z2, nomissing
svmat bachelor`i'z1
svmat bachelor`i'z2
//变量转换为矩阵,矩阵转换为变量,目的是为了实现错位相减
gen bachelor`i'z3=bachelor`i'z21-bachelor`i'z11
//产生学科比值增加值变量
matrix result`i'adr=J(20,5,0)
forvalues k=13/13 {
local a=`k'+24
//优选滞后期
forvalues j=1/20 {
egen igsum=rowtotal(ig1-ig20)
egen iesum=rowtotal(ie1-ie20)
gen ig`j'z1=ig`j' in `k'/`a'
gen ie`j'z1=ie`j' in `k'/`a'
gen igsum1=igsum in `k'/`a'
gen iesum1=iesum in `k'/`a'
mkmat ig`j'z1, nomissing
mkmat ie`j'z1, nomissing
mkmat igsum1, nomissing
mkmat iesum1, nomissing
svmat ig`j'z1
svmat ie`j'z1
svmat igsum1
svmat iesum1
//变量变为矩阵,矩阵变为变量,实现顶针
gen fw`j'=ig`j'z11*1000/ie`j'z11
gen sw`j'=(igsum11-ig`j'z11)*1000/(iesum11-ie`j'z11)
capture drop ig`j'z1 ie`j'z1 ig`j'z11 ie`j'z11 igsum iesum igsum1 iesum1 igsum11 iesum11
regress bachelor`i'z3 fw`j' sw`j' in 1/23
local u=el(r(table),4,1)
local uu 0.1
if `u'<=`uu' {
//matrix result`i'adr[`j',1]="`e(cmdline)'"
matrix result`i'adr[`j',1]=`e(r2_a)'
matrix result`i'adr[`j',2]=el(r(table),1,1)
matrix result`i'adr[`j',3]=el(r(table),4,1)
matrix result`i'adr[`j',4]=el(r(table),5,1)
matrix result`i'adr[`j',5]=el(r(table),6,1)
}
capture drop u uu
//我加上了上面的if语句,然后capture drop就不发生作用了
}
}
capture drop bachelor`i'z1 bachelor`i'z2 bachelor`i'z3 bachelor`i'z11 bachelor`i'z21 bachelor`i'bili bachelorsum fw`j' sw`j'
matrix list result`i'adr
}


雷达卡





京公网安备 11010802022788号







