*之前先用word筛选出与控股股东股权质押相关的数据
import excel 股权质押.xlsx, firstrow clear
destring Symbol,gen(stkcd)
gen year=real(substr(ChangeDate, 1, 4))
rename NumHolderOwn 持有上市公司股份
bys stkcd year:egen change=sum(ChangeNum)
gsort stkcd year -ChangeDate
bys stkcd year: keep if _n==1
bys stkcd :gen 剩余质押数量=sum(change)
xtset stkcd year
tsfill
*填补出的缺失值,以之前年份的股权质押情况保持一致
foreach i in 剩余质押数量 {
replace `i'=L.`i' if `i'==.
}
replace 剩余质押数量=0 if 剩余质押数量<1000 //异常的取0
keep stkcd year ChangeDate 剩余质押数量 持有上市公司股份
save 控股股东股权质押.dta, replace
*对于持有上市公司股份有缺失的,我的做法是取国泰安找股东持有股份,然后匹配过来
merge 1:1 stkcd year using 股东持有股份.dta, nogen keep(1 3) keepusing(控股股东持股数量)
replace 持有上市公司股份=控股股东持股数量 if 持有上市公司股份==.
*如还有缺失
replace 持有上市公司股份=L.持有上市公司股份 if 持有上市公司股份==.
*计算股权质押比例
gen PLD_RATE=剩余质押数量/持有上市公司股份
* 异常值处理
replace PLD_RATE=1 if PLD_RATE>1&PLD_RATE!=.
save 7.dta, replace
请问大家为什么我做的和买的股权质押比例有出入?
|